2017-03-16 213 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; 
}