我们使用USPS API进行国际运输。 API会返回运费,我们会另外收取处理费用。我们要设置最低费用,例如,如果运费+处理费低于5美元,我们要将运费设置为5美元。这是否需要编写完整的运输模块或仅修改USPS模块?
答案 0 :(得分:1)
您可以通过覆盖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);
}
}
这将实现运费价格的“底线”。请记住,在某些情况下,这可能会导致用户注意到奇怪的结果。对于人为的例子:
将它保持在最高位置,让他们知道你正在这样做。
希望有所帮助!
谢谢, 乔