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



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

我想问题是是否有办法在 XML 中做到这一点——首先如何调用类别以外的购物选项的适当范围,其次如何更改排序依据设置。 我猜虽然通过XML是不可能的,我必须更深入,但任何建议都值得赞赏!

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

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

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

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

最新更新