2011-03-16 7 views
2

현재 온라인 상점의 무게 기준 테이블 비율을 사용하고 있지만 계산 방법을 사용자 정의해야합니다.Magento : 테이블 비율 (무게 기준), 계산 편집

현재 우편 요금은 주문의 총 중량으로 결정되지만, 계산을 통해 장바구니의 가장 무거운 품목에 의한 우편 비용을 결정하고 싶습니다.

이 모듈의 계산을 어떻게 무시할 수 있는지 알고 계십니까? 도와 주시면 정말로 감사하게 생각합니다.

미리 감사드립니다.

답변

5

이 속도를 계산하는 데 사용되는 Magento 클래스를 재정의하십시오. Mage_Shipping_Model_Shipping. 요율 요청이 이루어지면 Mage_Shipping_Model_Rate_Request 개체를 사용하여이 클래스의 collectRates 메서드가 호출됩니다.이 개체에는 항목과 가중치가 미리 채워져 있습니다. 그러나 오버라이드를 사용하여 해당 클래스를 서브 클래 싱함으로써 우리는 까다로울 수 있으며 원하는 속도를 얻을 수 있습니다.

낮은 위험 여기에 우리가 변경된 코드의 양을 최소화 한 우리의 모듈이 깨끗하게 제거 할 수있다 (우리는 심지어 젠토를 업그레이드 할 수 있습니다!)
class MyNamespace_MyModule_Model_Shipping extends Mage_Shipping_Model_Shipping { 

    public function collectRates(Mage_Shipping_Model_Rate_Request $request) { 
     $maxWeight = 0; 
     foreach($request->getAllItems() as $item) { 
      $maxWeight = max($maxWeight, $item->getRowWeight()); 
     } 
     $request->setPackageWeight($maxWeight); 

     return parent::collectRates($request); 
    } 
} 

알 수 있습니다.

희망 하시겠습니까?

감사합니다, 조

+0

조, 정말, 정말 도움을한다. 모듈에 넣을 필요가 있다고 가정하고 있습니까? 죄송합니다. Magento는 처음부터 끝까지 사용하지 않습니다. –

+0

예, 사용자 정의 모듈을 작성하고 (자습서는 많습니다) 다른 운송 클래스의 대체를 작성하십시오. –