我在这里写道,因为我一直在寻找如何解决我的问题2h +)
我需要更新Magento的购物车。 StackOverFlow.com上也有类似的问题,但它们看起来不适合我的任务
让我稍后解释一下
1)我覆盖了Mage_Checkout_CartController 像
类IB_Ajax_IndexController扩展Mage_Checkout_CartController
适用于添加产品的ajax
用于更新我发送请求
/ AJAX /索引/ updatePost
与params
form_key = H7XpKxwBOWQCkIHk&安培;购物车[304] [数量] = 39&安培;购物车[305] [数量] = 1&安培;购物车[306] [数量] = 1&安培; update_cart_action = UPD
它转到我的控制器“IB_Ajax_IndexController” 它有所有方法“Mage_Checkout_CartController”
我检测到此方法确实更新了
public function updatePostAction()
然后一些更新转到$ this-> _updateShoppingCart();在上面的方法
案例'update_qty': $这 - > _updateShoppingCart(); 打破;
我将其代码复制到我的控制器,以便在此重写它。
我遇到了这么多困难 如何在执行$ this-> _updateShoppingCart()之后检测此方法updatePostAction()中的SUCCESS或ERROR( ????
也许有人有通过ajax更新购物车的经验? 以及如何修改上述方法
提前多多感谢
答案 0 :(得分:1)
首先制作一个像这样的响应数组。
$response = array();
添加购物车代码后,例如$ cart-> save();
try{ if (!$cart->getQuote()->getHasError()){
$message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->htmlEscape($product->getName()));
$response['status'] = 'SUCCESS';
$response['message'] = $message;
}
} catch (Exception $e) {
$response['status'] = 'ERROR';
$response['message'] = $this->__('Cannot add the item to shopping cart.');
Mage::logException($e);
}
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($response));
return;
当你得到回复时,通过$ response ['status']你可以获取SUCCESS或ERROR。