0

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

该网站销售针织纱线。

这是客户希望它的工作方式 -

  • 我们设置了一个名为“colour_name”的自定义属性,其值包括红色、绿色、黄色、紫色等。

  • 由于产品的性质,有时这种分类可能有些模糊,因此许多产品都列在多个类别下,例如,蓝绿色纱线将同时选择“蓝色”和“绿色”选项。

  • 如果客户从分层导航中选择“蓝色”,我们希望首先列出仅选择蓝色选项的产品,然后是具有 2 种颜色的产品,然后是 3 种颜色,以此类推。

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

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

我不确定是在 list.phtml 文件中执行此排序,还是在类别/排序的帮助程序中进一步执行此排序。

不幸的是,该网站尚未上线,因此我无法向您展示示例,希望描述已经足够,但如果需要,请随时要求澄清任何问题。

4

1 回答 1

0

您可以通过addAttributeToFilter(addFieldToFilter对于 productCollection 以外的集合) 和addAttributeToSort.

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

如果您想尝试一下,这里有一个非常可能的答案。

于 2012-07-23T21:36:16.757 回答