Php 使用“更新magento购物车”;Mage“结帐”模式“购物车”产品“Api”;?

Php 使用“更新magento购物车”;Mage“结帐”模式“购物车”产品“Api”;?,php,magento,Php,Magento,我正在尝试使用结账/cart\u product\u api模型更新购物车。我使用的功能是 public function updateCartAction() { $result = array(); $apiModel = Mage::getModel('checkout/cart_product_api'); $quoteId = $this->getRequest()->getParam('quote_id', null);

我正在尝试使用
结账/cart\u product\u 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
。它在
app/code/core/Mage/Checkout/Model/Cart/Product/Api.php中调用
update()
,返回值为
true

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

我找到了答案

设置数量后,我需要在
checkout/cart\u product\u api
模型的
update
函数中放入
save()

ie在
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()
,问题就解决了