Yanıtlar:
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productName = $item->getProduct()->getName();
$productPrice = $item->getProduct()->getPrice();
}
içinde $cart
size sepeti öğesinin tüm koleksiyonu var ve ürün kimliği almak istiyorsanız, size foreach döngüsü kullanarak alabilirsiniz isim
Başka bir çözüm buldum. Aşağıdaki kod benim için çalışıyor.
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
$productId = $item->getProductId();
// Do something more
}
$item->getProduct()
... Magento'da -> load () 'ı kullanmayı her düşündüğünde, kötü performansa güvenebilirsin, bazen başka bir şey olmaz. seçenek gerçekten ama bu burada durum böyle değil ..
Farklı şekilde çalışan birkaç yöntem vardır:
$items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();
Geçerli teklifle ilişkili tüm öğelerin bulunduğu bir teklif öğesi koleksiyonunu döndürür .
$items = Mage::getSingleton('checkout/cart')->getItems();
Bu, yukarıdaki yöntem için bir kısayoldur, ancak alıntı yoksa boş bir dizi döndürür, bu nedenle bir koleksiyon örneği almaya güvenemezsiniz.
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllItems();
Öğe koleksiyonunu yükler, daha sonra silinmiş olarak işaretlenmemiş tüm öğelerin bir dizisini döndürür (yani, geçerli istekde kaldırılmış)
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();
Öğe koleksiyonunu yükler, daha sonra silinmiş olarak işaretlenmemiş VE üst öğeye sahip olmayan tüm öğelerin bir dizisini döndürür (yani, paketlenmiş ve yapılandırılabilir ürünler için öğeleri alırsınız ancak ilişkili alt öğelerini almazsınız). Her dizi öğesi, alışveriş sepeti sayfasında görüntülenen bir satıra karşılık gelir.
İhtiyaçlarınıza en uygun olanı seçin. Çoğu durumda en son ihtiyaç duyduğunuz yöntemdir, ancak ne yazık ki Magento, yalnızca koleksiyon olarak değil dizi olarak sunar.
Not Mage::getSingleton('checkout/cart')->getQuote()
ve Mage::getSingleton('checkout/session')->getQuote()
değiştirilebilir vardır.
$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 />";
}
Sepetteki tüm ürünleri almanın en iyi yolu
Alışveriş sepetini almak için aşağıdaki kod kullanılmıştır
$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()) {
}
}