magento,如何对目录搜索集合进行排序

magento, how sort catalogsearch collection

如何对目录搜索集合进行排序?

找到了一个函数_getProductCollection但是不知道接下来要做什么,是否需要在这里修改

我想按SKU排序搜索,例如,用户在网站上寻找SKU 6727的产品,但SKU不在第一位的产品,但在第5位我希望他是第1位名单

您使用的参考无效是因为没有按类别对产品进行排序的代码。您需要覆盖 Mage_CatalogSearch_Block_Result::_getProductCollection() 然后在其中添加排序功能以按类别 ID 的顺序显示结果。

试试下面的方法。使用相同的引用并将此附加功能添加到同一文件。

protected function _getProductCollection()
{
    if (is_null($this->_productCollection)) {
        $this->_productCollection = $this->getListBlock()->getLoadedProductCollection();
    }
    $listOrder = $this->getRequest()->getParam('dir') ? $this->getRequest()->getParam('dir') : 'desc';
    if(!$this->getRequest()->getParam('order') || $this->getRequest()->getParam('order') == 'category'){
        $this->_productCollection->getSelect()->joinLeft(array('category' => Mage::getSingleton('core/resource')->getTableName('catalog_product_category')),'e.entity_id = category.product_id', array('category_id'))->group('e.entity_id')->order('category.category_id '.$listOrder);
    }
    return $this->_productCollection;
}