Magento按产品属性值计数对集合进行排序


Magento Sort Collection By Product Attribute Value Count

我目前正在开发一个Magento网站,该网站使用分层导航和大量自定义属性进行导航。我想做的是在列表中添加一个新的"排序依据"选项(默认情况下为某些类别选择),这将有助于提高为大量客户显示的产品的相关性。

该网站正在出售针织纱线。

以下是客户希望它如何工作-

  • 我们有一个自定义属性集被称为"color_name",具有红色、绿色、黄色等值,紫色等

  • 由于产品的性质,有时这种分类可以有点模棱两可,所以许多产品都列在多个类别,例如,蓝绿色纱线将同时选择"蓝色"answers"绿色"选项。

  • 如果客户从分层导航中选择"蓝色",我们希望只选择了蓝色选项的产品首先列出,然后是2种颜色的产品,然后是3种颜色,依此类推

我对集合没有太多的经验,但我熟悉基本的排序和过滤。我们需要使用的集合位于app/design/frontend/default/[template_name]/template/cacatalog/product/list.phtml中的以下行:

<?php $_productCollection=$this->getLoadedProductCollection() ?>

我不确定是在list.phtml文件中执行这种排序,还是在分类/排序的帮助程序中执行更深入的排序。

不幸的是,该网站还没有上线,所以我不能给你看一个例子,希望描述足够,但如果需要,请随时要求澄清任何问题。

您可以通过addAttributeToFilteraddFieldToFilter用于productCollection以外的集合)和addAttributeToSort对Magento中的集合进行筛选和排序。

默认情况下,Magento在底层SQL中使用"ORDER By"进行排序,因此您应该使用一种方法,在加载的集合上使用具有自定义排序的自定义模块。

如果你想试试的话,这里有一个非常可能的答案。