3
我的自定義裝運模塊失敗,因爲在後臺編輯訂單時無法獲得銷售報價。這是我正在使用的代碼:檢查訂單是否被管理員編輯?
class Mymodule_Model_Mycarrier_Customrate
extends Mage_Shipping_Model_Carrier_Abstract
implements Mage_Shipping_Model_Carrier_Interface
{
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
$quote = Mage::getSingleton('checkout/type_onepage')->getQuote();
我需要獲取當前的報價,因此我有權訪問地址信息。我正在提出一個需要街道地址的API請求。
現在,如果在後臺編輯訂單,這顯然會導致錯誤,因爲結帳單例不再相關。相反,我得到的報價是這樣的:
$quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();
在我collectRates()方法,我需要確定要裝入的單。首先,我要問,如果這是做事的正確方法,並且如果我的後臺檢查就足夠了:
$quote = Mage::getSingleton('checkout/type_onepage')->getQuote();
// If admin is editing an order, find the quote by admin session.
if(Mage::getSingleton('admin/session')->isLoggedIn()){
$quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();
}
我不希望這以後可能會出現問題。如果我必須創建一個像這樣的解決方法,我也會覺得我可能會使用collectRates()方法。
謝謝,我不知道我怎麼錯過了! 1.6.1中的默認UPS模塊(Mage_Usa_Model_Shipping_Carrier_Ups)在XML請求中沒有使用目的地街道地址,因此我沒有使我感到奇怪,因爲我無法以這種方式訪問街道。乾杯。 – 2011-12-30 03:00:31