我正在尝试使用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
。
但数量保持不变!为什么会这样?如果有人有解决方案,请与我分享。
答案 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();
}
并解决了问题。