优惠券总是结账
问题描述:
中重新添加我遇到了以下错误优惠券总是结账
- 添加产品到购物车
- 将优惠券代码
- 删除优惠券代码
- 优惠券代码不再显示/删除成功
- 继续结帐
- 继续开票和发货步骤
- 回去的车 的步骤#2
- 优惠券代码是再度活跃
答
这似乎是在CE中的错误1.9
有一个在Mage_Checkout_CartController :: couponPostAction设置一个新的会话值()
$this->_getSession()->setCartCouponCode($couponCode);
用于恢复在Mage_Checkout_Model_Type_Onepage优待券代码:: _ setCartCouponCode()
protected function _setCartCouponCode()
{
if ($couponCode = $this->getCheckout()->getCartCouponCode()) {
$this->getQuote()->setCouponCode($couponCode);
}
return $this;
}
我解决它通过事件/观察者
<events>
<controller_action_predispatch_checkout_cart_couponPost>
<observers>
<remove_session_coupon_code>
<type>singleton</type>
<class>yourmodule/observer</class>
<method>removeCoupon</method>
</remove_session_coupon_code>
</observers>
</controller_action_predispatch_checkout_cart_couponPost>
</events>
和:
public function removeCoupon(Varien_Event_Observer $observer)
{
$controller = $observer->getControllerAction();
if ($controller->getRequest()->getParam('remove') == 1) {
Mage::getSingleton("checkout/session")->unsetData('cart_coupon_code');
}
return $this;
}