0

我有一个 OpenCart 安装,它运行着两家商店,一家批发和一家零售店。产品目录是共享的,但问题是 OpenCart 本身并不支持多种定价选项。所以我在 oc_product 表中添加了一个新字段,retail_price。我的想法是,我将 price 字段用于批发定价,而将 retail_price 字段用于——你猜对了——零售定价。

我在管理方面几乎涵盖了所有内容,因此我的新字段显示在产品部分中,并且正在数据库中进行更新。

现在的问题是改变零售店前端的价格。不用说,产品价格用于大量不同的脚本。所以我认为最好/最偷偷摸摸的方法是在查询数据库并且最初设置价格数据时更改价格字段。这就是我迷路的地方......我在一些我认为正确的地方改变了它,但前端的价格没有改变。有时 OpenCart 可能是一个神秘的无花果。

谁能告诉我改变价格的最佳地点在哪里?

4

1 回答 1

1

我假设您已经在管理区域中为批发和零售客户创建了不同的客户类型。

既然如此,将这个功能添加到模型中就非常简单了。

打开:

catalog/model/catalog/products.php

在第 22 行或附近,您应该会看到如下所示的一行:

$query->row['price'] = ($query->row['discount'] ? 
                     $query->row['discount'] : $query->row['price']);

确定您的零售客户的数值,假设它是 1,批发客户是 2。

下面使用的变量$customer_group_id是在方法打开时预先设置的getProduct()

将上一行替换为以下内容:

if ($customer_group_id == 2):
    $query->row['price'] = ($query->row['discount'] ? 
                        $query->row['discount'] : $query->row['price']);
else:
    $query->row['price'] = ($query->row['discount'] ? 
                        $query->row['discount'] : $query->row['retail_price']);
endif;

现在,如果您的客户已登录但不是批发客户,或者未登录,他们将看到零售价,如果他们以批发客户身份登录,他们将看到批发价。

于 2013-08-14T10:01:23.470 回答