Antworten:
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productName = $item->getProduct()->getName();
$productPrice = $item->getProduct()->getPrice();
}
in $cart
Sie bekam die ganze Sammlung von Wagenposition und wenn Sie Produkt - ID erhalten möchten, nennen Sie verwenden foreach - Schleife bekommen
Ich habe eine andere Lösung gefunden. Der folgende Code funktioniert für mich.
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
$productId = $item->getProductId();
// Do something more
}
$item->getProduct()
... verfügbar ist. Jedes Mal, wenn Sie über die Verwendung von -> load () in Magento nachdenken, können Sie mit einer schlechten Leistung rechnen, manchmal gibt es keine andere Option wirklich, aber das ist hier nicht der Fall ..
Es gibt verschiedene Methoden, die auf unterschiedliche Weise funktionieren:
$items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();
Gibt eine Angebotseintragssammlung mit allen Einträgen zurück, die dem aktuellen Angebot zugeordnet sind.
$items = Mage::getSingleton('checkout/cart')->getItems();
Dies ist eine Abkürzung für die obige Methode. Wenn jedoch kein Anführungszeichen vorhanden ist, wird ein leeres Array zurückgegeben, sodass Sie sich nicht darauf verlassen können, eine Auflistungsinstanz abzurufen.
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllItems();
Lädt die Elementauflistung und gibt dann ein Array aller Elemente zurück, die nicht als gelöscht markiert sind (dh in der aktuellen Anforderung entfernt wurden).
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();
Lädt die Artikelsammlung und gibt dann ein Array aller Artikel zurück, die nicht als gelöscht markiert sind UND keine übergeordneten Artikel haben (dh Sie erhalten Artikel für gebündelte und konfigurierbare Produkte, aber nicht die zugehörigen untergeordneten Artikel). Jedes Array-Element entspricht einer angezeigten Zeile auf der Warenkorbseite.
Wählen Sie, was Ihren Bedürfnissen am besten entspricht. In den meisten Fällen ist die letzte Methode die, die Sie benötigen, aber leider bietet Magento sie nur als Array und nicht als Sammlung an.
Beachten Sie, dass Mage::getSingleton('checkout/cart')->getQuote()
und Mage::getSingleton('checkout/session')->getQuote()
austauschbar sind.
$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 />";
}
beste Weg, um alle Artikel in den Warenkorb zu bekommen
Der folgende Code wird zum Abrufen von Warenkorbartikeln verwendet
$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()) {
}
}