Magento - 如何使用 2 个类别过滤器过滤产品集合?

标签 magento

有谁知道是否有办法通过类别过滤器运行产品集合两次?我有一个隐藏的“特色”类别,我将产品添加到其中,以便可以将它们作为特色产品获取。目前我正在收集这样的产品:

$_productCollection = Mage::getResourceModel('reports/product_collection')
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('visibility', $visibility)
    ->addCategoryFilter('36');
    $_productCollection->load();

这在主页上效果很好,但在类别页面上,我需要首先按当前类别过滤结果,然后按特色类别过滤结果:

$_productCollection = Mage::getResourceModel('reports/product_collection')
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('visibility', $visibility)
    ->addCategoryFilter('15')
    ->addCategoryFilter('36');
    $_productCollection->load(); 

不幸的是,如果不编辑核心文件,您似乎无法执行 2 个类别过滤器,而我不想这样做。

有什么办法可以解决这个问题吗?

我想我可以分别获取 2 个产品集合,一个按当前类别过滤,一个按特色类别过滤,然后使用 PHP 的 stristr 查找位于这两个产品集合中的产品并使用它们,例如

  if (stristr($featProductCollection, $currProductCollection))

有人有什么想法吗?我想我可能需要返回产品的 SKU,也许是用逗号分隔的列表。但我不确定解决这个问题的最佳方法,而且它看起来确实有点老套。

最佳答案

好吧,实际上我自己在其他人的帮助下整理了它:

    $_productCollection = Mage::getResourceModel('reports/product_collection')
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('visibility', $visibility)
    ->addCategoryFilter($_category)
    ->addAttributeToFilter('category_ids',array('finset'=>'36'))
    $_productCollection->load();

其中 $_category 是当前类别。

关于Magento - 如何使用 2 个类别过滤器过滤产品集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1725372/

相关文章:

Magento:扩展 Magento 以添加在每次页面加载时调用的类的最佳方法是什么

php - SUPEE 7405 补丁后上传文件的 chmod 640

Magento 两次显示顶部菜单

javascript - 我们可以在 Magento 中覆盖核心 js 文件吗?

Magento:自定义总数计算两次?

magento - magento 中索引如何工作?

magento - 如何在magento中将用户注册为批发用户?

php - PDO 异常,重复条目。当我尝试在 magento 中重新索引我的数据时

magento - 如果有同名的 block ,则为 block 设置模板

magento - 如何在 Magento 中缓存集合?