Magento模块影响报价的顺序

Magento模块影响报价的顺序,magento,checkout,cart,Magento,Checkout,Cart,我有一个模块(不是我自己创建的),它可以获取报价并在满足某些条件时应用折扣。这本身就很好用。购物车规则本身也很有效 但是,在应用内置的Magento购物车(总价)规则之前,我需要自定义模块应用相关折扣。就目前情况而言,Magento首先适用,然后是定制的,这导致了Magento折扣,而不应该有折扣 什么控制模块的顺序,以及如何指定不同的顺序。Magento具有collectTotals功能(我相信这是复合模式的实现)。它的基本功能是按顺序寻址每个指定的总计收集器,并调用它的collect()方法

我有一个模块(不是我自己创建的),它可以获取报价并在满足某些条件时应用折扣。这本身就很好用。购物车规则本身也很有效

但是,在应用内置的Magento购物车(总价)规则之前,我需要自定义模块应用相关折扣。就目前情况而言,Magento首先适用,然后是定制的,这导致了Magento折扣,而不应该有折扣


什么控制模块的顺序,以及如何指定不同的顺序。

Magento具有
collectTotals
功能(我相信这是复合模式的实现)。它的基本功能是按顺序寻址每个指定的总计收集器,并调用它的
collect()
方法

您模块的total collector很可能是在
SalesRule
one之后调用的(它有code折扣)。因此,您需要做的是:打开定制折扣模块的
config.xml
配置文件,找到xpath config/global/sales/quote/totals/[模块别名]并添加(或更改,如果存在)指令
discount


这样,您就可以命令自定义模块的总收集器在
SalesRule
之前应用折扣。

感谢您的回答,在
之前没有任何
指令,因此我在
类下添加了一个
指令,但不幸的是,它似乎没有任何效果。还有一个
,不确定是否相关。您描述的功能可能是在观察者中完成的。您可以尝试将
更改为
——这样在
collectTotals
过程之前将应用自定义模块逻辑,但您的Quote对象可能甚至不包含小计..这很奇怪;进行了您建议的更改,但现在在添加到购物车或访问非空购物车时出现500个错误(php致命错误内存耗尽)。我能提供任何其他信息来帮助你把事情搞定吗。谢谢你的回答,真的很感谢。可能观察员中的逻辑需要一些信息,而这些信息在发出
事件之前目前还不可用。现在我没有主意了,如果你发布你正在使用的模块的
config.xml
文件,这会很有帮助,-但我不确定它是否会有帮助,你需要使用一些调试工具Slayer,结果是另一个折扣模块没有使用普通的magento促销系统,而是定义了自己的;因此,该命令无法解决这一问题。但没有理由认为你的解决方案不适合我描述的情况,因此答案是正确的。谢谢