2013-04-12 2 views
0

magento의 결제 페이지에서 무료 배송 텍스트 맞춤화 방법.체크 아웃 페이지의 무료 배송 블록에 텍스트 추가

결제 페이지에서 배송비 대신 일부 텍스트를 추가하고 싶습니다.

기본적으로 배송비는 다음과 같습니다. - "Free $ 0.00", "Free $ 6.95 - $ 6.95 = $ 0.00"으로 변경하고 싶습니다.

감사합니다, Ravijot 카 우르

+0

해결 방법이 있는지 알려 주시기 바랍니다. – user2273857

답변

1

두 솔루션은 마음에 와서 :

1) 당신은 당신이 비용을 각 제품의 배송 기대 얼마나 모든 제품과 하드 코드에 속성을 추가 할 수 있습니다 그런 다음 그 숫자를 합산하십시오. 이 경우 무료 배송 텍스트를 변경하려는 모든 템플릿을 찾고 현재 카트에있는 모든 항목을 가져옵니다 (this 견적 항목을 얻을 수있는 방법에 대한 답변 참조). getProduct()를 사용하여 데이터를로드하고 특성을로드 한 다음 합계하여 가격을 상점의 로켈로 형식화하고 인쇄하십시오.

예 : 이러한 위치 중 하나가 app/design/frontend/base/default/template/checkout/onepage/shipping_method/available.phtml 인 경우 if 문을 입력해야 무료 배송 만 가능합니다. 거기에서 $ _rate-> getCode()에 대한 호출을 볼 수 있습니다. 해당 함수의 출력이 freeshipping_freeshipping과 일치하면 텍스트를 html에 첨부해야합니다.

2) 2 초 및 좀 더 복잡한 해결책은 다른 배송 방법을 선택하고 그 금액을 입금하는 것입니다 (예 : 무료 배송이 사용되지 않는 경우 얼마의 비용이 소요되는지 보려면 배송 방법을 사용합니다.).

Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress(); 

:이를 위해 당신은 요청 (클래스 Mage_Shipping_Model_Rate_Request)에 선적 adderess (클래스 Mage_Sales_Model_Quote_Address)을 변환하는 기능

public function prepareRequest(Mage_Sales_Model_Quote_Address $address) 
{ 
    $request = Mage::getModel('shipping/rate_request') 
     ->setAllItems($address->getAllItems()) 
     ->setDestCountryId($address->getCountryId()) 
     ->setDestRegionId($address->getRegionId()) 
     ->setDestPostcode($address->getPostcode()) 
     ->setPackageValue($address->getBaseSubtotal()) 
     ->setPackageValueWithDiscount($address->getBaseSubtotalWithDiscount()) 
     ->setStoreId(Mage::app()->getStore()->getId()) 
     ->setWebsiteId(Mage::app()->getStore()->getWebsiteId()) 
     ->setBaseCurrency(Mage::app()->getStore()->getBaseCurrency()) 
     ->setPackageCurrency(Mage::app()->getStore()->getCurrentCurrency()) 
     ->setPackageQty($address->getItemQty()) 
     ->setPackageWeight($address->getWeight()); 

    return $request; 
} 

당신은있는 qoute에서 주소를 얻을 수 헬퍼 클래스를 생성하고 구현해야 할 것입니다 그 요청으로 여러분은 원하는 이동 통신사 (예 : Mage_Usa_Model_Shipping_Carrier_Ups :: collectRates)에서 콜 레 티지 함수를 호출 할 수 있습니다. Mage_Shipping_Model_Shipping :: collectRates에서 모든 이동 통신사에 대한 호출 예제와 요청을 통해 수행해야하는 함수 호출 인 $carrier->collectRates($request);이 포함 된 Mage_Shipping_Model_Shipping :: collectCarrierRates에서 호출되는 함수를 볼 수 있습니다.

collect 기능은 결과 클래스 (Mage_Shipping_Model_Tracking_Result)를 사용합니다 (구조를 보려면 var_dump ($ response-> getData()) 또는 Mage :: log ($ response-> getData()); 귀하는 운송 업체가 운송 주소로 제품을 배송하는 데 부과하는 가격을 받게됩니다.그 숫자와

당신은) 솔루션 1을 사용 (최초의 솔루션의 맨 아래)에서 예제의 경우 볼 것이다 것처럼 당신은 그 같은 행동을 할 : 상점의 로케일에

  1. 형식 가격
  2. 이 무료 배송 다음 텍스트를 추가 할 경우 배송 방법은
  3. 을 freeshipping_freeshipping 경우 당신이 변화를
  4. 확인을하려는 모든 PHTML 파일을 찾을

편집 : Mage_Shipping_Model_Carrier_Freeshipping 클래스에 재를 사용하고 $method->setMethodTitle($this->getConfigData('name')); 세터에 텍스트를 추가하는 것입니다 각 템플릿 파일에 텍스트를 추가하는

대체.

편집 2 :

또는 더 나은 아직 무료 배송 방법, this 기사 위의 솔루션을 기반으로 자신 만의 배송 방법을 쓰기. 그렇게하면 다시 작성하거나 템플릿 파일을 변경할 필요가 없습니다.

편집 3 :

나는 (지금을 추가 한) 당신은 또한 package_qty 및 package_weight을 설정해야 위의 prepareRequest 기능에 그것을 언급하는 것을 잊었다. 이 두 값은 주소로 계산되어 Mage_Sales_Model_Quote_Address_Total_Shipping::collect에 추가됩니다.