Prestashop 1.6产品使用客户群折扣时显示错误的价格组合

时间:2017-03-15 07:15:00

标签: prestashop prestashop-1.6

Prestashop 1.6.1.10

创建具有组合和客户群折扣的产品时,产品页面会显示没有折扣的价格。

但是当您将产品添加到购物车时,折扣适用。

请参阅a product with combination and group discount

1 个答案:

答案 0 :(得分:1)

我通过controller \ front \ ProductController.php

中的以下代码更改解决了这个问题

添加功能:

protected function getGroupReduction() {
    $id_customer = (isset($this->context->customer) ? (int)$this->context->customer->id : 0);
    $id_group = (int)Group::getCurrent()->id;
    $id_country = $id_customer ? (int)Customer::getCurrentCountry($id_customer) : (int)Tools::getCountry();

    $group_reduction = GroupReduction::getValueForProduct($this->product->id, $id_group);
    if ($group_reduction === false) {
        $group_reduction = Group::getReduction((int)$this->context->cookie->id_customer) / 100;
    }
    return $group_reduction;
}

替换第467行:

$combinations[$row['id_product_attribute']]['price'] = (float)Tools::convertPriceFull($row['price'], null, Context::getContext()->currency, false);

使用以下行:

            $group_reduction = $this->getGroupReduction();
            $price = $row['price'] - $row['price']* $group_reduction;
            $combinations[$row['id_product_attribute']]['price'] = (float)Tools::convertPriceFull($price, null, Context::getContext()->currency, false);