【发布时间】:2011-04-21 12:08:29
【问题描述】:
我们使用 USPS API 进行国际运输。 API 返回运费,我们会添加 % 手续费。我们希望设置最低费用,例如,如果运费 + 手续费低于 5 美元,我们希望将运费设置为 5 美元。这需要编写一个完整的运输模块还是只修改 USPS 模块?
【问题讨论】:
标签: php model-view-controller oop magento
我们使用 USPS API 进行国际运输。 API 返回运费,我们会添加 % 手续费。我们希望设置最低费用,例如,如果运费 + 手续费低于 5 美元,我们希望将运费设置为 5 美元。这需要编写一个完整的运输模块还是只修改 USPS 模块?
【问题讨论】:
标签: php model-view-controller oop magento
您可以通过仅覆盖 USPS 模块的一部分来实现此目的。应用处理的方法在Mage_Shipping_Model_Carrier_Abstract:
public function getFinalPriceWithHandlingFee($cost)
要为美国覆盖此方法,请在 Mage_Usa_Model_Shipping_Carrier_Usps 上创建一个新模型覆盖(请参阅其他地方了解如何设置此覆盖):
class Namespace_Module_Model_Shipping_Carrier_Usps extends Mage_Usa_Model_Shipping_Carrier_Usps {
function getFinalPriceWithHandlingFee($cost) {
$parentValue = parent::getFinalPriceWithHandlingFee($cost);
return max($parentValue,5);
}
}
这将为运费实施“下限”。请记住,在某些情况下,这可能会导致用户注意到奇怪的结果。举个例子:
保持光明正大,让他们知道你正在这样做。
希望有帮助!
谢谢, 乔
【讨论】: