2010-10-05 40 views
2

我們使用USPS API進行國際運輸。該API返回運輸成本,並添加%處理費用。我們希望設定最低收費,例如,如果裝運+處理少於5美元,我們希望將運費設定爲5美元。這是否需要編寫一個完整的運輸模塊或僅適應USPS模塊?Magento - 創建最低運費

回答

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

保持它光明正大,讓他們知道你這樣做。

希望有幫助!

謝謝, Joe