1
我有一个Magento网站,有一个广泛的目录(10,000个产品)和一个相当深的类别树。按产品属性过滤Magento类别集合?
该产品的所有类别均源自顶级“所有产品”类别。
所有产品的下拉属性均为“品牌”。
我想要做的是允许访问者从类别树顶部开始,然后导航到“所有产品”树,选择或不选择品牌。顺便提一句,我们需要显示每个级别的子类别的下一级别,如果品牌不适用,我不想显示空的类别。
例如,如果树看起来像这样,一个在“螺丝刀页面”上,我们希望类型和长度类别都可见。
- 所有产品
- 起子
- 菲利普斯
- 2"
- 3"
- 5"
- 平头
- 1"
- 3"
- 5"
- 菲利普斯
- 起子
我能做到这一点没有通过创建一个类集合担心滤清器品牌:
$_category = $this->getCurrentCategory();
$current_level = $_category->getLevel();
$collection = $_category->getCollection();
$collection->addAttributeToSelect('url_key')
->addAttributeToSelect('name')
->addAttributeToSelect('parent_id')
->addAttributeToFilter('is_active', 1)
->addAttributeToFilter('level',array('in'=>array($current_level+1,$current_level+2)))
->setOrder('position','ASC')
->load();
根据我的研究,它似乎是而不是可能通过产品属性直接筛选类别集合。
假设这是真的: 完成此操作的最佳方法是什么?我想过的,初步尝试了一些想法:
- 创建产品收集通过它的品牌和循环过滤,得到所有相关类别和构建树(看起来这是很没效率)
- 尝试利用分层导航输出类别(如果我们仅查看一个级别,则无法工作 - 我无法获得过滤的“第二”级别)。
- 放弃过滤方法并复制类别树下新的“浏览品牌”类别(我想远离这一点,以便更新产品不需要更新两个重复的树。)
在此先感谢您的帮助。如果您需要澄清问题,请告诉我。
如何根据属性过滤器获取结果 –