自定义排序的Magento系列?

时间:2011-04-19 18:47:32

标签: php sorting collections magento

这就是事情,我有产品系列,我需要根据它们的大小排序。尺寸属性值为XS,S,M,L,XL。当我简单地把

addAttributeToSort('size', 'DESC')

按大小属性值(XS,XL,S,M,L)的字母顺序对它们进行排序。

有没有人有任何提示如何解决这个问题?

我能想到的最好是在选择过程中创建一些新的选择字段,它将通过case命令具有值1,2,3,4,5,具体取决于大小值,以及按此排序。但我不知道该怎么做,或者甚至可能在Magento。

2 个答案:

答案 0 :(得分:2)

最快的黑客就是拥有第二个属性来定义属性的正确排序顺序,我认为你可能在最后一段中提到了这个属性。那会让你对该属性本身进行排序。当然,这需要额外的数据输入才能在您的目录中工作。

您可以尝试的另一件事(我真的不知道这是否可行)是尝试使用您的属性的管理/商店级别标签。虽然我有点怀疑,Magento可能会使用一个而不是另一个进行排序。

希望有所帮助!

谢谢, 乔

答案 1 :(得分:1)

有趣的问题。您将在我之前的sorting问题中注意到默认情况下Magento使用SQL ORDER BY语句进行排序。这将使用addAttributeToSort()方法很难达到你所需要的(恕我直言)。

您可以对我发布到该问题的答案使用类似的方法,该问题基本上将集合转换为对象数组,然后应用自定义排序函数。

您需要创建自己的custom module并更新布局xml以指向新块,例如

<block type="navigation/dropdown" name="product_list" template="catalog/product/list_dropdown.phtml"/>

希望这有帮助,
JD