2011-12-05 13 views
6

मैं किसी दिए गए उत्पाद के लिए कार्ट आइटम प्राप्त करने का प्रयास करता हूं;Magento - किसी दिए गए उत्पाद आईडी के लिए कार्ट आइटम प्राप्त करें

मैं इस कोड की कोशिश की है:

$product = Mage::getModel('catalog/product') 
    ->setStoreId(Mage::app()->getStore()->getId()) 
    ->load('2784'); 

$quote = Mage::getSingleton('checkout/cart')->getQuote(); 
$cartItems = $quote->getItemByProduct($product); 
foreach ($cartItems as $item) { 
    echo $item->getId()."<br/>"; 
} 

लेकिन यह कुछ भी देता नहीं है।

सही तरीके से "getItemByProduct" का उपयोग करने के लिए मैं अपने कोड को कैसे संशोधित कर सकता हूं?

सहायता के लिए धन्यवाद।

उत्तर

1

मैं प्रयोग करेंगे

foreach ($quote->getItems() as $item) { 
    if ($item->getProductId() == $product->getId()) { 
     print_r($item->getData()); 
    } 
} 
+0

और मैं सीधे getItemByProduct का उपयोग कैसे कर सकता हूं? – Bizboss

10

getItemByProduct() रिटर्न एक अतिरिक्त पाश के लिए पहले मिलान Mage_Sales_Model_Quote_Item तो वहाँ है कोई जरूरत नहीं।

$item = $quote->getItemByProduct($product); 
if ($item !== false) echo $item->getId(); 
+0

मुझे एक त्रुटि मिलती है: घातक त्रुटि: किसी सदस्य फ़ंक्शन को कॉल करें ID() को किसी ऑब्जेक्ट पर /catalog/product/list.phtml में लाइन 996 – Bizboss

+0

पर कॉल करें यदि '$ product'' $ उद्धरण 'में नहीं है तो ' $ item' 'false' होगा। यह एक चीज है जो आपको दिखाई देने वाली त्रुटि का कारण बन सकती है। – clockworkgeek

1

आप checkout/cart या checkout/quote मॉडल पर getItemByProduct() समारोह का उपयोग नहीं कर के रूप में है कि विधि sales/quote मॉडल की है।

आप इस विधि को Mage_Sales_Model_Quote class पर पा सकते हैं। इसलिए यह sales/quote withe का उपयोग किया जाता है। उम्मीद है कि यह उपयोगी है।

+0

संपादन chriz के लिए धन्यवाद –

संबंधित मुद्दे