0

我正在尝试使用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.

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

4

1 回答 1

0

我找到了答案。

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

即在update()里面mage/checkout/model/cart/product/api.php,有

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

它应该是

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

所以,我重写了update(),问题就解决了。

于 2013-09-10T05:24:47.183 回答