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