ฉันต้องการได้รับชุดของรายการทั้งหมดในรถเข็นในขณะนี้
ฉันจะทำสิ่งนี้ได้อย่างไร ข้อเสนอแนะใด ๆ จะได้รับการชื่นชม
ฉันต้องการได้รับชุดของรายการทั้งหมดในรถเข็นในขณะนี้
ฉันจะทำสิ่งนี้ได้อย่างไร ข้อเสนอแนะใด ๆ จะได้รับการชื่นชม
คำตอบ:
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productName = $item->getProduct()->getName();
$productPrice = $item->getProduct()->getPrice();
}
ใน$cart
คุณมีคอลเลกชันทั้งหมดของรถเข็นรายการและถ้าคุณต้องการที่จะได้รับรหัสสินค้าชื่อคุณจะได้รับจากการใช้ห่วง foreach
ฉันพบวิธีแก้ไขปัญหาอื่น รหัสต่อไปนี้ใช้งานได้สำหรับฉัน
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
$productId = $item->getProductId();
// Do something more
}
$item->getProduct()
... ทุกครั้งที่คุณคิดเกี่ยวกับการใช้ -> load () ในวีโอไอพีคุณสามารถไว้ใจได้กับประสิทธิภาพที่ไม่ดีบางครั้งก็ไม่มีอื่น ๆ ตัวเลือกจริงๆ แต่กรณีนี้ไม่ได้ที่นี่ ..
มีหลายวิธีที่ทำงานในวิธีที่ต่างกัน:
$items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();
ส่งคืนคอลเลกชันรายการคำพูดที่มีรายการทั้งหมดที่เกี่ยวข้องกับคำพูดปัจจุบัน
$items = Mage::getSingleton('checkout/cart')->getItems();
นี่คือทางลัดสำหรับวิธีการด้านบน แต่ถ้าไม่มีการอ้างอิงจะส่งคืนอาร์เรย์ที่ว่างเปล่าดังนั้นคุณจึงไม่สามารถพึ่งพาการรับอินสแตนซ์ของการเก็บรวบรวมได้
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllItems();
โหลดคอลเล็กชันไอเท็มจากนั้นส่งคืนอาร์เรย์ของไอเท็มทั้งหมดที่ไม่ได้ทำเครื่องหมายว่าถูกลบ (เช่นถูกลบในคำขอปัจจุบัน)
$items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();
โหลดคอลเล็กชันไอเท็มจากนั้นส่งคืนอาร์เรย์ของไอเท็มทั้งหมดที่ไม่ได้ทำเครื่องหมายว่าถูกลบและไม่มีพาเรนต์ (เช่นคุณได้รับไอเท็มสำหรับผลิตภัณฑ์ที่รวมและกำหนดค่าได้ แต่ไม่ใช่ลูกที่เกี่ยวข้อง) แต่ละรายการอาร์เรย์สอดคล้องกับแถวที่แสดงในหน้ารถเข็น
เลือกสิ่งที่เหมาะกับความต้องการของคุณที่สุด ในกรณีส่วนใหญ่วิธีสุดท้ายคือสิ่งที่คุณต้องการ แต่น่าเสียดายที่ Magento ให้มันเป็นอาร์เรย์เท่านั้น
โปรดทราบว่าMage::getSingleton('checkout/cart')->getQuote()
และMage::getSingleton('checkout/session')->getQuote()
สามารถเปลี่ยนได้
$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 />";
}
วิธีที่ดีที่สุดในการรับสินค้าทั้งหมดในตะกร้า
รหัสด้านล่างนี้ใช้สำหรับรับรายการรถเข็น
$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()) {
}
}