Как отобразить продукты из подкатегории в родительскую категорию в opencart?

Я пытаюсь найти решение, но все-таки не повезло. Я хочу вывести все товары из подкатегорий в родительскую категорию.

Я использую Opencart 1.5.3.1

5 ответов


прочитав источник, я понял:

в каталоге / контроллере/продукте / категории.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);

убедитесь, что вы проверяете другие ответы, если вы используете более позднюю версию;)


другое решение, а не изменение основных файлов напрямую, заключается в использовании 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


каталог / контроллер / продукт / категория.в PHP

для Opencart версии 2.1.0.2, решение Ignacio работает штрафы, а также только то, что:

$data (of version 1.5.x) теперь называется

$filter_data (line #169)

тогда просто добавьте строку

'filter_sub_category' = > true,

после строки #170 ('filter_category_id' => $category_id,)

Спасибо Игнасио!


метод vqmod является лучшим и работает легко. просто добавьте этот файл и все такое.xml и поместите его в vqmod > xml


просто добавляя еще одну информацию, новейшие версии используют "ocmod", собственную функцию Vqmod OpenCart. Там он может работать точно так же.