在Magento更新的Ajax购物车项目

时间:2014-07-04 15:57:45

标签: magento shopping-cart

我在这里写道,因为我一直在寻找如何解决我的问题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更新购物车的经验? 以及如何修改上述方法

提前多多感谢

1 个答案:

答案 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。