वर्तमान में कार्ट में सभी आइटम कैसे प्राप्त करें?


45

मैं वर्तमान में कार्ट में सभी वस्तुओं का संग्रह प्राप्त करना चाहता हूं।

मैं यह कैसे कर सकता हूँ ? कोई भी सुझाव प्रशंसनीय होगा।


यदि आप Magento 2 के साथ समाधान की तलाश कर रहे हैं, तो magento.stackexchange.com/questions/111137/…
Fabian Schmengler

जवाबों:


61
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
    $productName = $item->getProduct()->getName();
    $productPrice = $item->getProduct()->getPrice();
}

, $cartआपको कार्ट आइटम का सभी संग्रह मिला है और यदि आप उत्पाद आईडी प्राप्त करना चाहते हैं, तो नाम आपको फ़ॉरच लूप का उपयोग करने से मिल सकता है


6
यह काम करता है, लेकिन यह उन सभी उत्पादों को प्रदर्शित करता है जिनमें वे उत्पाद शामिल हैं जो विन्यास योग्य उत्पादों से संबंधित हैं। उन सभी उत्पादों को प्रदर्शित करने के लिए जिन्हें मैंने उल्लेख किया है, आपको getAllVanishItems () का उपयोग करना होगा
Attila Naghi

इस आइटम की मात्रा कैसे दिखाएं?
मार्कोस विनीसियस

आप getModel का उपयोग करना चाहिए? क्या आपको गेट्सिंगटन का उपयोग नहीं करना चाहिए?
डैनी देव Nz

28

मुझे एक और उपाय मिला। निम्नलिखित कोड मेरे लिए काम करता है।

$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
    $productId = $item->getProductId();     
    // Do something more
}

इस आइटम की मात्रा कैसे दिखाएं?
मार्कोस विनीसियस

1
क्यों एक लूप में उत्पादों को लोड करने के लिए 27 upvotes ....?
sv3n

इसका भयानक प्रदर्शन है .. आप प्रत्येक उत्पाद को लूप में लोड कर रहे हैं जब वे पहले से ही उपलब्ध हैं $item->getProduct()... हर बार जब आप मैगेंटो में उपयोग करने के बारे में सोचते हैं -> लोड () आप खराब प्रदर्शन पर भरोसा कर सकते हैं, कभी-कभी कोई अन्य नहीं होता है विकल्प वास्तव में, लेकिन यहाँ ऐसा नहीं है ..
OZZIE

1
@ sv3n: इसे इंगित करने के लिए धन्यवाद। कोड संशोधित
सुकेशिनी

20

कई तरीके हैं जो एक अलग तरीके से काम करते हैं:

  1. $items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();

    वर्तमान उद्धरण से संबंधित सभी वस्तुओं के साथ एक उद्धरण आइटम संग्रह लौटाता है ।

  2. $items = Mage::getSingleton('checkout/cart')->getItems();

    यह ऊपर दी गई विधि के लिए एक शॉर्टकट है, लेकिन अगर कोई उद्धरण नहीं है तो यह एक खाली सरणी देता है, इसलिए आप संग्रह उदाहरण प्राप्त करने पर भरोसा नहीं कर सकते।

  3. $items = Mage::getSingleton('checkout/cart')->getQuote()->getAllItems();

    आइटम संग्रह को लोड करता है, फिर सभी आइटमों की एक सरणी लौटाता है जिन्हें हटाए जाने के रूप में चिह्नित नहीं किया गया है (अर्थात वर्तमान अनुरोध में हटा दिया गया है)

  4. $items = Mage::getSingleton('checkout/cart')->getQuote()->getAllVisibleItems();

    आइटम संग्रह को लोड करता है, फिर सभी आइटमों की एक सरणी लौटाता है जो हटाए गए के रूप में चिह्नित नहीं हैं और जिनके पास माता-पिता नहीं हैं (यानी आपको बंडल किए गए और कॉन्फ़िगर किए गए उत्पादों के लिए आइटम मिलते हैं लेकिन उनके संबद्ध बच्चे नहीं हैं)। प्रत्येक सरणी आइटम कार्ट पेज में प्रदर्शित पंक्ति से मेल खाती है।

चुनें कि आपकी आवश्यकताओं में सबसे उपयुक्त क्या है। ज्यादातर मामलों में अंतिम विधि वही है जो आपको चाहिए, लेकिन दुर्भाग्य से Magento इसे केवल सरणी के रूप में प्रदान करता है न कि संग्रह के रूप में।


ध्यान दें कि Mage::getSingleton('checkout/cart')->getQuote()और Mage::getSingleton('checkout/session')->getQuote()विनिमेय हैं।


1
$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 />";
}

कार्ट में सभी आइटम प्राप्त करने का सबसे अच्छा तरीका है


Mage का उपयोग करें :: getSingleton ('चेकआउट / कार्ट') -> getQuote () -> getAllItems ();
अमन श्रीवास्तव

क्यों? क्या फर्क पड़ता है?
LM_Fielding

-7

नीचे कोड का उपयोग कार्ट आइटम प्राप्त करने के लिए किया जाता है

$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()) {

   }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.