在OpenCart中使用备用价格字段

时间:2013-08-05 11:53:21

标签: php opencart

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

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

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

有人能告诉我改变价格的最佳地点吗?

1 个答案:

答案 0 :(得分: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;

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