2011-09-30 21 views
0

我正在爲Magento網站實施定製的聯邦快遞集成解決方案。其中一部分是在onepage checkout中添加簽名需求複選框,如果選中此項,則添加$ 3。不幸的是,FedEx Rate Web Service似乎沒有采用任何有關簽名要求的參數,因此我必須手動將此成本添加到訂單中。提高運輸價格和/或增加行項目的額外費用

我在想採取這兩種方法之一,但我不知道會是最好的,也不是我知道如何真正完成它:

  1. 添加$ 3到什麼價格聯邦快遞返回
  2. 爲此創建一個新行項目

假設我有一個$ order的句柄,哪個解決方案最好,我該怎麼做?

編輯:代碼應該在由checkout_controller_onepage_save_shipping_method事件調用的觀察者方法中運行,該事件在$this->getOnepage()->saveShippingMethod($data);之後立即觸發。這意味着當FedEx API返回結果時我不能添加$ 3,因爲我不知道該複選框是否被選中,直到之後。

在此先感謝!

+0

您還可以複製運輸方式,並將其視爲另一種價格的「額外運費」方法? – Kenny

+0

您正在使用哪個版本的Magento? –

回答

0

我想出了一個解決方案;這不是最好的,但它對我來說完全正常:

  1. Magento在保存運送信息時觸發事件。我抓取POST數據並將其保存在數據庫以及地址對象中。
  2. 如果複選框已更改,請重新加載相同的選項卡,而不是轉到付款步驟。
  3. 在運輸報價中,檢查複選框值的地址對象。如果設置,則爲報價結果添加一定金額。