การรับไอเท็มอ้างอิง (รถเข็น) แสดงรายการ SKU ที่ซ้ำกันโดยทางโปรแกรมสำหรับผลิตภัณฑ์ที่กำหนดค่าได้และเรียบง่าย


10

ฉันรับตะกร้าสินค้าโดยใช้:

$cart = Mage::getSingleton('checkout/session')->getQuote();

จากนั้นวนซ้ำโดยใช้:

foreach ($cart->getAllItems() as $item) { }

แต่ดูเหมือนว่าจะส่งคืนรายการที่ซ้ำกันด้วย SKU เดียวกัน แต่รหัสผลิตภัณฑ์ต่างกัน! ในเว็บไซต์หลักเมื่อฉันเปิดรถเข็นอย่างไรก็ตามมันแสดงให้เห็นถึงผลิตภัณฑ์เดียว

cart: {
    id: 680,
    items: [
        {
            name: "Tori Tank",
            price: "60.0000",
            id: "418",
            sku: "wbk004"
        },
        {
            name: "Tori Tank",
            price: "60.0000",
            id: "286",
            sku: "wbk004"
        }
    ]
}

คำถามของฉันคือ .. ทำไมสิ่งนี้จึงเกิดขึ้น ผลิตภัณฑ์หลัก (กำหนดค่าได้) ไม่ควรแสดง Sku ที่เป็นเอกลักษณ์ของตนเองหรือไม่

นอกจากนี้หากฉันต้องการเพิ่มผลิตภัณฑ์ลงในรถเข็นฉันควรเพิ่มผลิตภัณฑ์ที่กำหนดค่าได้หรือไม่ หรือฉันจะเพิ่มผลิตภัณฑ์ง่ายๆและ Magento จัดการส่วนที่เหลือได้หรือไม่

คำตอบ:


10

จากข้อมูลวีโอไอพีเมื่อเพิ่มผลิตภัณฑ์ที่สามารถกำหนดค่าได้ที่รถเข็นแล้วจะมีการแทรกสองแถวที่ฐานข้อมูล รถเข็นผลิตภัณฑ์หนึ่งที่กำหนดค่าได้อีกอันหนึ่งเป็นผลิตภัณฑ์ที่เรียบง่าย

  • One row has configurable id and simple product SKU and parent item id is null
  • Other rows have simple id and simple product SKU and parent item id should above row id

ในขณะที่คุณได้ใช้getAllItems()แล้วสำหรับวงที่คุณจำเป็นต้องเป็นมันมีcheckparent item $item->getParentItemId()

foreach ($cart->getAllItems() as $item) {
    / * add this */
    if ($item->getParentItemId()) {
        continue;
    }
........
}

คุณสามารถใช้รหัส Marius เพื่อจุดประสงค์ในการมองเห็นของผู้ใช้
Amit Bera

มีปัญหา แต่ .. ฉันไม่สามารถรับสีขนาดและอื่น ๆ เมื่อฉันใช้ getAllVisibleItems () ฉันควรทำอย่างไร
Pat

ใช่มันเป็นไปได้โดยใช้รูปแบบผลิตภัณฑ์โดย Sku เพราะ sku เหมือนกันสำหรับสอง .. rowss
Amit Bera

10

ใช้แทน$cart->getAllVisibleItems() คุณได้รับสิ่งที่ซ้ำซ้อนเพราะเมื่อเพิ่มผลิตภัณฑ์ที่สามารถกำหนดค่าได้ในรถเข็นวีโอไอพีจะเพิ่มผลิตภัณฑ์ 2 รายการผลิตภัณฑ์ที่ง่ายและผลิตภัณฑ์ที่กำหนดค่าได้ แต่ผู้ใช้จะมองเห็นได้เพียงรายการเดียวเท่านั้น$cart->getAllItems()


ถ้าฉันเพิ่มผลิตภัณฑ์ง่ายๆมันจะเพิ่มผลิตภัณฑ์ที่กำหนดค่าได้โดยอัตโนมัติหรือไม่ หรือฉันต้องทำด้วยตนเอง
Pat

ไม่เมื่อคุณเพิ่มผลิตภัณฑ์ที่กำหนดค่าได้จะมี 2 ในตะกร้า
Marius

1
<?php
$cart = Mage::getModel('checkout/cart')->getQuote();

foreach ($cart->getAllVisibleItems() as $item) 
{ 
  echo $productName = $item->getProduct()->getName();
  echo $productPrice = $item->getProduct()->getPrice();
  echo $grandTotal = Mage::getModel('checkout/session')->getQuote()->getGrandTotal();
  echo $this->helper('catalog/image')->init($item->getProduct(), 'small_image')->resize(50,50);
}

?>

เพิ่มรหัสใน <? php?> สำหรับทุกบรรทัด
Bhagyavant
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.