【发布时间】:2009-11-12 21:02:14
【问题描述】:
有谁知道是否可以通过类别过滤器两次运行产品集合?我有一个隐藏的“特色”类别,我将产品添加到其中,以便可以将它们作为特色产品抓取。目前我的产品系列是这样的:
$_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,可能是在逗号分隔的列表中。但我不确定解决这个问题的最佳方法,而且它看起来确实有点 hacky。
【问题讨论】:
-
如果可以的话,它将极大地帮助解决 Magento 问题 1. 发布您用于应用过滤器的 PHP 代码示例 2. 对于代码中的任何变量,让人们知道对象的类 没有Magento 开发人员之间适当一致的共享词汇表,因此在帮助的情况下为人们提供尽可能多的上下文,然后找出答案。
-
添加了一些示例代码。
标签: magento