Magento:setCouponCode似乎没有在报价模型上应用优惠券

0 php magento

我们主要将Magento用于交易,并且已经完全通过自定义应用程序重写了前端。我在报价对象上应用优惠券代码(购物车价格规则)时遇到麻烦。优惠券代码似乎被拒绝-setCouponCode不返回任何错误,但是getCouponCode返回空字符串。

我已经通过管理员后端进行交易,从而验证了优惠券代码是否有效。这是下面的代码片段。

有人可以帮助我让报价模型对象接受并应用优惠券代码吗?

函数add_coupon($ shoppingCartId,$ couponcode){

    try {
            $quoteObj = Mage::getModel('sales/quote')->load($shoppingCartId);
            $quoteObj->getShippingAddress()->setCollectShippingRates(true);
            $quoteObj->getShippingAddress()->setCouponCode($coupon)
                    ->setTotalsCollectedFlag(true)
                    ->collectTotals()
                    ->save();
    } catch (Exception $e) {
            return array("status"=>"failed", "message"=>"Error applying coupon.");
    }
    if ($coupon) {
            if (!$coupon == $quoteObj->getCouponCode()) {
                    return array("status"=>"failed", "message"=>"Coupon code is not valid.");
            }
    }
    return array("status"=>"success");
Run Code Online (Sandbox Code Playgroud)

}

Emi*_*ily 5

我遇到了同样的问题,发现在将任何项目添加到报价中之前需要调用setCouponCode()。

在您的情况下,它看起来像:

$quoteObj = Mage::getModel('sales/quote')->setCouponCode($coupon)->load($shoppingCartId);
Run Code Online (Sandbox Code Playgroud)