2011-08-25 4 views
1

내 배송비가 계산되어 "Customer_Address"에 "District"속성이 생성되었습니다. 이 속성은 내 체크 아웃에서 완벽하게 잘 나타나며 사용자는 아무런 문제없이 몇 가지 옵션 중에서 선택할 수 있습니다.Magento에서 사용자 정의 주소 속성을 사용한 체크 아웃

그러나 체크 아웃 할 때 내 클래스의 collectRates() 메소드는 체크 아웃 할 사용자가 선택한 옵션에 대한 정보가있는 "Mage_Shipping_Model_Rate_Request"를받습니다. 이 시점에서 사용자가 지구 값으로 설정 한 값을 가져와 배송비를 계산할 수있는 방법이 필요하지만 Mage_Shipping_Model_Rate_Request에서 정보를 가져올 수 없습니다.

나중에 검색하기 위해 해당 클래스에 속성을 추가 할 수있는 방법이 있습니까? 또는 다른 방식으로 그 가치를 얻으려고해야합니까?

당신이 내게 줄 수있는 도움이 무엇이든간에 매우 유용 할 것입니다!

감사합니다.

답변

1

나는 ... 어쨌든, 당신은 이미이 문제를 해결

생각 나는이 같은 문제를 겪고 있으며이 방법으로 해결 :

재 작성 Mage_Sales_Model_Quote_AddressMage_Shipping_Model_Shipping을, 이들은 $request = Mage::getModel('shipping/rate_request');

를 수행 클래스입니다 그래서 같이 보인다 :

class MyCompany_MyModule_Model_Quote_Address extends Mage_Sales_Model_Quote_Address{ 

public function requestShippingRates(Mage_Sales_Model_Quote_Item_Abstract $item = null) 
{ 
    /** @var $request Mage_Shipping_Model_Rate_Request */ 
    $request = Mage::getModel('shipping/rate_request'); 

    // add custom attribute 
    $request->setDestCustom($this->getCustomAddressAttribute()); 
    ... 
} 
} 

class MyCompany_MyModule_Model_Shipping extends Mage_Shipping_Model_Shipping{ 

    public function collectRatesByAddress(Varien_Object $address, $limitCarrier = null) 
    { 
     /** @var $request Mage_Shipping_Model_Rate_Request */ 
     $request = Mage::getModel('shipping/rate_request'); 
     ... 

     // add custom attribute 
     $request->setDestCustom($address->getCustomAddressAttribute()); 
    } 
} 
관련 문제