使用“Mage_Checkout_Model_Cart_Product_Api”更新magento购物车?

时间:2013-09-09 05:46:58

标签: php magento

我正在尝试使用checkout/cart_product_api模型更新购物车。我使用的功能是,

public function updateCartAction() {

        $result = array();
        $apiModel = Mage::getModel('checkout/cart_product_api');

        $quoteId = $this->getRequest()->getParam('quote_id', null);
        $store = $this->getRequest()->getParam('store_id', null);

        $quoteId = 74;
        $store = 1;

        $productId = "51";
        $qty = "5";

        $productsData = array(
                                array(

                                        "product_id" => $productId,
                                        "qty" => $qty

                                      )
                             );

        $result = $apiModel->update($quoteId, $productsData, $store);

        print json_encode(array("result" => $result));    
    }

我在这里尝试手动更改产品数量51。它在update()中调用app/code/core/Mage/Checkout/Model/Cart/Product/Api.php,返回值为true

但数量保持不变!为什么会这样?如果有人有解决方案,请与我分享。

1 个答案:

答案 0 :(得分:0)

我找到了答案。

在设置数量后,我需要在save()模型的update函数中添加checkout/cart_product_api

即在update()的{​​{1}}中,有

mage/checkout/model/cart/product/api.php

应该是

 if ($productItem['qty'] > 0) {
                $quoteItem->setQty($productItem['qty']);
            }

因此,我覆盖 if ($productItem['qty'] > 0) { $quoteItem->setQty($productItem['qty'])->save(); } 并解决了问题。