2013-09-03 2 views
2

Magento OPC에서 배송 방법을 한 단계 더 추가했습니다.magento 배송 선적 금액 견적 내역

고객이 특급 배송을 선택한 경우 배송 금액을 두 배로 저장해야합니다. 이것을 달성하는 방법?

내가 뭘하려 : 작동하지 않습니다

1. $quote = $this->getQuote(); 
$quote->setShippingAmount($price); 
$quote->setBaseShippingAmount($price); 
$quote->getShippingAddress()->collectShippingRates(); 
$quote->getShippingAddress()->collectTotals(); 
$quote->save(); 

.

2.$address = $this->getQuote()->getShippingAddress(); 
$method = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getShippingMethod(); 

if ($method) { 
    foreach ($address->getAllShippingRates() as $rate) { 
     if ($rate->getCode()==$method) { 
      $amountPrice = $address->getQuote()->getStore()->convertPrice($rate->getPrice(), false); 
      $method->setPrice('20'); 
      $method->setCost('20'); 
      $shippingDescription = $rate->getCarrierTitle() . ' - ' . $rate->getMethodTitle(); 
      $address->setShippingDescription(trim($shippingDescription, ' -')); 
      break; 
      } 
     } 
    } 

답변

1

옵서버에 대해서는 언급하지 않았습니다. 그래서 여기에이 일

을 처리 할 수있는 하나의 관찰자를 작성해야하는 것은 당신의 목표를 실현하려 아주 좋은 문서입니다

단지 this link을 던져 가서 그들이 무엇을하고 있는지 이해하려고 노력. 또한 비율을 변경하려는 경우 사용자 정의 코드로 변경할 수도 있습니다.

희망이 도움이 될 것입니다.

+0

나는 관찰자 acc를 만들었습니다. 지침에. 하지만 체크 아웃 단계에서 배송 금액을 업데이트하므로 견적을 업데이트하는 코드가 필요합니다! 나는 observer에서 saveQuoteBefore() 메서드를 만들었고 XML로도 제대로 정의했다. 그러나 그 값으로 무엇을 써야할지 모르겠다. –

+0

하나의 레디 메이드 프리 익스텐션을 사용하려면 http://www.rapidcommerce.eu/blog/2012/04/allways-show-shipping-costs-in-magento/을 던지십시오. 그러면 문제를 확실히 해결할 수 있습니다. – liyakat

+0

내 대답은 당신에게 유용합니까? 그것을 pls하고 투표를합니다. 어떤 사람에게는 같은 문제가있는 것이 미래의 목적을 위해 좋을 것입니다. – liyakat