【问题标题】:Coupon is always re-added during checkout优惠券总是在结帐时重新添加
【发布时间】:2017-03-16 15:59:38
【问题描述】:

我遇到了以下错误

  1. 将产品添加到购物车
  2. 应用优惠券代码
  3. 移除优惠券代码
  4. 优惠券代码不再显示/删除成功
  5. 去结账
  6. 继续计费和发货步骤
  7. 返回购物车
  8. 步骤#2的优惠券代码再次激活

【问题讨论】:

    标签: magento magento-1.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;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-04-18
      • 2020-12-17
      • 2016-02-09
      • 2021-10-21
      • 2014-08-29
      • 1970-01-01
      • 2021-09-06
      • 2016-02-25
      • 2014-09-08
      相关资源
      最近更新 更多