产品搜索排序列表中是否有一种方法可以按最高价格到最低价格对产品进行排序,但最后会显示零价格的产品。
正常排序工作正常(从低到高或从高到低),但真的希望能够在最后包含零价格产品,如何列出的示例如下:
产品 1:3 英镑
产品 2:18 英镑
产品 3:0 英镑
产品 4:0 英镑
我还没有找到从这里或谷歌搜索的方法,而且对 Magento 不太熟悉,我不确定我会在哪里改变它。如果有人有答案或可以将我指向查询或正确的文件让我自己编辑,我不介意自己去。
使用此处的一些帮助和其他问题,我编辑了_getProductCollection()
文件中的方法/app/code/core/Mage/Catalog/Block/Product/List.php
(不用担心我已经复制到本地)并添加了以下几行:
$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();
我想要的返回值。