2013-09-29 26 views
0

在Magento 1.7中,有沒有什麼方法可以顯示統一運費只有當圖表超過一定數額?根據規則,唯一的選擇似乎是免費送貨,但我的目標是如果圖表中的小計總額爲xx(如果小計較低,則將使用正常費率)。謝謝! -EspenMagento統一費率航運只有當圖表超過一定的數額

回答

1

不是默認情況下。儘管要做到這一點,但擴展統一費率航運承運人方法很容易。只需創建一個新模塊,擴展統一費率發貨系統.xml,以便購買最低購物車價格(這將允許您通過管理員配置)。擴展以下類Mage_Shipping_Model_Carrier_Flatrate並覆蓋collectRates方法以檢查購物車總額與管理配置值。如果購物車價值不夠,並且不會顯示爲選項,則返回false,否則將返回管理中設置的成本。

編輯:像下面的東西會做到這一點。擴展班級,不要模塊核心!

public function collectRates(Mage_Shipping_Model_Rate_Request $request) 
{ 
    // Get The Minimum Order Value From Admin Config & Compare To Cart Subtotal (Base Prices) 
    if (!$this->getConfigFlag('minimum_order') || $request->getBaseSubtotalInclTax() < $this->getConfigFlag('minimum_order')) { 
     return false; 
    } else { 
     return parent::collectRates($request); 
    } 
} 
+0

嗨。我設法創建了新模塊,並添加了購物車價格選項(稱爲'minimum_order')。並使其在前端工作。但沒有完全設法收集收益率,以便新的統一費率僅在圖表等於或高於'minimum_order'值時顯示。你能幫我嗎?非常感謝! – Espen

+0

以示例更新。注意$ this-> getConfigFlag()方法。這是爲給定載體的新參數檢索管理配置值。然後,我們簡單地比較購物車小計。如果我們返回false,則該方法不可用。 – Ashley

+0

嗨。我不能讓getConfigFlag函數工作,好像它不會從管理員那裏獲取值。然而,我不需要改變這個值一段時間,所以嘗試了一個更加硬編碼的代碼版本:'if($ request-> getBaseSubtotalInclTax()<=('699')){0} { return false ; 「這會幫助我達到我的目標,但不幸的是沒有完美的方式。非常感謝您的幫助:) – Espen

相關問題