Réponses:
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productName = $item->getProduct()->getName();
$productPrice = $item->getProduct()->getPrice();
}
en $cart
vous avez toute la collection de l'article de panier et si vous voulez obtenir l'ID du produit, nom que vous pouvez obtenir en utilisant foreach loop
J'ai trouvé une autre solution. Le code suivant fonctionne pour moi.
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
$productId = $item->getProductId();
// Do something more
}
$item->getProduct()
... Chaque fois que vous pensez utiliser -> load () dans magento, vous pouvez compter sur les mauvaises performances. Parfois, il n’y en a pas d’autre. option vraiment mais ce n'est pas le cas ici ..
Il existe plusieurs méthodes qui fonctionnent de manière différente:
$items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();
Renvoie une collection d' éléments de devis avec tous les éléments associés au devis en cours.
$items = Mage::getSingleton('checkout/cart')->getItems();
Ceci est un raccourci pour la méthode ci-dessus, mais s'il n'y a pas de citation, il retourne un tableau vide. Vous ne pouvez donc pas vous fier à l'obtention d'une instance de collection.
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllItems();
Charge la collection d'éléments, puis renvoie un tableau de tous les éléments qui ne sont pas marqués comme supprimés (c'est-à-dire qui ont été supprimés dans la demande en cours).
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();
Charge la collection d'éléments, puis renvoie un tableau de tous les éléments qui ne sont pas marqués comme supprimés ET qui n'ont pas de parent (c'est-à-dire que vous obtenez des éléments pour les produits regroupés et configurables, mais pas leurs enfants associés). Chaque élément du tableau correspond à une ligne affichée dans la page du panier.
Choisissez ce qui correspond le mieux à vos besoins. Dans la plupart des cas, la dernière méthode correspond à vos besoins, mais malheureusement, Magento ne la fournit que sous forme de tableau et non de collection.
Notez que Mage::getSingleton('checkout/cart')->getQuote()
et Mage::getSingleton('checkout/session')->getQuote()
sont interchangeables.
$items =Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
foreach($items as $item) {
echo 'ID: '.$item->getProductId().'<br />';
echo 'Name: '.$item->getName().'<br />';
echo 'Sku: '.$item->getSku().'<br />';
echo 'Quantity: '.$item->getQty().'<br />';
echo 'Price: '.$item->getPrice().'<br />';
echo "<br />";
}
meilleur moyen d'obtenir le tout dans le panier
Le code ci-dessous est utilisé pour obtenir des articles de panier
$cart = new Mage_Checkout_Model_Cart();
$cart->init();
foreach ($cart->getItems() as $item) {
// we can wrap our request in this IF statement
if (!$item->getParentItemId()) {
}
}