2013-12-12 5 views
5

मैं कार्ट में एक उत्पाद जोड़ने की कोशिश कर रहा हूं लेकिन कार्ट खाली रहती है। यहाँ मेरी कोडकार्ट में प्रोग्रामेटिक रूप से उत्पाद जोड़ें - खाली गाड़ी

try{ 
    $product_model = Mage::getSingleton('catalog/product'); 

    // Load product 
    $_sku = "1-574#AD-B00731"; 
    $my_product_id = $product_model->getIdBySku($_sku); 
    $my_product  = $product_model->load($my_product_id); 
    $qty_value = 1; 

    // Add to cart 
    $cart = Mage::getModel('checkout/cart'); 
    $cart->init(); 
    $cart->addProduct($my_product, array('qty' => $qty_value)); 
    $cart->save(); 
    print_r($cart->getItemsQty().PHP_EOL); 
    Mage::getSingleton('checkout/session')->setCartWasUpdated(true); 
    var_dump("working"); 
} 
catch(Exception $e){ 
    return $e->getMessage(); 
} 

है जब मैं $cart->getItemsQty() मेरी आइटम मात्रा incremanting रहे हैं उसे प्रिंट लेकिन मेरी गाड़ी अभी भी खाली है। मुझे लगता है कि यह Mage::getSingleton('checkout/session')->setCartWasUpdated(true); है जो ठीक से काम नहीं कर रहा है।

किसी को भी यह पता नहीं है कि क्या काम नहीं कर रहा है?

संपादित करें 1: मैं Magento 1.8.0 एक यूआरएल क्वेरी के माध्यम से उपयोग करते हैं, तो form_key की वजह से काम नहीं कर रहा

उत्तर

1

बदलने की कोशिश

$cart = Mage::getModel('checkout/cart'); 

$cart = Mage::getSingleton('checkout/cart'); 

को गाड़ी है एक सिंगलटन, क्योंकि आपके पास 1 स्टोर के लिए आपके स्टोर पर केवल 1 कार्ट है और जो लोग इसका उपयोग करना चाहते हैं, वे इसे नई ऑब्जेक्ट के बिना, GetSingleton के रूप में कॉल कर सकते हैं। यदि आप Mage :: getModel ('चेकआउट/कार्ट') का उपयोग करते हैं तो यह एक नई वस्तु बनाएगा। हाँ, यह आपको डीबी को उद्धरण बचाने की अनुमति देगा, लेकिन यह वर्तमान सक्रिय ग्राहक गाड़ी नहीं होगा।

+0

मैं ग्राहक के कार्ट को कैसे प्राप्त कर सकता हूं? – Camital

+2

क्या आपने सुझाव दिया है कि आपने अपनी स्क्रिप्ट बदल दी है? वर्तमान ग्राहक कार्ट का उपयोग करने के लिए Mage :: getSingleton ('चेकआउट/कार्ट') -> getQuote(); या Mage :: getSingleton ('चेकआउट/सत्र') -> getQuote(); – freento

+0

हाँ मैंने किया और मेरी गाड़ी अभी भी खाली है – Camital

1

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

$cart->getItems()->clear(); 
$cart->getItems()->setQuote($cart->getQuote()); 
संबंधित मुद्दे

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