我在澳大利亚的 Magento 商店中安装了 2 个模块,当将商品添加到购物车时,它们都会影响报价计算。似乎一个模块与另一个模块发生冲突,而我向模块创建者寻求帮助的尝试几乎没有提供任何支持。
模块如下:
aheadWorks - 积分和奖励模块
MageWorld - 免费礼物模块
当这两个模块都处于活动状态时,我有总计计算错误,具体来说,税收没有按应有的方式添加到总计中。澳大利亚立法规定,产品价格需要包含税款(所有商品的统一税率为 10%),总计还需要包含已缴纳的税款,此外,发票需要显示已缴纳的税款金额客户。
现在,当我禁用 MW – 免费礼物模块时,计算似乎运行正常,这让我相信可以通过修改该模块来修复故障。在查看并测试了两个模块中的部分 config.xml 文件后,我发现它们都包含对global > sales > quote > totals
节点的添加:
aheadWorks - 积分和奖励模块 > etc\config.xml
<global>
…
<sales>
<quote>
<totals>
<points>
<class>points/total_quote_points</class>
<after>wee,discount,tax,tax_subtotal,grand_total</after>
<renderer>points/checkout_total</renderer>
</points>
</totals>
</quote>
...
</sales>
</global>
MageWorld - 免费礼物模块 > etc\config.xml
<global>
...
<sales>
<quote>
<totals>
<freegift>
<class>freegift/quote_address_total_freegift</class>
<after>subtotal</after>
<before>tax_subtotal,shipping</before>
</freegift>
</totals>
</quote>
</sales>
</global>
不幸的是,这段代码在某些层面上让我无法理解它是如何工作的。我知道类节点是指每个相应模块中的某个模型,并且类节点中引用的模型在计算报价总额时被其他模型调用。我不知道哪个模型负责调用这些其他模型来进行报价计算。我发现,仅在 MageWorld 模块中注释掉上面显示的代码似乎可以解决问题,我无法想象它还引入了哪些其他问题。
我假设<after>
和<before>
节点会影响进行这些计算的顺序,但我似乎无法弄清楚它是如何工作的。任何人都可以就它的工作原理和一些关于如何调试此问题的建议提供建议,因为目前我的商店发票显示不正确。