【发布时间】:2013-03-25 14:16:25
【问题描述】:
在产品搜索排序列表中是否有一种方法可以将产品从最高价格到最低价格排序,然后在最后显示价格为零的产品。
正常排序工作正常(从低到高或从高到低),但真的希望能够在最后包含零价格产品,如何列出的示例如下:
产品 1:3 英镑
产品 2:18 英镑
产品 3:0 英镑
产品 4:0 英镑
我还没有找到从这里或谷歌搜索的方法,而且对 Magento 不太熟悉,我不确定我会在哪里改变这一点。如果有人有答案或可以将我指向查询或正确的文件让我自己编辑,我不介意自己去。
使用此处的一些帮助和其他问题,我编辑了文件 /app/code/core/Mage/Catalog/Block/Product/List.php 中的 _getProductCollection() 方法(别担心我已经复制到本地)并添加了以下几行:
$orderFilterType = $this->getRequest()->getParam('order');
$dirFilterType = $this->getRequest()->getParam('dir');
if( isset( $orderFilterType ) && $orderFilterType == 'price' && isset( $dirFilterType ) && $dirFilterType == 'asc' ) {
$this->_productCollection = $layer->getProductCollection()->addAttributeToSort( 'price', 'DESC' );
} else {
$this->_productCollection = $layer->getProductCollection();
}
这意味着我在这段代码中所做的任何事情都只会在有人使用升序选项选择 orderby 价格下拉菜单后运行。
现在的问题是我不知道该怎么做才能影响$this->_productCollection = $layer->getProductCollection(); 的值,以便按照我的意愿返回。
【问题讨论】:
-
你也应该发布一些代码。无论您尝试过什么
-
嗨,Deepanshu,我已经更新了我现在的位置。