10

我正在尝试找到解决方案,但仍然没有运气。我想显示从子类别到父类别的所有产品。

我正在使用 Opencart 1.5.3.1

4

6 回答 6

33

看完源码后,我明白了:

在 catalog/controller/product/category.php (或任何你调用函数 model_catalog_product->getProducts 的地方)你必须添加filter_sub_category = true

$data = array(
    'filter_category_id' => $top_category,
    'filter_sub_category' => true,
    'sort'               => $sort,
    'order'              => $order,
    'start'              => ($page - 1) * $limit,
    'limit'              => $limit
);

$product_total = $this->model_catalog_product->getTotalProducts($data);

如果您使用的是更高版本,请确保检查其他答案;)

于 2012-10-24T23:33:16.683 回答
7

另一种解决方案,而不是直接修改核心文件,是使用vQmod为您修改文件。这样,当您升级到新版本时,您不必重新安装您所做的任何自定义修改。

以下是您在 vQmod 中用于完成此操作的代码:

<?xml version="1.0" encoding="UTF-8"?>
<modification>
    <id>Display products in sub-categories while browsing a parent category</id>
    <version>1.0.0</version>
    <vqmver>2.4.0</vqmver>
    <author>Jay Williams - jay@myd3.com</author>
    <file name="catalog/controller/product/category.php">
        <operation>
            <search position="after"><![CDATA['filter_category_id' => $category_id,]]></search>
            <add><![CDATA['filter_sub_category' => true,]]></add>
        </operation>
    </file>
</modification>

来源:https ://gist.github.com/jaywilliams/8044763

于 2013-12-19T19:37:08.110 回答
4

目录/控制器/产品/category.php

对于 Opencart 版本 2.1.0.2,Ignacio 的解决方案也可以正常工作:

$data (of version 1.5.x)现在被称为

$filter_data (line #169)

然后只需添加该行

'filter_sub_category' => 真,

第 170 行 ( 'filter_category_id' => $category_id,)之后

谢谢伊格纳西奥!

于 2016-05-11T08:38:31.430 回答
1

vqmod 方法是最好的并且很容易工作。只需添加该文件和anything.xml 并将其放在vqmod > xml

于 2014-01-17T01:06:37.973 回答
1

只需提供更多信息,最新版本使用 OpenCart 自己的 vqmod 功能“ocmod”。它可以通过那里以相同的方式工作。

于 2016-05-16T03:41:42.967 回答
0

对于 Opencart 3.x:./catalog/controller/product/category.php

寻找:

'filter_category_id' => $category_id,

之后添加:

'filter_sub_category' => true,

更改文件后,转到“修改”和“清除”和“更新”按钮单击

于 2019-11-18T12:45:43.460 回答