我希望获得两个或更多类别产品的过滤器。
我的类别结构是:
CatA =>产品1,产品2,产品3
CatB =>产品1,产品4,产品5
我希望通过 AND 条件从 CatA 和 CatB 获取产品。在这个前。结果应为 Product1 。
我已经关注http://vibrantdrive.com/how-to-filter-magento-products-using-2-or-more-category-filters/了。但没有得到任何解决方案。我是Magento 1.9.0.1
答案 0 :(得分:1)
您可以按以下方式按类别过滤产品:
$categoryIds = array(2,4);//category id
$collection = Mage::getModel('catalog/product')
->getCollection()
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addAttributeToSelect('*')
->addAttributeToFilter('category_id', array('in' => $categoryIds))
答案 1 :(得分:0)
我使用了这段代码。现在,产品按多个类别进行过滤,但分页页面提供了第一页中列出的相同产品。
$_productCollection = Mage::getModel('catalog/product')->getCollection()
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addAttributeToSelect('*')
->addAttributeToFilter('status', 1)
->addAttributeToFilter('visibility', 4)
->addCategoryFilter(Mage::getModel('catalog/category')->load(86))
->addAttributeToFilter('category_id',array('finset'=>88))
->setPage(0, 5)
->setOrder('position', 'ASC')
;
$_productCollection->getSelect()->group('e.entity_id');