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;
}
如何对目录搜索集合进行排序?
找到了一个函数_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;
}