如何在Magento 1.9.0.1中使用2个或更多类别过滤器过滤产品

时间:2015-05-15 02:51:22

标签: magento

我希望获得两个或更多类别产品的过滤器。

我的类别结构是:

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

2 个答案:

答案 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');