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

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

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

Ответ 1

После чтения источника я понял:

В каталоге /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);

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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