gpt4 book ai didi

php - Magento 显示多个折扣明细

转载 作者:可可西里 更新时间:2023-10-31 23:08:09 26 4
gpt4 key购买 nike

我已经在我的 Magento 版本中安装了奖励模块。我还设置了一些购物车促销事件。一切正常。在购物车页面上,您可以兑换奖励积分并输入折扣代码,一切都会正确打折。问题是它们都标有“折扣”标签(其中 1,000 点 = £1 折扣)


(来源:i.imm.io)

如您所见,它将 5 英镑的优惠券折扣和 1 英镑的奖励折扣组合在一起。如何将它们分开,以便我有两个折扣行,一个用于优惠券,一个用于奖励积分?

最佳答案

这不是一项简单的任务。不幸的是,Magento 的折扣系统并没有为添加您可能不希望一起添加到购物车总计框中的新折扣类型做好充分准备。

确实需要修改TBT_Rewards_Model_Salesrule_Observer类的resetDiscountLabels()方法。但是,此方法不是 Sweet Tooth 将其折扣添加到折扣描述中的地方。恰恰相反。 Sweet Tooth 的折扣自动添加到 Magento 的购物车折扣列表中(并且折扣说明是从此折扣列表中自动生成的)。问题是,即使是不应添加到购物车的 Sweet Tooth 折扣也会显示在那里 - 根据您创建的规则适用于购物车的折扣,但客户没有居然选择花自己的点数呢。 resetDiscountLabels() 方法用于删除购物车中不需要的折扣说明,而不是添加任何。

您的问题的解决方案分为两步,第二步更费力。

首先,您必须修改上述方法以从购物车中删除所有 Sweet Tooth 折扣说明,而不仅仅是那些不适用的。我建议首先将文件复制到您的应用程序/代码/本地代码池,然后修改该文件而不是原始文件。如果您遍历购物车上的所有规则 ID,然后加载规则模型,您可以判断它是否是 Sweet Tooth 规则,如果它的 points_action 字段已设置,即 $rule-> getPointsAction() !== null。如果任何规则是 Sweet Tooth 规则,您可以从折扣描述中取消设置它们,就像该方法已经在做的那样。在此之后,Sweet Tooth 折扣不应再出现在总计框的那一行中。

第二步是向总计框中添加一个新行,也就是向报价中添加一个新的总计模型。这将是更复杂的步骤 - 比我在此答案中描述的要复杂得多,但这里有一个关于添加新总计列的教程:http://turnkeye.com/blog/magento-development-add-total-row-checkout/在新总模型的 collect() 方法中,您应该检查报价单的 applied_redemptions 字段以获取客户已应用于其购物车的 Sweet Tooth 规则 ID 列表。然后,您可以使用这些值重新生成 Sweet Tooth 总折扣。

正如我所说,这不是一项简单的任务,不幸的是,这是完成它的唯一半干净的方法。希望不要太多。如果您宁愿将自己的开发时间集中在其他任务上,您也可以随时聘请开发公司为您做这件事。

希望这有用!

关于php - Magento 显示多个折扣明细,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13562229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com