2011-04-19 78 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