Magento : ajouter et enlever des produits du panier

Magento est un système de commerce électronique assez complexe à appréhender, il est bien mieux organisé que le vieillissant Oscommerce et peut être modifié à souhait grâce à une architecture bien pensée, basée sur Zend Framework mais qui demande quand même assez de temps pour s’y habituer. Je vous propose dans ce billet de voir comment faire pour ajouter et enlever des produits du panier de façon automatique.

Ajouter un produit

C’est le plus simple, il suffit de récupérer l’id du produit puis de tout simplement l’ajouter au panier

$id = Mage::getModel('catalog/product')->getIdBySku("product_sku");
$cart = Mage::getModel("checkout/cart");
$cart->addProductsByIds(array($id));
$cart->save();

Enlever un produit

C’est un peut plus compliqué, il faut parcourir tout le panier pour vérifier si l’id du produit à enlever est bien présent et le supprimer si c’est le cas

$cart = Mage::getModel("checkout/cart");
$id = Mage::getModel('catalog/product')->getIdBySku("product_sku");
 
$items = $cart->getItems();
foreach($items as $item)
{
    if($item->getProduct()->getId() == $id)
    {
        $itemId = $item->getItemId();
        $cart->removeItem($itemId)->save();
    }
}

5 commentaires ↓

#1 Jouer avec le panier de Magento - Frédéric Martinez on 03.02.10 at 0:32

[...] 4 et 5 – Source : le très bon article de Stéphane Brun pour l’ajout/suppresion de produits dans le panier [...]

#2 Philibert Thomas on 01.15.11 at 18:41

Trés trés bon article, savez-vous si nous pouvons indiqué la quantité à ajouter dans le panier en plus de l’article ?

merci d’avance
thomas

#3 Stéphane on 01.17.11 at 16:59

Je ne sais pas, ça fait vraiment longtemps que je n’ai pas touché a Magento

#4 malek on 06.03.11 at 12:09

salut et merci pour cet article,
mais pouvez vous m’indiquer comment gerer les sessions dans tous sa ( comment je peut ajouter un produit dans un panier a un utilisateur bien déterminer)
merci d’avance.

#5 Stéphane on 06.03.11 at 12:45

Ca fait trop longtemps que je n’ai pas touché à magento, désolé mais je ne peux pas répondre. Si quelqu’un a la réponse, n’hésitez pas …

Laisser un commentaire