2017-03-16 134 views
1

中重新添加我遇到了以下错误优惠券总是结账

  1. 添加产品到购物车
  2. 将优惠券代码
  3. 删除优惠券代码
  4. 优惠券代码不再显示/删除成功
  5. 继续结帐
  6. 继续开票和发货步骤
  7. 回去的车
  8. 的步骤#2
  9. 优惠券代码是再度活跃

回答

1

这似乎是在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; 
}