Magento - исключить условие поиска - PullRequest
1 голос
/ 14 июля 2011

Кто-нибудь знает, есть ли способ исключить поиск определенных слов в Magento?

Например: скажем, у меня есть магазин, в котором продаются шляпы, я хочу исключить из поиска слово «шляпы», поэтому, если кто-то ищет «черные шляпы», он будет возвращать результаты только для «черных», потому что все продукты в любом случае являются шляпами, и если в поисковом запросе разрешено использовать «шляпы», то будут возвращены ВСЕ шляпы.

Есть идеи?

1 Ответ

1 голос
/ 14 июля 2011

Я не уверен, что вам действительно нужно это делать, учитывая сценарий, который вы обрисовали.Magento использует like или fulltext в качестве доступных параметров поиска (задается через admin> system> configuration> catalog> поиск по каталогу), и ни один из них не возвращает все шляпы, если поисковый запрос был «black hats».

Если вы все еще чувствуете необходимость исключить определенные поисковые термины, вы можете либо расширить app/code/core/Mage/CatalogSearch/Model/Query.php в локальном пуле кода, и добавить метод, который удаляет все нежелательные поисковые запросы.Или - и я бы выбрал такой подход - создайте небольшой модуль с наблюдателем, который перехватывает событие controller_action_predispatch.Это позволит вам санировать / изменять параметры запроса, чтобы удалить любые поисковые термины, которые должны быть исключены, до того, как запрос будет передан ResultController.php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...