Méthodes utiles pour la gestion des clients (customers)
- De Matthieu Vion le 08 octobre 2011
- Difficulté : 1/4
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
- Charger l'objet customer
- Afficher les données du client
- Adresses du client
- Newsletter
- Commandes
- 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()); }


Comme étant débutant en magento !J'aimerais etre capable de maitriser Magento !Est -ce que quelqu'un
peut me donner quelques conseil pour pouvoir y arriver?
Merci d'avance!
http://www.magentix.fr/divers/livre-magento-francais-eyrolles.html
Sinon règle de base, ne pas toucher au core ;)