Magento在购物车中显示多个折扣

时间:2013-06-05 15:38:23

标签: magento magento-1.7

我目前正在寻找一种在Magento购物车中显示多个折扣的方法,而无需购买扩展程序。如果客户购买的订单超过50美元,那么运费是免费的,如果他们使用优惠码“rush13”,那么他们可以获得10%的折扣。运费和折扣都正确计算,但它们显示在一条线上。有没有办法显示折扣?我觉得这对客户来说更容易看出他们每次折扣收到了多少。

我正在使用Magento 1.7

- 当前显示 -

小计:$ xxx.xx

折扣(免运费,应用优惠券代码RUSH13) - $ xx.xx

- 首选显示 -

小计:$ xxx.xx

折扣(免费送货) - $ xx.xx

折扣(优惠券代码RUSH13) - $ xx.xx

- 这也可以工作 -

小计:$ xxx.xx

折扣(免运费 - $ xx.xx,优惠券代码RUSH13 - $ xx.xx) - $ xx.xx

任何帮助将不胜感激。我不喜欢在没有代码的情况下发布问题,但我不知道从哪里开始。提前谢谢。

1 个答案:

答案 0 :(得分:2)

班级Mage_SalesRule_Model_Validator负责折扣计算。所以我们可以从这个循环计算中设置我们的折扣描述。

方法

public function process(Mage_Sales_Model_Quote_Item_Abstract $item)

寻找代码

$discountAmount = $result->getDiscountAmount();

并将这两行放在上面的代码之后,这将在当前的foreach循环中准备我们的描述数组

$_formatedDiscountAmount = Mage::helper('core')->currency($discountAmount, true, false);
$_descriptionArray[] = $rule->getName()."-".$_formatedDiscountAmount;

最后,在foreach结束后立即放置此代码

$address->setDiscountDescriptionArray($_descriptionArray);