Magento - 逐项更新购物车ID

时间:2016-12-27 10:26:17

标签: php magento

如何使用商品ID更新购物车商品?我搜索了很多但是没有成功,这是我的代码 -

require_once '../app/Mage.php';
Mage::app('default');

$qty = $_REQUEST['quantity'];
$item_id = (int) $_REQUEST['item_id'];
$cart = Mage::getSingleton('checkout/cart');
$quoteItem = $cart->getQuote()->getItemById($item_id);

/*$quoteItem = Mage::getModel('sales/quote_item')->getCollection()
   ->addFieldToFilter('item_id', array('in' => array($item_id)));*/
print_r($quoteItem);
if (!$quoteItem) {
    Mage::throwException('Quote item is not found.');
}

if ($qty == 0) {
    $cart->removeItem($id);
} else {
    $quoteItem->setQty($qty)->save();
}
$cart->save();

我在API中实现它,但是相同的代码在网站上正常工作。请帮助!!!

1 个答案:

答案 0 :(得分:3)

我使用下面的代码更新购物车项目,我使用观察者来做到这一点。你能试试吗?

    $quote = $observer->getEvent()->getQuote();
    var_dump($quote->getId());

    $quote = Mage::getSingleton('checkout/session')->getQuote();
    //var_dump($quote->getId());
    $cartItems = $quote->getAllItems();
    //$storeId = Mage::app()->getStore()->getId();
    foreach ($cartItems as $item) {
        //echo $item->getSku();
        $item->set__($value); // desired quote field from database
        $item->save();
    }
    $quote->save();