[英]Update magento cart with “Mage_Checkout_Model_Cart_Product_Api”?
我正在嘗試使用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
。 它在app/code/core/Mage/Checkout/Model/Cart/Product/Api.php
調用update()
,返回值為true
。
但是數量保持不變! 為什么會發生? 如果有人有解決方案,請與我分享。
我找到了答案。
設置數量后,我需要在checkout/cart_product_api
模型的update
函數中放置一個save()
。
即在mage/checkout/model/cart/product/api.php
中的update()
中,有
if ($productItem['qty'] > 0) {
$quoteItem->setQty($productItem['qty']);
}
它應該是
if ($productItem['qty'] > 0) {
$quoteItem->setQty($productItem['qty'])->save();
}
因此,我覆蓋了update()
並解決了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.