Magento 在结帐时,优惠券总是重新添加的
我遇到了以下错误Magento 在结帐时,优惠券总是重新添加的,magento,magento-1.9,Magento,Magento 1.9,我遇到了以下错误 将产品添加到购物车 应用优惠券代码 删除优惠券代码 优惠券代码不再显示/删除成功 结帐 继续计费和发货步骤 坐马车回去 步骤#2的优惠券代码再次激活 这似乎是CE1.9中的一个bug 在Mage_Checkout_CartController::couponPostAction()中设置了一个新的会话值 这将还原Mage_Checkout_Model_Type_Onepage中的优惠券代码::_setCartCouponCode() 我通过事件/观察者解决了它 <
这似乎是CE1.9中的一个bug 在Mage_Checkout_CartController::couponPostAction()中设置了一个新的会话值 这将还原Mage_Checkout_Model_Type_Onepage中的优惠券代码::_setCartCouponCode() 我通过事件/观察者解决了它
<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>
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;
}