Opencart — Поиск В Описании Товаров

Тема в разделе "Модули и дополнения", создана пользователем admin, 17 июн 2016.

  1. TopicStarter Overlay
    Offline

    admin Команда форума Администратор

    Сообщения:
    1.790
    Симпатии:
    38.932
    Репутация:
    138
    По умолчанию поиск OpenCart ищет непосредственно по названиям товаров, не затрагивая описания товаров, что не очень удобно. Для того, чтобы поиск искал по описанию товара, необходимо на странице поиска отметить галочками чекбоксы с «Искать в описании товаров» и «Искать в подкатегориях», если хотим при поиске затрагивать подкатегории магазина. Мы же сделаем так, чтобы поиск сразу искал по названиям, описаниям и учитывал подкатегории.

    Рассмотрим на примере демо данных магазина. В магазине присутствует товар под названием «Apple Cinema 30″, попытаемся с помощью поиска найти данный товар, для этого можно вбить название целиком, можно использовать лишь часть названия и поиск найдет нужный товар. Но если попытаться найти этот же товар, но использовав для поиска фразу из описания, поиск данный товар не найдет.
    search-opencart.jpg

    Итак, для того, чтобы изменить эту ситуацию, нам необходимо открыть всего один файл — catalog\view\javascript\common.js и подправить в нем две строки — 9 и 22. При этом важно учитывать версию движка.

    • Если вы используете версию 1.5.4.1 и ниже, то код на этих строках идентичный и выглядит следующим образом:
    Код:
    url+='&filter_name='+encodeURIComponent(filter_name);
    Мы же изменим этот код на следующий:

    Код:
    url+='&filter_name='+encodeURIComponent(filter_name)+
    '&filter_sub_category=true&filter_description=true';
    • Если же у вас более свежая версия (проверено на 1.5.5.1), то код будет немного иным (все на тех же 9 и 22 строках):

    PHP

    Код:
    url+='&search='+encodeURIComponent(search);
    мы же заменим его на:

    Код:
    url+='&search='+encodeURIComponent(search)+'&description=true'+'&sub_category=true';

    Для владельцев OpenCart 2.x (я способ использую на OpenCart 2.0.2.0) изменения будут следующими:

    находим строки со следующим кодом (приблизительно с 70 по 72 строку):


    Код:
    if(value){
    url+='&search='+encodeURIComponent(value);
    }

    и меняем его на :

    Код:
    if(value){
    url+='&search='+encodeURIComponent(value)+'&description=true'+'&sub_category=true';
    }

    Теперь поиск нашего магазина стал более умным и продвинутым и находит товар по любой фразе, будь то часть названия или просто фраза из описания товара.
     
  2. Offline

    Pavlik Пользователь

    Сообщения:
    372
    Симпатии:
    108
    Репутация:
    15
    Версия ocStore 2.1.0.2.1
    В файле catalog\view\javascript\common.js
    Код в 59й строке
    Заменил часть кода - без изменений.
    Есть еще файлы isearch и isearch_corporate (модуль поиска, он отключен)
    Может кто знает как поправить поиск?
     
    Последнее редактирование: 8 янв 2017
  3. Offline

    cplace Пользователь

    Сообщения:
    2
    Симпатии:
    0
    Репутация:
    0
    На версии 2.3 данный алгоритм не работает! В файле catalog\view\javascript\common.js можно хоть все удалить, ничего не изменится.
     
  4. Offline

    spy-007 Пользователь

    Сообщения:
    59
    Симпатии:
    63
    Репутация:
    30
    cplace, работает для всех ОС 2х., просто:
    1) В JS поправить нужно в нескольких местах (в 2х, а то и 4х ).
    2) Если не стандартная тема, то править нужно в common.js вашей темы (или другом js файле, что дополняет/изменяет логику поиска).
    3) Почистите кэш.
     
  5. Offline

    spy-007 Пользователь

    Сообщения:
    59
    Симпатии:
    63
    Репутация:
    30
    Pavlik, в common.js вы все изменили?
    Код:
    url+='&search='+encodeURIComponent(value);
    Хоть isearch отключен может использоватся скрипт, что перебивает стандартный поиск.
    Закоментируйте подключение js скриптов isearch и почистите кэш.
     
    Anastasiya нравится это.