Я нашел несколько статей о том, как изменить порядок сортировки результатов поиска в Magento, все примерно равны этому: http://www.blog.magepsycho.com/how-to-change-default-sort-order-dir-in-magento-search-results/
К сожалению, это привело к изменению порядка сортировки на страницах категорий. Есть ли другой способ сделать это? Я хочу оставить страницы категорий отсортированными по умолчанию, Позиция — но результаты поиска отсортированы по атрибуту, номеру детали. Я надеюсь, что это один из тех «код будет работать лучше, если вы поместите его в этот шаблон».
Мы используем Magento Enterprise вер. 1.9.0.0.
Вы можете изменить коллекцию результатов поиска по каталогу в соответствии с вашими предпочтениями. По умолчанию результаты поиска возвращаются в порядке релевантности, которая определяется тем, насколько близко искомое условие соответствует полям поиска продукта.
Чтобы изменить порядок списка, скопируйте эту папку;
MAGE ROOT/app/code/core/Mage/CatalogSearch
Сюда;
MAGE ROOT/app/code/local/Mage/CatalogSearch
Теперь откройте этот файл;
MAGE ROOT/app/code/local/Mage/CatalogSearch/Block/Result.php
Вокруг строки 108 вы найдете эту функцию;
public function setListOrders()
{
$category = Mage::getSingleton('catalog/layer')
->getCurrentCategory();
/* @var $category Mage_Catalog_Model_Category */
$availableOrders = $category->getAvailableSortByOptions();
unset($availableOrders['position']);
$availableOrders = array_merge(array(
'relevance' => $this->__('Relevance')
), $availableOrders);
$this->getListBlock()
->setAvailableOrders($availableOrders)
->setDefaultDirection('desc')
->setSortBy('relevance');
return $this;
}
Вы можете изменить setSortBy (X) так, как вам нужно. Почему вы не хотите показывать результаты поиска в порядке релевантности?
Не делай этого.
Лучше по компоновке catalogsearch.xml
добавлять
<reference name="search_result_list">
<action method="setSortBy"><name>whateveryouwant</name></action>
</reference>
внутри
<block type="catalogsearch/result" name="search.result" template="catalogsearch/result.phtml">
В конце после
<action method="setListOrders"/>
<action method="setListModes"/>
<action method="setListCollection"/>