2012-08-06 4 views
3

배송 모듈을 생성 한 후 blog의 지침에 따라 magento 1.7.x.x에 대한 사용자 정의 (출하) 배송 방법을 만들려고합니다. 사용자의 배송 옵션 선택에 따라 배송비를 변경할 수 있기를 바랍니다.
배송 방법을 선택한 후 배송비를 변경/업데이트하는 방법

제조 :

1) 사용자 (pickship) 배송 방법
2) 세 값 텍스트) 드롭/선택 요소 일 수있다 (상점 이름 만들기위한 형태 블록 생성됨 : store1, store2, store3.
) 기본 배송비는 배송 구성을 통해 $ 1.00 (테스트 목적으로 만)로 설정됩니다.

현재 상태 : I는 단일 페이지 체크 아웃에서 배송 방법의 선택에 도달하면

1) 필요한 과정 후, 나는 세 가지 옵션이 선택 요소로 설정 선박 가격을 참조 기본 가격.

대상 : 사용자가 두 번째 옵션을 선택하면 사용자가 첫 번째 옵션, $ 20.00을 선택하면

싶습니다 운송 비용은 $ 10.00로 업데이트한다.

내 시도 :

은 인터넷 검색을 몇 시간 후, 나는 관찰자 모델에 약간 수정을했다 :

NameSpace_ModuleName_Model_Observer extends Varien_Object { 

public function saveShippingMethod($observer) { 

    $request = $evt->getRequest(); 
    $quote = $evt->getQuote(); 
    $pickship = $request->getParam('shipping_pickship', false); 
    $rates = $quote->getShippingAddress()->getShippingRatesCollection(); 
    $rate = $rates->getFirstItem(); 
    if($pickship['select_element'] == 1) { 
    $rate->setPrice(10); 
    } elseif($pickship['select_element'] == 2) { 
    $rate->setPrice(20); 
    } 
    //Mage::log($rate->getPrice()); 

} 

질문 :

것은 내가 바로 관찰자를 사용하고 /이 작업에 대한 방법? 한 단계 만 작동합니다. '계속'을 클릭하여 주문을하면 기본 가격으로 다시 설정됩니다. 배달 가격을 설정하는 나의 방식이 잘못되었을 수 있습니다. 나를 올바른 길로 인도하거나 해결책을 제안 할 수 있습니까?

답변

1

당신이 당신의 맞춤형 솔루션을 코딩하고 싶다면, 여기 좋은 자습서를 찾을 수 있습니다 기본적으로 Custom shipping method in Magento

당신이 관찰자를 사용하지 않아야는, 대신에 두 개의 배송 방법과 모듈에서 사용자 지정 캐리어를 정의해야합니다.

모델에서 함수 getAllowedMethods()을 사용하여 운송 방법을 선언하면 함수 collectRates()에서 각 운송 방법에 대한 요율을 제공합니다.

관련 문제