2014-03-27 3 views
0

배송비 계산을 위해 Prestashop이 필요합니다. 카트의 품목 수량에 따라 다릅니다. 장바구니에 하나 이상의 상품이있는 경우 배송비가 모든 배송비의 합계의 50 %가되고 싶습니다.Prestashop 운송비 수정

카트 모듈을 수정했지만 주문 페이지로 진행하면 배송비는 여전히 전액입니다. blockcart에서

내 코드 :

if($nbTotalProducts>1) { 
    $shipping_cost_float = $shipping_cost_float/2; 
    $shipping_cost = $shipping_cost/2; 
} 

어떻게 내가 모든 모듈/컨트롤러에 대한 새로운 운송 비용을 저장할 수 있습니까?

답변

2

이해하면 당신은 무게가 당신이 원하는 것을이 방법은 당신이 가진 것 1까지의 경우 50 % 이상이어야하는 배송 비용을 구성 나는 해결책을 찾았다 고 생각한다.

장바구니 클래스 (classes/cart.php) - getPackageShippingCost 함수를 수정했습니다.

내가 운송 비용 전에이 코드를 추가하는 것은 플로트로 변환된다

$product_array = $this->getProducts(); 
$pcount = 0; //quantity of products in cart 
$moreThanOneQuantity = FALSE; 
    foreach($product_array as $product_item) { 
    $pcount++; 
    if($product_item['quantity']>1) $moreThanOneQuantity = TRUE; 
    } 
if($shipping_cost>0 && ($pcount>1 || $moreThanOneQuantity)) $shipping_cost=$shipping_cost/2; 

은 사람을 도움이되기를 바랍니다.

0

배송비를 조작하기가 쉽지 않습니다. 카트에 사용 된 운반 장치에 따라 다릅니다. 나는 당신이 운반 대 옵션에 고정 된 값을 설정하려고 노력해야한다고 생각하고, 많은 가격대를 정의한다.

충분하지 않다면 나에게 가장 좋은 해결책은 새로운 카드를 사용하는 것입니다. 무료 배송을 제공하는 제품을 만들고 CartRule 클래스를 재정의하십시오. getContextualValue 메소드에서 운송 비용은 여기서 0으로 설정됩니다. 50 %를 제거하기 위해 바꿀 수 있다고 생각합니다. 일부 템플릿 렌더링을 변경해야 할 수도 있습니다 (장바구니에 무료 배송이 표시됨).

희망이 있습니다.

0

여기서는 코드를 작성해야한다고 생각하지 않습니다. 당신은 제품의 무게로 놀아 볼 수 있습니다.

예를 들어, 무게 1 모든 항목을 넣어 내가 제대로

+0

귀하의 의견을 주셔서 감사합니다. 그러나 문제는 운송비가 운송인이 아니라 제품에 달려 있다는 것입니다. 제 고객은 비 통상적입니다 .... 따라서이 금액은 가변적이며 현재 선택된 제품의 배송비 합계에 따라 달라 지므로 범위를 추가하고 금액을 할당 할 수 없습니다. –