在分层导航中选择特定购物选项时设置默认排序

时间:2012-04-12 07:10:16

标签: sorting magento layered-navigation

默认情况下,我按名称设置排序,当选择特定类别时,通常按价格排序。但是,我不确定如何通过除类别以外的选项进行购物时分配默认的排序依据设置。我的分层导航中有一个名为“Size”的属性,当它用作过滤器时,我想按Price排序。

我想问题是,如果有一种方法可以在XML中执行此操作 - 首先如何调用除类别之外的购物选项的适当范围,以及如何更改排序依据设置。我猜这是不可能通过XML而且我必须更深入,但任何建议都表示赞赏!

2 个答案:

答案 0 :(得分:0)

我认为你必须覆盖核心文件才能完成你想要的东西(不要修改核心文件 - 通过复制本地代码池或重写类来覆盖该类)。默认情况下,订单是管理面板中设置的排序顺序。为了改变你,你将不得不修改那个逻辑。

我首先查看了Mage_Catalog_Block_Layer_Category类。这引用了Mage_Catalog_Model_Layer_Filter_Category类。此类处理获取分层导航的类别。

我认为你需要看的函数是_getItemsData()。我想你要么修改$ categories的逻辑来设置你想要的顺序(这可能是更优选的选项),或者你可以对放入$ data数组的项进行一些自定义排序

答案 1 :(得分:0)

转到app \ code \ core \ Mage \ Catalog \ Model \ Resource \ Eav \ Mysql4 \ Product并打开collection.php文件并查看名为addAttributeToSort()的函数这个函数负责排序属性,这里您可以在测试后将您的逻辑用于排序和覆盖您的文件