Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to display products from subcategory to parent category in opencart?

I'm trying to find a solution but still no luck. I want to display all products from subcategories to parent category.

I'm using Opencart 1.5.3.1

like image 884
Aaviya Avatar asked Aug 28 '12 13:08

Aaviya


4 Answers

After reading the source, I figured it out:

In catalog/controller/product/category.php (or wherever you're calling function model_catalog_product->getProducts) you have to add 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);

Make sure you check the other answers if you're using a later version ;)

like image 172
Nacho Avatar answered Nov 04 '22 04:11

Nacho


Another solution, rather than modifying the core files directly, is to use vQmod to modify the file for you. That way when you upgrade to a new version, you won't have to re-install any custom modifications you've made.

Below is an the code you'd use to accomplish this in 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>

Source: https://gist.github.com/jaywilliams/8044763

like image 29
jaywilliams Avatar answered Nov 04 '22 02:11

jaywilliams


catalog/controller/product/category.php

For Opencart Version 2.1.0.2, the solution of Ignacio works fines as well just that:

$data (of version 1.5.x) is now called

$filter_data (line #169)

Then just add the line

'filter_sub_category' => true,

after line #170 ('filter_category_id' => $category_id,)

Thanks Ignacio!

like image 32
Octavian Ionel Avatar answered Nov 04 '22 02:11

Octavian Ionel


the vqmod method is the best and works easily. just add that file and anything.xml and place it in vqmod > xml

like image 26
user3204808 Avatar answered Nov 04 '22 03:11

user3204808