0

目前我加运费 65Kr。

店里只有四种价格。

我需要将运费更改为以下方式。

价格为 198Kr 和 268Kr 的产品需要 25Kr,高于该价格(418 和 498Kr)的产品需要 65Kr。

如果客户购买 198Kr 和 418kr,那么她需要支付 65Kr。这意味着如果有一件物品需要 65Kr,那么运费将是 65Kr。

如果客户购买 198Kr 和 268Kr,那么她需要支付 25Kr。

我不确定如何将此运费添加到总成本中。

我使用以下代码来更新总价。

我在结账时加了 65 克朗。

function updateCart($productid,$fullproduct){
    $cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : array();

$productid = id_clean($productid);
$totalprice = 0;
if (count($fullproduct)){
    if (isset($cart[$productid])){
        $prevct = $cart[$productid]['count'];
        $prevname = $cart[$productid]['name'];
        $prevprice = $cart[$productid]['price'];
        $cart[$productid] = array(
                'name' => $prevname,
                'price' => $prevprice,
                'count' => $prevct + 1
                );
    }else{
        $cart[$productid] = array(
                'name' => $fullproduct['name'],

'price' => $fullproduct['price'],
'count' => 1
                );          
    }

foreach ($cart as $id => $product){
    $totalprice += $product['price'] * $product['count'];
    }       

    $_SESSION['totalprice'] = $totalprice;
    $_SESSION['cart'] = $cart;
    $msg = $this->lang->line('orders_added_cart');
    $this->session->set_flashdata('conf_msg', $msg); 
}
}

在结帐时

...
$shipping= 65;
$grandtotal = (int)$totalprice + $shipping;
...

如您所见,我可以使用 session 来跟踪大小或价格。所以我想我可以用它们来找到最终的运费。

我将不胜感激任何帮助。

提前致谢。

4

2 回答 2

1

在计算总价的购物车迭代中

foreach ($cart as $id => $product){
   $totalprice += $product['price'] * $product['count'];
} 

还计算运费并将其放入会话中。

$shippingprice = 25.0;
foreach ($cart as $id => $product){
   $totalprice += $product['price'] * $product['count'];
   if ( $product['price'] > 268 ){
       $shippingprice = 65.0;
   }
} 
于 2010-01-10T09:24:42.557 回答
0

我会使用类似的东西:

function updateCart($productid,$fullproduct)
{ 
  $cart       = isset($_SESSION['cart']) ? $_SESSION['cart'] : array(); 
  $productid  = id_clean($productid); 
  $totalprice = 0;
  if (count($fullproduct))
  { 
    if (isset($cart[$productid]))
    { 
      $prevct = $cart[$productid]['count']; 
      $prevname = $cart[$productid]['name']; 
      $prevprice = $cart[$productid]['price']; 
      $cart[$productid] = array( 
            'name' => $prevname, 
            'price' => $prevprice, 
            'count' => $prevct + 1 
            ); 
    }
    else
    { 
      $cart[$productid] = array( 
            'name' => $fullproduct['name'], 
            'price' => $fullproduct['price'], 
            'shipping' => $fullproduct['shipping']
            'count' => 1 
            );           
    } 

    $shipping = 0;
    foreach ($cart as $id => $product)
    { 
      $shipping = $shipping < $product['shipping'] ? $product['shipping'] : $shipping;
      $totalprice += $product['price'] * $product['count']; 
    }        

    $_SESSION['totalprice'] = $totalprice; 
    $_SESSION['cart']       = $cart; 
    $_SESSION['shipping']   = $shipping;

    $msg = $this->lang->line('orders_added_cart'); 
    $this->session->set_flashdata('conf_msg', $msg);  
  } 
} 

这样您就可以有任何运费,并且只收取较高的运费。

但是,这种方式只考虑一件商品的运费。我也会考虑数量或项目。因为运送一件产品和运送一百件产品时,运输成本会发生变化。

于 2010-01-10T09:34:21.157 回答