प्रोग्राम (कार्ट) आइटमों को प्राप्त करना, विन्यास योग्य और सरल उत्पाद दोनों के लिए डुप्लिकेट 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()तो लूप के लिए आपको इसकी आवश्यकता checkहै parent item $item->getParentItemId()

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

तुम भी उपयोगकर्ता दृश्यता प्रयोजन के लिए मेरियस कोड का इस्तेमाल किया जा सकता है
अमित बेरा

हालांकि एक समस्या है .. मैं रंग, आकार, आदि नहीं प्राप्त कर सकता .. जब मैं getAllVoubleItems () का उपयोग करता हूं। मैं कैसे करूं?
पैट

हाँ यह Sku द्वारा उत्पाद मॉडल का उपयोग कर, क्योंकि sku दो के लिए एक ही है के द्वारा ही संभव .. rowss
अमित बेरा

10

के $cart->getAllVisibleItems()बजाय का उपयोग करें $cart->getAllItems()
आप डुप्लिकेट प्राप्त करते हैं क्योंकि कार्ट में एक कॉन्फ़िगर करने योग्य उत्पाद जोड़ते समय, Magento वास्तव में 2 उत्पाद, सरल उत्पाद और विन्यास योग्य उत्पाद जोड़ता है लेकिन उपयोगकर्ता के लिए केवल एक ही दिखाई देता है।


अगर मैं एक साधारण उत्पाद जोड़ूँ, तो यह स्वतः ही विन्यास योग्य जोड़ देगा? या क्या मुझे इसे मैन्युअल रूप से करने की आवश्यकता है?
पैट

जब आप एक विन्यास उत्पाद जोड़ते हैं, तो गाड़ी में 2 होंगे,।
मेरियस

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?> में कोड जोड़ें
भाग्यवंत
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.