Skip to main content
explain problem
Source Link
Ibrahim Mumcu
  • 531
  • 3
  • 10
  • 22

I'm getting all products with this code:

$collection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('size', array('in'=>$size))
->addAttributeToFilter('room', array('in'=>$room))
->addStoreFilter()
->setOrder('created_at', 'desc')
->setPage($pageNumber, $productPerPage)
->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
$collection->addAttributeToFilter('price', array('gt'=>$priceL));
$collection->addAttributeToFilter('price', array('lt'=>$priceG));

Then I added this code for filter by category:

->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $catID))

And now, this code doesn't work for filter by subcategory but doesn't work for root category. Why? And how do I solve this problem?

EDIT: I'm trying to filter by one category, multi category and root category.

I'm getting all products with this code:

$collection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('size', array('in'=>$size))
->addAttributeToFilter('room', array('in'=>$room))
->addStoreFilter()
->setOrder('created_at', 'desc')
->setPage($pageNumber, $productPerPage)
->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
$collection->addAttributeToFilter('price', array('gt'=>$priceL));
$collection->addAttributeToFilter('price', array('lt'=>$priceG));

Then I added this code for filter by category:

->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $catID))

And now, this code doesn't work for filter by root category. Why? And how do I solve this problem?

I'm getting all products with this code:

$collection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('size', array('in'=>$size))
->addAttributeToFilter('room', array('in'=>$room))
->addStoreFilter()
->setOrder('created_at', 'desc')
->setPage($pageNumber, $productPerPage)
->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
$collection->addAttributeToFilter('price', array('gt'=>$priceL));
$collection->addAttributeToFilter('price', array('lt'=>$priceG));

Then I added this code for filter by category:

->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $catID))

And now, this code work for filter by subcategory but doesn't work for root category. Why? And how do I solve this problem?

EDIT: I'm trying to filter by one category, multi category and root category.

Source Link
Ibrahim Mumcu
  • 531
  • 3
  • 10
  • 22

Getting product filter by root category

I'm getting all products with this code:

$collection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('size', array('in'=>$size))
->addAttributeToFilter('room', array('in'=>$room))
->addStoreFilter()
->setOrder('created_at', 'desc')
->setPage($pageNumber, $productPerPage)
->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
$collection->addAttributeToFilter('price', array('gt'=>$priceL));
$collection->addAttributeToFilter('price', array('lt'=>$priceG));

Then I added this code for filter by category:

->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
->addAttributeToFilter('category_id', array('in' => $catID))

And now, this code doesn't work for filter by root category. Why? And how do I solve this problem?