Magento - 创建最低运费

时间:2010-10-05 20:11:02

标签: php model-view-controller oop magento

我们使用USPS API进行国际运输。 API会返回运费,我们会另外收取处理费用。我们要设置最低费用,例如,如果运费+处理费低于5美元,我们要将运费设置为5美元。这是否需要编写完整的运输模块或仅修改USPS模块?

1 个答案:

答案 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);
    }
}

这将实现运费价格的“底线”。请记住,在某些情况下,这可能会导致用户注意到奇怪的结果。对于人为的例子:

  • 头等舱 - $ 5.00
  • 媒体邮件 - $ 5.00
  • 优先邮件 - $ 5.33

将它保持在最高位置,让他们知道你正在这样做。

希望有所帮助!

谢谢, 乔