Méthodes utiles pour la gestion des clients (customers)

  • De le 08 octobre 2011
  • Difficulté : 1/4

Méthodes utiles pour la gestion des clients (customers) Petit aide mémoire sur les méthodes utilisées régulièrement pour la gestion des clients : charger l'objet customer, récupérer les commandes associées, les adresses, les commentaires...

Session

Le client est-il connecté ?

$isLoggedIn = Mage::helper('customer')->isLoggedIn();

Récupérer l'objet customer associé à la session

$customer = Mage::getSingleton('customer/session')->getCustomer();
// ou
$customer = Mage::helper('customer')->getCustomer();
// ou
$customer = Mage::helper('customer')->getCurrentCustomer();

Déconnecter le client

Mage::getSingleton('customer/session')->logout();
Charger l'objet customer

Selon l'identifiant du client

$customer = Mage::getModel('customer/customer')->load(1);

Selon l'adresse e-mail du client

$webisteId = Mage::app()->getStore()->getWebsiteId();

$customer = Mage::getModel('customer/customer')
            ->setWebsiteId($webisteId)
            ->loadByEmail('customer@domain.com');

Depuis une collection de clients

$customers = Mage::getModel('customer/customer')->getCollection();

foreach($customers as $customer) { Zend_debug::dump($customer->getData()); }
Afficher les données du client

Données de base

$customer->getId();

$customer->getEmail();

$customer->getGroupId();

$customer->getIncrementId();

$customer->getCreatedAt();
$customer->getCreatedAtTimestamp();

$customer->getUpdatedAt();

$customer->getIsActive();

// Nom complet : Prefix Firstname Middlename Lastname Suffix
$customer->getName();

$customer->getPrefix();

$customer->getFirstname();

$customer->getMiddlename();

$customer->getLastname();

$customer->getSuffix();
Adresses du client

Adresses enregistrées

$addresses = $customer->getAddresses();

foreach($addresses as $address) {
    Zend_debug::dump($address->getData());
}

Adresse de facturation par défaut

$billing = $customer->getPrimaryBillingAddress();
// ou
$billing = $customer->getDefaultBillingAddress();

Adresse de livraison par défaut

$shipping = $customer->getPrimaryShippingAddress();
// ou
$shipping = $customer->getDefaultShippingAddress();

Afficher l'adresse au format HTML

$address = $customer->getPrimaryBillingAddress();

echo $address->format('html');
Newsletter

Le client est-il inscrit à la newsletter ?

$isSubscribed = Mage::getModel('newsletter/subscriber')->loadByCustomer($customer)->isSubscribed();

Inscrire le client à la newsletter

$customer->setIsSubscribed(1)->save();

Désinscrire le client de la newsletter

$customer->setIsSubscribed(0)->save();
Commandes

Récupérer toutes les commandes (orders) du client

$orders = Mage::getResourceModel('sales/order_collection')
            ->addAttributeToSelect('*')
            ->joinAttribute('shipping_firstname', 'order_address/firstname', 'shipping_address_id', null, 'left')
            ->joinAttribute('shipping_lastname', 'order_address/lastname', 'shipping_address_id', null, 'left')
            ->addAttributeToFilter('customer_id', $customer->getId())
            ->addAttributeToSort('created_at', 'desc');

foreach($orders as $order) { Zend_debug::dump($order->getData()); }
Commentaires

Récupérer les commentaires (reviews) ajoutés par le client

$comments = Mage::getModel('review/review')->getProductCollection()
             ->addStoreFilter(Mage::app()->getStore()->getId())
             ->addCustomerFilter($customer->getId())
             ->setDateOrder();

foreach($comments as $comment) { Zend_debug::dump($comment->getData()); }
commentaires

Commentez cet article : Méthodes utiles pour la gestion des clients (customers)