[英]Prestashop shipping cost modification
我需要Prestashop來計算運費,具體取決於購物車中的商品數量。 如果購物車中有多個商品,我希望運費價格為所有運費總和的50%。
我修理了購物車模塊,但是當我繼續訂購頁面時,運費仍然是全額。
我在blockcart中的代碼:
if($nbTotalProducts>1) {
$shipping_cost_float = $shipping_cost_float/2;
$shipping_cost = $shipping_cost/2;
}
如何為所有模塊/控制器存儲新的運輸成本?
我想,我找到了解決方案。
我修改了cart類(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;
希望它會幫助某人。
操縱運費並不是那么簡單。 它們取決於用於購物車的載體。 我認為您應該嘗試在運營商選項中設置固定值,並定義許多價格范圍。
如果還不夠,對我來說最好的解決方案是使用新的推車。 創建一個免費送貨,並覆蓋CartRule類。 在方法getContextualValue中,運費在此處設置為0。 我認為您可以將其更改為刪除50%。 您可能還需要更改一些模板渲染(您的購物車將顯示免費送貨)。
希望它有所幫助。
我不認為你需要在這里編碼。 您可以嘗試使用productos的權重。
例如,您將所有物品的重量都設為1,如果重量達到1,則將運輸成本配置為50%。這樣,如果我理解正確,您將擁有所需的物品
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.