0

我的商店在 . 销售所有产品$ 25。然后我想在客户结账时根据产品总数量做一些折扣。

如果客户购买的总数量超过 50,则每个产品的价格将覆盖每个产品的从$25$22

如下所示:

if (total_quantity > 80) {
   price for each product is $19
}

elseif (total_quantity > 50) {
  price for each product is $22
}
else {
  normal price
}

现在我可以$this->cart->countProducts()在客户结帐时检测总数量,但现在我不确定如何覆盖价格(我确定这与文件控制器\结帐\确认.php有关)。

希望有人可以指导我。

更新 :

现在我可以根据总数量过滤所有产品价格:

if ($this->cart->countProducts() > 3) {
    $product_price = '24.00';
}
elseif ($this->cart->countProducts() > 2) {
    $product_price = '23.00';
}
else {
    $product_price = $product['price'];
}

$this->data['products'][] = array(
    'product_id' => $product['product_id'],
    'name'       => $product['name'],
    'model'      => $product['model'],
    'option'     => $option_data,
    'quantity'   => $product['quantity'],
    'subtract'   => $product['subtract'],
    'price'      => $this->currency->format($this->tax->calculate($product_price, $product['tax_class_id'], $this->config->get('config_tax'))),
    'total'      => $this->currency->format($this->tax->calculate($product_price, $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity']),
    'href'       => $this->url->link('product/product', 'product_id=' . $product['product_id'])
); 

但现在我不确定在哪里覆盖小计和总计。

p/s:所有产品价格固定为 25 美元

超频版:最新版

4

2 回答 2

0

这更多是寻找用法和方法的答案,而不是直接的具体答案。

如果您不确定如何使用对象可用的方法/变量,请尝试使用类似的东西输出它们。

<?php
echo "<pre>";
print_r(get_class_methods($objectName));
print_r(get_object_vars($objectName));
echo "</pre>";
?>

它将显示可用方法的列表。它可能有一个名为 setPrice() 或类似的方法,至少它会让您更深入地了解一些可用的选项?

于 2013-05-03T13:52:46.947 回答
0

这是我的解决方案:

目录/控制器/结帐

在之前添加以下代码$this->data['products'][] = array( (第 361 行)

if ($this->cart->countProducts() > 80) {
    $product_price = '24.00';
}
elseif ($this->cart->countProducts() > 50) {
    $product_price = '23.00';
}
else {
    $product_price = $product['price'];
}

$this->data['products'][] = array(...替换为

$this->data['products'][] = array(
    'product_id' => $product['product_id'],
    'name'       => $product['name'],
    'model'      => $product['model'],
    'option'     => $option_data,
    'quantity'   => $product['quantity'],
    'subtract'   => $product['subtract'],
    'price'      => $this->currency->format($this->tax->calculate($product_price, $product['tax_class_id'], $this->config->get('config_tax'))),
    'total'      => $this->currency->format($this->tax->calculate($product_price, $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity']),
    'href'       => $this->url->link('product/product', 'product_id=' . $product['product_id'])
);

系统/库

if (!$this->data) {在(第 22 行)之后添加以下代码

//Count how many product in cart
$total_quantity = $this->session->data['cart'];
$total_product_in_cart = 0;
foreach ($total_quantity as $t_q) {
    $total_product_in_cart += $t_q;
}
$total_product_in_cart;

将此$price = $product_query->row['price'];(第 173 行)替换为

if ($quantity > 80) {
    $price = '24.00';
}
elseif ($quantity > 50) {
    $price = '23.00';
}
else {
    $price = $product_query->row['price'];
}
于 2013-05-04T03:17:53.247 回答