缩短 magento 购物车,然后将产品添加到购物车会给出 500 错误


Trucating magento cart and then adding product to cart gives 500 error

在这里,我们首先截断了我们的magento购物车,

$cart = Mage::getModel('checkout/cart');                
  $cart->truncate()->save(); // remove all active items in cart page
  $cart->init();

  Mage::getSingleton('checkout/session')->clear();

在此之后,我们尝试添加产品

$cart = Mage::getSingleton('checkout/cart'); 
   $cart->init();
   $cart->addProduct($id,$qty);

它给出了 500 内部服务器错误

注意:仅当我们应用将产品数量添加到最大值时,才会出错。

例如可用数量 100就我而言,$qty=100

注意:我们的代码运行良好,但只是第一次,其余时间它都会给出此错误。

找到答案,

我找到了答案,

 $session = Mage::getSingleton('checkout/session');
    $session->getQuote()->delete();
    $session->clear();
    $cart = Mage::getModel('checkout/cart');
    $cart->setQuote($session->getQuote());
    $product = Mage::getModel('catalog/product') -> load($product_id);
    if ($product) {
        if ($product -> isSaleable()) {
            $cart -> addProduct($product, array('qty' => $qty));
        }
    }
    // $session->setCartWasUpdated(true); // Not really necessary - Vicary
    $cart->save();