- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Product collection by selecting multiple categories
To All developers, Scenario is that the website have over 100s of main and sub categories with similar products for example category Honda , breaks , brand. I need the customer to select the multiple categories before they can reach the product. And no I can not use attributes because the structure is too complicated. Please help as I have spent almost 2 weeks trying to figure this out. Thanks
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Product collection by selecting multiple categories
The following code has done the trick for others but I'm not exactly sure how to implement this. I will really appreciate if anyone can assist me with this.
1. Call your collection and filter by the attributes you want to filter (all but the category one). For example:
[sourcecode language=”php”]
$collection= Mage::getResourceModel(‘catalog/product_collection’)
->addFieldToFilter(‘is_saleable’,1)
->addFieldToFilter(‘type_id’, array(‘eq’ => ‘configurable’));
[/sourcecode]
2. After doing this, you can apply your multiple category filter as follows:
[sourcecode language=”php”]$categories_to_filter = array(‘3’, ‘4’, ‘5’);
$ctf = array();
foreach ($categories_to_filter as $k => $cat) {
$ctf[][‘finset’] = $cat;
}
$collection->joinField(‘category_id’, ‘catalog/category_product’, ‘category_id’, ‘product_id = entity_id’, null, ‘left’)
->addAttributeToFilter(‘category_id’,array($ctf));
[/sourcecode]