magento, как сортировать каталоги поиск коллекции - PullRequest
1 голос
/ 16 января 2020

Как я могу отсортировать каталоги поиск коллекции?

Я нашел функцию _getProductCollection, но я не знаю, что делать дальше и нужно ли вносить изменения здесь.

I хотите отсортировать поиск по SKU, например, пользователь ищет продукт на сайте с SKU 6727, но продукт с SKU не на первой позиции, а на 5-м я хочу, чтобы он был первым в списке

1 Ответ

1 голос
/ 16 января 2020

Ссылка, которую вы используете, не работает, потому что нет кода для сортировки товаров по категориям. Вам нужно переопределить Mage_CatalogSearch_Block_Result :: _ getProductCollection () , а затем добавить в него функцию сортировки, чтобы показать результаты в порядке идентификатора категории.

Попробуйте с помощью ниже. Используйте ту же ссылку и добавьте эту дополнительную функцию в тот же файл.

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;
}
...