这就是事情,我有产品系列,我需要根据它们的大小排序。尺寸属性值为XS,S,M,L,XL。当我简单地把
addAttributeToSort('size', 'DESC')
按大小属性值(XS,XL,S,M,L)的字母顺序对它们进行排序。
有没有人有任何提示如何解决这个问题?
我能想到的最好是在选择过程中创建一些新的选择字段,它将通过case
命令具有值1,2,3,4,5,具体取决于大小值,以及按此排序。但我不知道该怎么做,或者甚至可能在Magento。
答案 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