2011-04-19 59 views
1

这是事情,我有产品集合,我需要按其大小排序。尺寸属性值是XS,S,M,L,XL。当我把它简单地自定义排序的Magento集合?

addAttributeToSort('size', 'DESC') 

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

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

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

+1

你创建通过管理尺寸属性?它是一个文本字段还是下拉菜单? – clockworkgeek 2011-04-19 23:22:59

回答

1

有趣的问题。你会注意到我的早期问题sorting Magento默认使用SQL ORDER BY语句进行排序。这将使得使用addAttributeToSort()方法实现你所需要的(恕我直言)非常困难。

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

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

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

希望这有助于
JD

+0

太棒了,非常感谢!我已经使用它,它很棒! – Relja 2011-04-20 12:30:28

+0

没问题,很高兴它为你工作。 – 2011-04-20 12:33:12

2

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

你可以尝试的另一件事(我真的不知道这是否会起作用)是试图与你的属性的管理员/商店级标签一起工作。 Magento可能会使用一个来排序,尽管我有点怀疑。

希望有帮助!

谢谢, 乔

+0

绝对值得一试,使用“1,2,3,4”作为管理员标签和“商店”标签中的“XS,S,M,L”。有兴趣听到结果... – 2011-04-20 01:07:05

+0

^^我试过这个。似乎不适合我。 – sulabh 2012-08-27 10:55:56