今天我正在研究 Magento 税收计算的工作原理,以了解“基于税收计算方法”的行为之间的差异。
我深入追踪了Mage_Tax_Model_Sales_Total_Quote_Tax,它实现了_unitBaseCalculation、_rowBaseCalculation、_totalBaseCalculation中的所有方法。
我发现它们产生完全相同的结果。那么,他们为什么要经历实施它们的麻烦呢?
例如,单价计算麻烦的是计算单个单元的税,然后将折扣金额除以数量(如果在折扣后应用税),然后将两者相减,然后再乘以数量......这只是引入了舍入误差。
而行总计计算是最直观的计算(从“小计”行中获取价格)减去折扣金额(如果在折扣后应用税收)。
而第三个只是第二个的聚合,一次计算。
这只是给税收计算逻辑带来了混乱和混淆。任何人都可以阐明为什么这样做吗?
(舍入错误?向后兼容性?TheDailyWTF 奖的候选人?)
编辑:据记录,这在 Magento 1.6 和 1.7 中是正确的,不知道旧版本。