Jawaban:
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productName = $item->getProduct()->getName();
$productPrice = $item->getProduct()->getPrice();
}
di $cart
Anda mendapat semua koleksi item keranjang dan jika Anda ingin mendapatkan id produk, nama Anda bisa dapatkan dari menggunakan foreach loop
Saya menemukan solusi lain. Kode berikut ini berfungsi untuk saya.
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
$productId = $item->getProductId();
// Do something more
}
$item->getProduct()
... Setiap kali Anda berpikir tentang menggunakan -> memuat () di magento Anda dapat mengandalkan kinerja yang buruk, kadang-kadang tidak ada yang lain pilihan benar-benar tetapi ini tidak terjadi di sini ..
Ada beberapa metode yang bekerja dengan cara yang berbeda:
$items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();
Mengembalikan koleksi item penawaran dengan semua item yang terkait dengan penawaran saat ini.
$items = Mage::getSingleton('checkout/cart')->getItems();
Ini adalah jalan pintas untuk metode di atas, tetapi jika tidak ada penawaran, ia mengembalikan array kosong, jadi Anda tidak bisa mengandalkan mendapatkan contoh koleksi.
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllItems();
Memuat koleksi item, lalu mengembalikan array semua item yang tidak ditandai sebagai dihapus (mis. Telah dihapus dalam permintaan saat ini)
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();
Memuat koleksi item, lalu mengembalikan array semua item yang tidak ditandai sebagai dihapus DAN tidak memiliki orang tua (yaitu Anda mendapatkan item untuk produk yang dibundel dan dapat dikonfigurasi tetapi bukan anak-anak yang terkait). Setiap item array sesuai dengan baris yang ditampilkan di halaman keranjang.
Pilih yang paling sesuai dengan kebutuhan Anda. Dalam kebanyakan kasus, metode terakhir adalah yang Anda butuhkan, tetapi sayangnya Magento hanya menyediakannya sebagai array dan bukan sebagai koleksi.
Perhatikan itu Mage::getSingleton('checkout/cart')->getQuote()
dan Mage::getSingleton('checkout/session')->getQuote()
dapat dipertukarkan.
$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 />";
}
Cara terbaik untuk mendapatkan semua item dalam keranjang
Kode di bawah ini digunakan untuk mendapatkan item keranjang
$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()) {
}
}