Magento折扣没有显示在订单项上,但总计是正确的

时间:2013-08-01 17:37:53

标签: magento discount coupon

我遇到的问题是在尝试从结帐时对订单应用折扣时,它会在magento管理订单页面的底部应用正确的总折扣,但订单项显示的是0美元折扣。

例如,假设我对所有东西都有50%的促销,有人购买2件物品,Apple为10美元,Orange为5美元,购物车总数为15 - 50%= 7.50美元已经发生,但是当你看在订单项目中,两个折扣都设置为$ 0,应该是:苹果数量:1个价格10美元折扣5美元总计5美元 橙色数量:1个价格5美元折扣2.50总计2.50美元;这是我的代码:

 $couponCode = (string) $this->getRequest()->getParam('coupon_code');
    if ($this->getRequest()->getParam('remove') == 1) {
        $couponCode = '';
    }
    $oldCouponCode = $this->_getQuote()->getCouponCode();

    if (!strlen($couponCode) && !strlen($oldCouponCode)) {
        $this->_goBack();
        return;
    }

    try {
        $this->_getQuote()->getShippingAddress()->setCollectShippingRates(true);
        $this->_getQuote()->setCouponCode(strlen($couponCode) ? $couponCode : '')
            ->collectTotals()
            ->save();

        if ($couponCode) {
            if ($couponCode == $this->_getQuote()->getCouponCode()) {
                $this->_getSession()->addSuccess(
                    $this->__('Coupon code "%s" was applied.', Mage::helper('core')->htmlspecialchars($couponCode))
                );
            }
            else {
                $this->_getSession()->addError(
                    $this->__('Coupon code "%s" is not valid.', Mage::helper('core')->htmlspecialchars($couponCode))
                );
            }
        } else {
            $this->_getSession()->addSuccess($this->__('Coupon code was canceled.'));
        }


    echo $this->_getReviewHtml();
    exit;

1 个答案:

答案 0 :(得分:0)

购物车促销规则是针对每件商品折扣还是针对整个订单设置折扣?

代码本身看起来不错。

您可能还希望添加结帐会话。

Mage::getSingleton("checkout/session")->setData("coupon_code",strlen($couponCode));