Live search addon for cs-cart

Модуль "Живой поиск"

Страница модуля в магазине: Живой поиск и история поиска · История изменений

Модуль "Живой поиск"

Мощный и функциональный набор инструментов для поиска на вашем сайте. Является достойной альтернативой облачным сервисам поиска по сайту, при этом обладая уникальными функциональными возможностями. Основные возможности модуля:

  • Поиск товаров, брендов, категорий, текстовых страниц и продавцов (для редакции multivendor) на вашем сайте;
  • Поиск товаров с возможностью фильтрации результатов поиска по категориям прямо в окне поиска;
  • Навигация по результатам поиска с клавиатуры;
  • Настройки полей, по которым необходимо производить поиск;
  • Исправление опечаток, неверной раскладки или ошибок в написании с помощью встроенного сервиса Yandex Speller;
  • На выбор две предустановленные темы c возможностью смены цветовой схемы каждой из них;
  • Ведение истории поиска с возможностью просмотра в 4-х срезах:
    - по запросам
    - по поисковым фразам
    - по товарам
    - по пользователям
  • История последних запросов покупателя может отображаться для него в поисковом окне
  • Функционал "Синонимы для поиска";
  • Функционал "Стоп-слова";
  • "Мотивация поиска" для стимулирования использования поиска покупателями;
  • Управление поисковыми фразами;
  • Ускорение поиска для больших каталогов: собственный поисковый индекс и полнотекстовый индекс базы данных;
  • Фильтры в окне поиска по цене, брендам и категориям, сортировка найденных товаров и вид «список / плитка»;
  • Голосовой ввод запроса;
  • Ограничение числа поисковых запросов с одного адреса;
  • Турбо-кеш на базе Redis для снижения нагрузки и более быстрого поиска.
Совместимость

Модуль совместим со всей веткой cs-cart 4.x с такими редакциями как CS-Cart, CS-Cart Ultimate, Multivendor, Multivendor Plus, Multivendor Ultimate. На данный момент нет информации о полной несовместимости модуля с какой-либо темой. В случае конфликта модуля с вашей темой обращайтесь в наш центр поддержки.

Дополнительно мы сделали модуль совместимым с модулями стороннего разработчика, чтобы производить поиск по их полям:

  • AB: Пользовательский H1 PRO
  • AB: SEO-страницы для фильтров

Модуль будет несовместим с любым другим модулем поиска.

Экстремальному режиму ускорения поиска нужен сервер MySQL 5.6 и новее или MariaDB; полная скорость поиска достигается на MySQL 8.0.20 и новее.

Установка модуля

После оформления и оплаты, ваш заказ будет автоматически переведен в статус Оплачен в течение считанных минут. Статус заказа Оплачен означает активацию лицензии и вам на e-mail отправляется письмо с подтверждением о получении оплаты и письмо со ссылкой на скачивание модуля. Так же модуль всегда можно скачать в нашем разделе Управление лицензиями. Для установки модуля на ваш сайт, пожалуйста, выполните следующие шаги:

  1. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями" или по ссылке, отправленной по e-mail.
  2. Пройдите в раздел Модули → Управление модулями и в меню шестерёнки выберите Ручная установка.
  3. Выберите ранее скачанный файл и завершите установку модуля.

На этом установка модуля завершена. Для перехода на страницу настроек модуля выберите установленный модуль в разделе Модули → Модули CS-Commerce

Настройки

После установки модуля настройки устанавливаются на значения по умолчанию. Для доступа к настройкам модуля в панели администратора перейдите в раздел Модули → Модули CS-Commerce и из выпадающего списка выберите интересующий вас модуль.

Основные настройки

Выбор объектов поиска

Вкладка основных настроек позволяет выбрать объекты поиска, установить лимиты отображения. Рассмотрим некоторые из данных настроек более детально:

  • "Отображать в конце списка товары, которых нет в наличии" - Включение данной опции позволит принудительно, независимо от выбранной сортировки товаров, товары, которых уже нет в наличии отображать в конце списка.
  • "Автоматически повышать поисковую популярность товару" - Данная опция позволяет повышать ранг товара к конкретному поисковому запросу в автоматическом режиме. Чем больше пользователи кликают на товар из определенной поисковой фразы - тем выше будет отображаться данный товар для этой поисковой фразы. Данная опция работает только для сортировки "По релевантности с учетом популярности"
  • "Отобразить фильтр по категориям на базе результатов поиска" - Включите данную опцию для отображения блока фильтрации результатов поиска по категориям прямо в поисковом окне. Фильтровать можно сразу по нескольким категориям.
  • "Предлагать исправления" - Включите данную опцию для предложения исправлений опечаток, неправильной раскладки и т.д. Работает на базе сервиса Yandex Speller. 

Настройки поиска товаров 

В данном разделе настроек представлена возможность выбирать поля, по которым будет осуществляться поиск товаров. Отметьте чекбоксами поля, по которым хотите осуществлять поиск. Если отмечаете поиск по характеристикам - вам будет предложено выбрать конкретные характеристики, по которым нужно осуществлять поиск. 

Дополнительные поля для поиска вынесены в отдельную группу. По ним не будет осуществляться поиск, если включаете функцию "Ускоритель поиска".

Совет: Отмечайте только необходимые поля для поиска. Выбирайте только те характеристики для поиска, которые содежат полезную для покупатля информацию. Чем меньше  отмечено полей для поиска, тем меньше нагрузка на сервер и как следствие результаты поиска отображаются быстрее. 

Группа "Дополнительные настройки" позволяет задать минимальное количество символов для начала поиска товаров, включить автоматическую переадресацию на страницу товара, если в результатах поиска был найден только один товар, блокировать переход пользователя на страницу результатов поиска по нажатию на кнопку "Enter".

Поддерживаемые поля поиска:

  • Название, описание и краткое описание товара;
  • Артикул товара и ID товара;
  • Ключевые слова для поиска;
  • Характеристики и Опции товаров;
  • Мета-заголовок, Мета-описание, Мета-ключевые слова;
  • Поиск по тегам товара

Настройки для Multivendor

Для редакций Multivendor, Multivendor PLUS и Multivendor ULTIMATE будет отображаться дополнительная вкладка настроек. В ней собираются настройки, актуальны только для этих редакций. Можно включить поиск магазинов продавцов и выставить лимит их отображения. Так же можно выставить права на доступ к истории поиска товаров для продавцов.

 

Поиск по витринам

Секция "поиск по витринам" работает для мультивитринных магазинов. Для каждой текущей витрины можно выбрать другие витрины, из которых будут предлагаться найденные категории.

Фильтры в окне поиска

Найденные товары можно уточнять прямо в окне живого поиска. На компьютере фильтры стоят в боковой колонке, на телефоне собраны за кнопкой Фильтры. Каждый фильтр включается отдельно на вкладке Основные настройки, в группе Настройка объектов поиска; все три включены по умолчанию и доступны, когда включён поиск товаров.

  • Отображать фильтр по категориям на базе найденных товаров — категории, в которых нашлись товары; можно выбрать несколько.
  • Фильтр по цене — диапазон цен: поля «от» и «до» и ползунок. Выключенный фильтр нагрузки на поиск не создаёт.
  • Фильтр по бренду — бренды найденных товаров с количеством. Работает на характеристике, выбранной в настройке Поиск брендов; без неё фильтр не показывается и запросов не делает.

Ограничение числа запросов

В группе Дополнительные настройки вкладки Настройки поиска товаров задаётся лимит запросов к живому поиску с одного адреса: Сколько запросов допускается с одного адреса (по умолчанию 180) за Период подсчёта запросов, секунд (по умолчанию 60). Запросы сверх лимита отклоняются до конца периода с ответом 429, поэтому скрипт, вызывающий поиск много раз подряд, не нагружает базу магазина. Посетитель, набирающий запрос, делает по одному запросу на введённый символ и до лимита не доходит. Значение 0 отключает ограничение.

Если магазин работает за прокси или CDN, считается адрес посетителя, переданный прокси. Запросы с самого сервера и из локальной сети не считаются.

Управление внешним видом

Модуль имеет встроенный редактор стилей с предпросмотром окна результатов поиска. Администратору на выбор предлагается несколько тем отображения поискового окна (Modern и Classic), и также есть возможность менять цветовую палитру выбранной темы. 

Кроме того, в данном разделе настроек, администратор может отобразить или скрыть отдельные элементы поискового окна, такие как:

  • Цена товара
  • Артикул товара
  • Кнопка "Добавить в корзину"
  • Кнопка "Добавить в избранное"
  • Кнопка "В список сравнения"
  • Кнопка "Быстрый просмотр"

Вид списка товаров и сортировка

Над найденными товарами в окне поиска показываются переключатель вида «список / плитка» и выбор сортировки. Они настраиваются в блоке Вид списка товаров:

  • Вид «Список» доступен и Вид «Плитка» доступен — какие виды может выбрать посетитель.
  • Вид по умолчанию — вид, который посетитель видит, пока сам его не переключил. Если этот вид выключен, берётся первый из включённых. Переключатель показывается только на компьютере: на телефоне всегда список.
  • Показывать выбор сортировки — меню сортировки над найденными товарами: по релевантности, сначала дешевле, сначала дороже, сначала новинки, сначала старые, по названию, по популярности. Порядок, выбранный изначально, задаёт настройка Сортировка на вкладке основных настроек; она же определяет, как считается релевантность.

Голосовой поиск

Настройка Голосовой поиск добавляет в поле поиска кнопку микрофона: произнесённая фраза становится запросом. Кнопка показывается только в браузерах с распознаванием речи (Chrome, Edge, Safari).

История поиска

Данный раздел предназначен для анализа поисковых запросов и анализа пользовательских предпочтений.
История поиска представлена в четырех группах:

  1. Все пользовательские запросы с информацией о пользователе, выбранном языке и меткой времени.
  2. История с группировкой по поисковым фразам. В данном разделе представлены все поисковые фразы с отображением информации о количестве запросов по поисковой фразе и количестве кликов на товары.
  3. История поиска с группировкой по товарам. Будет отображен список товаров, на которые покупатели переходили из поиска с данными о кликах на каждый из товаров, сколько и какие поисковые фразы использовались, чтобы данный товар был выбран покупателем.
  4. История поиска по пользователям. Позволяет видеть историю поиска по конкретным пользователи, если пользователь был авторизован. 

Управление Синонимами

Для поисковых фраз или их части вы можете задавать синонимы. Зачастую, одни и те же товары могут иметь разные названия из-за языковых диалектов или сокращений слов. Например, на сайте вы продаете Микроволновые печи, а покупатели зачастую набирают "Микроволновка". Для того, чтобы покупатель в итоге все же увидел Микроволновые печи, нужно добавить синоним для поисковой фразы "Микроволновка". Для одной поисковой фразы вы можете задавать неограниченное количество синонимов. 

Совет: Задавайте только релевантные синонимы. В противном случае в результатах поиска покупатель будет видеть не то что он действительно ищет.

Группа синонимов состоит из фразы и её синонимов. Фраза — это эталонное значение, по которому идёт поиск в базе данных. Синонимы — то, что покупатель может набрать вместо неё: разговорные и региональные названия, сокращения, опечатки. Запрос-синоним раскрывается только во фразу своей группы: если к фразе «Микроволновая печь» добавлен синоним «микроволновка», то по запросу «микроволновка» модуль ищет ещё и «микроволновая печь». В обратную сторону и в остальные синонимы группы запрос не раскрывается — так в выдачу не попадают лишние товары, а поиск не замедляется.

Синонимы можно добавлять используя интерфейс панели администратора, а также через импорт/экспорт данных. 

Глобально включать или выключать работу Синонимов в поиске вы можете переключателем, расположенным в верхней части бокового меню.

Управление стоп-словами

В некоторых случаях товары не нужно выводить для некоторых поисковых запросов. Такое часто происходит с короткими поисковыми фразами. Например, на сайте вы продаете и Фен, и Фенол. Таким образом, для поисковой фразы "Фен" выводить товары Фенол не логично. Для того, чтобы такие товары не выводились, вы можете добавить для поисковой фразы "Фен" стоп-слово "Фенол". Для одной поисковой фразы можно добавлять несколько стоп-слов. Стоп-слово это не обязательно одно слово, оно может быть целым словосочетанием или предложением. 

Совет: Не задавайте слишком короткие стоп-слова или слова, которые могут быть частью слова других словосочетаний, т.к. непреднамеренно можете заблокировать релевантные результаты поиска.

Стоп-слова можно добавлять, используя интерфейс панели администратора, а также через импорт/экспорт данных. 

Глобально включать или выключать работу стоп-слов в поиске вы можете переключателем, расположенным в верхней части бокового меню.

Мотивация поиска

Для стимулирования использования поиска на вашем сайте можете воспользоваться функцией мотивации поиска. Задайте послания или предложения для покупателей, которые могут их заинтересовать. Задавать можно неограниченное количество предложений, все они будут отображаться эмуляцией набора в поисковом поле поочередно. 

Включать или выключать работу мотивации поиска вы можете переключателем, расположенным в верхней части бокового меню.

Поисковые фразы

Раздел "Поисковые фразы" предназначен для управления подсказками во время начала набора поисковой фразы в окне поиска, а также для отображения рекомендуемых товаров, заданных администратором для конкретной поисковой фразы. Рекомендуемые товары выводятся вне зависимости от того, релевантны они поисковому запросу или нет.

Задавайте популярные поисковые запросы для вашего сайта и экономьте время ваших покупателей на наборе текста.

Переключатели Включение/Выключение функции подсказок и функции отображения рекомендуемых товаров находится в верхней части бокового меню.

Управлять поисковыми фразами можно используя интерфейс панели администратора, а также через импорт/экспорт данных. 

Ускоритель поиска

Ускорение поиска нужно большим каталогам — от 100 тысяч товаров, когда результаты приходят ощутимо медленно. Модуль ведёт собственный поисковый индекс полей товаров и ищет запрос в нём, а не в таблицах товаров. Раздел находится в меню модуля: Ускорение поиска → Настройки ускорения и Ускорение поиска → Индексация товаров.

Режимы ускорения

Настройка Режим ускорения предлагает два режима, оба работают по одному и тому же индексу:

  • Рекомендуемый — запрос ищется в любом месте слова. Результаты поиска не ограничиваются.
  • Экстремальный — запрос ищется по началу слов через полнотекстовый индекс базы данных. Это самый быстрый способ для больших каталогов: по нашим замерам на каталоге в 390 тысяч товаров поиск по слову занимает 0,002 секунды вместо 0,43.
Экстремальный режим не ищет запрос в середине или в конце слова. По запросу "amsung" товары со словом "Samsung" найдены не будут, а по запросу "Sams" — будут.

Переключение между режимами переиндексации не требует. Слова короче минимальной длины слова полнотекстового индекса (параметр базы данных innodb_ft_min_token_size, обычно 3 символа) в экстремальном режиме ищутся обычным способом — точное число показано на странице настроек ускорения.

Индекс быстрого поиска

Экстремальный режим работает через полнотекстовый индекс, который создаётся отдельно. На странице Настройки ускорения откройте меню действий рядом с кнопкой Сохранить и выберите Создать индекс быстрого поиска. Когда индекс создан, на его месте появляется пункт Удалить индекс быстрого поиска.

  • Индекс создаётся только вручную: ни установка, ни обновление модуля его не создают.
  • Пока индекс не создан, экстремальный режим ищет по подстроке, как рекомендуемый, а страница настроек показывает предупреждение. Магазин без работающего поиска не остаётся.
  • Нужен сервер MySQL 5.6 и новее или MariaDB.
Во время создания индекса таблица индекса закрыта для записи, и товары в это время не сохраняются. На 390 тысячах строк создание занимает около 17 секунд. Для большого каталога выберите спокойное время.

Настройка Искать по части артикула (вкладка Настройки поиска товаров, показывается при включённом поиске по артикулу, по умолчанию включена) сохраняет поиск по части артикула в экстремальном режиме: артикул хранится в индексе вместе со своими окончаниями. Это добавляет около 3 МБ индекса на 100 000 товаров. После включения или отключения настройки нужна переиндексация.

Индексация товаров

Перед первым включением ускорения проиндексируйте товары на странице Индексация товаров. Дальше индекс дополняется сам, когда товары добавляются или изменяются в панели администратора.

Если товары загружаются сторонними программами или внешними скриптами либо включена настройка Не индексировать товары во время импорта, индексацию после каждого обновления каталога нужно запускать вручную или по Cron. Команды и ссылки для Cron — обычная и с очисткой индексов — показаны на странице настроек ускорения; ключ в них задаётся настройкой Ключ для запуска по Крону.

Полная переиндексация: в меню действий рядом с кнопкой Сохранить выберите Очистить индексы, затем запустите индексацию заново.

Когда нужна переиндексация

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

После обновления модуля до версии 10.0.0 переиндексация обязательна: расширен список букв с диакритикой, которые приравниваются к базовым. Выберите "Очистить индексы" и запустите индексацию заново.

Рекомендации по серверу

Если серверу базы данных чего-то не хватает для полной скорости поиска, вверху страницы настроек ускорения показан блок рекомендаций. Когда всё в порядке, блока нет. В нём может быть:

  • версия MySQL ниже 8.0.20 — на 8.0.20 и новее база получает точное указание, как строить поисковый запрос, а несколько синонимов проверяются за один проход по индексу;
  • MariaDB — поиск работает, но часть ускорения доступна только на MySQL 8.0.20 и новее;
  • сравнение (collation) таблицы индекса не из семейства general_ci — с utf8mb4_general_ci несколько синонимов проверяются за один проход;
  • размер буфера InnoDB (innodb_buffer_pool_size) меньше размера базы данных — тогда поиск читает индекс с диска, и на большом каталоге это секунды вместо долей секунды. Модуль называет рекомендуемое значение; оно не должно превышать 70% оперативной памяти сервера. Параметр меняется в настройках MySQL — обратитесь к хостингу или системному администратору.

Турбо-кеш

Турбо-кеш - это кеш, который формируется на базе поисковых запросов пользователей. Результаты каждого нового поискового запроса сохраняются в кеше. В случае, когда поисковый запрос уже есть в кеше, модуль пропускает поисковый запрос к базе данных и возвращает список товаров сразу из кеша. Тем самым резко сокращается время ответа на запрос и снижается нагрузка на сервер. При этом цены товаров всегда выгружаются из базы данных. Это означает, что вам не нужно очищать турбо-кеш, если вы обновляете у товаров только цены. Турбо-кеш работает на базе хранилища Redis. Для включения турбо-кеша на вашем сервере должна быть установлена и запущена служба Redis.

Для включения Турбо-кеша на сервере должна быть установлена и запущена служба Redis. При попытке включения турбо-кеша на сервере, где Redis недоступен, вы увидите предупреждающее сообщение о невозможности включить турбо-кеш. 

Функция Турбо-кеш является опциональной, в случае, если вы хотите начать использовать турбо-кеш, но на вашем сервере не установлена служба Redis, вам следуем обратиться в службу технической поддержки вашего сервера для ее включения.

Когда следует очищать турбо-кеш вручную или по расписанию.

Турбо-кеш имеет встроенную логику самоочистки по времени жизни кеша, или по триггеру (обновление или редактирование товара). Если вы используете скрипты массового импорта товаров (создания товаров), то после каждого массового импорта рекомендуется очищать Турбо-кеш.
В случае, когда у вас настроена самоочистка при обновлении или изменении товара, и товары редактируются или создаются из панели администратора, ручная очистка не требуется. 

Функция самоочистки при измении или обновлении товара не удаляет весь турбо-кеш, а только часть кеша (сегменты), в которые входит редактируемый товар. Это позволяет Турбо-кешу работать более эффективно. 

Обновление модуля

Для того, чтобы иметь доступ к обновлениям модуля, у вас должен быть активный период подписки на обновления. При истекшем периоде подписки, вам будут доступны только обновления, выпущенные до даты истечения вашей подписки. Продлить подписку на обновления можно в разделе "Управление лицензиями" на нашем сайте. 

Модуль поддерживает поставку обновлений через Центр обновлений CS-Cart. О выходе новых версий модуля вас оповестит встроенный Центр уведомлений Cart (колокольчик). Обновление модуля с помощью Центра обновлений позволит без потерь настроек данных модуля произвести переход на более новую версию модуля.

Непосредственно перед обновлением, крайне рекомендуется делать полный бэкап сайта (базы данных и файлов) вашего магазина средствами сервера или хостинга.

Обновление модуля через Центр обновлений:

  1. В верхнем меню пройдите в раздел Администрирование → Центр обновлений;
  2. В меню шестеренки нажмите "Проверить доступные обновления"
  3. Cреди списка доступных обновлений найдите нужное и нажмите кнопку Обновить;
  4. Следуйте всем инструкциям, которые будут показаны при процедуре обновления;
  5. Рекомендуется произвести очистку кэша CS-Cart после завершения установки обновлений удалением папки var/cache на вашем сервере или добавлением в адресную строку параметра ctpl (пример: https://domain.com/admin.php?ctpl).

Переустановка модуля удалением:

Переустановка модуля означает удаление настроек и данных модуля. Переустановка позволит получить чистую установку модуля. Для переустановки модуля с сохранением настроек и данных, пожалуйста, обратитесь в наш Центр поддержки для оказания такой услуги. 

Для полной переустановки модуля без сохранения данных выполните следующие шаги:

  1. Пройдите в раздел Модули → Управление модулями и найдите старый установленный модуль.
  2. Нажмите в меню шестеренки модуля кнопку удалить.
  3. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями".
  4. Пройдите в раздел Модули → Управление модулями и в меню шестеренки выберите Ручная установка.
  5. Выберите ранее скачанный файл и завершите установку модуля.

Техническая поддержка

Техническая поддержка модуля уже включена в его стоимость. Прежде чем обращаться в центр поддержки, пожалуйста, убедитесь что вы используете последнюю выпущенную версию модуля. Старые версии  модуля не обслуживаются технической поддержкой.

Для того, чтобы воспользоваться нашей технической поддержкой, выполните следующие шаги:

  1. На нашем сайте центра поддержки https://helpdesk.cs-commerce.com/ авторизуйтесь под своей учетной записью;
  2. Нажмите на кнопку "Новая заявка";
  3. Заполните все необходимые поля и создайте заявку (Вы получите на e-mail письмо с подтверждением);
  4. Ожидайте ответ специалиста (на ваш e-mail придет уведомление об ответе на вашу заявку) в соответствии с регламентами работы службы техподдержки.

Если Вы не получили ответ в течение сроков, обозначенных в регламентах, напишите нам на e-mail info@cs-commerce.com сообщение с темой заявки и мы постараемся решить ваш вопрос в ближайшее время.

Техническая поддержка по диалогу в чате на сайте, прямым телефонным обращениям или e-mail письмам не осуществляется. Вся помощь проходит через центр поддержки. Внимательно изучайте документацию к модулю и условия технической поддержки перед созданием обращения.

 

Ограничения и предупреждения

Рекомендуем ознакомиться с общими ограничениями:

  1. Фрагменты кода  или некоторые файлы модуля могут иметь закрытую (закодированную) часть. Закодированная часть не создает проблемы в доработке модуля;
  2. Модуль будет работать только на тех доменах, которые указаны в лицензии пользователя. При попытке использования решения на установках CS-Cart, домены которых не включены в лицензию, модуль будет автоматически выключен;
  3. Установка локально не допускается системой лицензирования. Чтобы модуль работал на дополнительном домене (псевдониме) укажите этот псевдоним на странице управления лицензиями. На один домен допускается указать до трех псевдонимов для нужд тестирования и разработки.
  4. Главный домен лицензии вы можете менять самостоятельно на странице управления лицензиями. 
Для доступа к изменению/добавлению доменов и псевдонимов лицензии, подписка на обновления должна быть активной. Для изменения домена лицензии с истекшим периодом подписки, сначала необходимо продлить подписку на обновления. 

 

Для разработчиков

Сложные настройки

На вкладке Для разработчиков, в группе Сложные настройки, находится настройка Начинать поисковый запрос с индекса. Она определяет, с чего база данных начинает поисковый запрос при включённом ускорении поиска. На результаты поиска настройка не влияет — только на скорость. Указание порядка действует на MySQL 8.0.20 и новее.

  • Автоматически (по умолчанию) — модуль решает сам по форме индекса, измеренной при последней полной индексации. Пока полной индексации не было, поиск начинается с индекса.
  • Всегда начинать с индекса — для большого каталога, все товары которого принадлежат одной витрине, и когда в индексе один язык: поисковое слово сразу отсекает лишние товары, и база читает данные только найденных.
  • Оставить выбор порядка базе — если в индексе несколько языков или витрине принадлежит лишь небольшая часть товаров общей базы.

Под полем показана подсказка с данными вашего магазина: сколько строк в индексе, сколько в нём языков, какую долю строк может использовать поисковый запрос и что выбрано в автоматическом режиме.

PHP Hooks

Модуль не поддерживает стандартную работу php хуков cs-cart, поэтому была разработана своя схема подключения, которая вписывается в стандарты cs-cart.
В модуль встроены хуки для подключения:

  1. hooks_get_products Variables: 
      $ls_settings - array() addon settings
      $company_id -  int() current storefront ID
      $params - array() query data
      $fields - array() fields to display
      $join - string() Join data
      $condition -  string() conditions string
      $sorting - string() sorting
      $limit - string() products limit
  2. hooks_get_joins Variables: 
     $ls_settings - array() addon settings
     $params - array() query data
     $join - string() Join data
  3. hooks_get_conditions Variables: 
     $ls_settings - array() addon settings
     $params - array() query data
     $condition -  string() conditions string
  4. hooks_get_fields Variables: 
     $ls_settings - array() addon settings
     $params - array() query data
     $fields -  array() fields array
  5. hooks_get_product_phrase_condition Variables: 
     $ls_settings - array() addon settings
     $part  - string() One of Parts of search phrase
     $tmp -  array() Array of part of phrase conditions
  6. hooks_get_speedup_product_data Variables: 
     $ls_settings - array() addon settings
     $product_id - int() Product ID
     $search_string -  string() String of values to be indexed
     $lang_code - string() Language code of indexation string
  7. hooks_get_categories Variables: 
     $ls_settings - array() addon settings
     $company_id - int() Current runtime company ID
     $params - array() query data
     $fields -  array() fields to be selected
     $join - string() Join data
     $condition  -  string() conditions string
     $cats_where -  array() Array of phrase conditions
     $limit  - string() limit of getting categories
  8. hooks_get_brands Variables: 
     $ls_settings - array() addon settings
     $company_id - int() Current runtime company ID
     $params - array() query data
     $fields -  array() fields to be selected
     $join - string() Join data
     $condition  -  string() conditions string
     $phrase_condition -  array() Array of phrase conditions
     $sorting - string() sorting data string
     $limit  - string() limit of getting brands
  9. hooks_get_pages  Variables: 
     $ls_settings - array() addon settings
     $company_id - int() Current runtime company ID
     $params - array() query data 
     $join - string() Join data
     $condition  -  string() conditions string
     $phrase_condition -  array() Array of phrase conditions 
     $limit  - string() limit of getting brands
  10. hooks_get_vendors  Variables: 
    $ls_settings - array() addon settings
     $company_id - int() Current runtime company ID
     $params - array() query data 
     $join - string() Join data
     $condition  -  string() conditions string
     $phrase_condition -  array() Array of phrase conditions 
     $limit  - string() limit of getting brands
  11. hooks_before_response Variables:
    $ls_settings - array() addon settings
    $company_id -  int() current storefront ID
    $params - array() query data
    $response -  array() data to response

На примере встроенного модуля my_changes подключимся к хуку hooks_get_products, который расположен непосредственно перед запросом получения товаров:

  1. Создайте файл hooks.post.php в директории модуля app/addons/my_changes/schemas/csc_live_search
  2. Добавьте в массив $schema['developers']['hooks_get_products']['variants'] значение в виде названия, ключ которого является директорией файла с функцией. Пример кода файла hooks.post.php:
    <?php
    if (!defined('BOOTSTRAP')) { die('Access denied'); }
    $schema['developers']['hooks_get_products']['variants']['/app/addons/my_changes/fn_file_name_same_as_function_name.php']='My changes hook function';
    return $schema;
  3. Создайте соотвествующий файл, на который ссылаетесь из файла hooks.post.php и создайте в нем одну функцию, название которой совпадает с названием файла. В нашем случае это fn_file_name_same_as_function_name, принимайте отправляемые переменные и модифицируйте для получения необходимых условий поиска. Пример содержания файла:
    <?php
    if (!defined('BOOTSTRAP')) { die('Access denied'); }
    function fn_file_name_same_as_function_name($ls_settings, $company_id, $params, $fields, $join, &$condition, $sorting, $limit){
    	
    }
  4. Очистите кеш в панели администратора, зайдите в настройки модуля живого поиска в секцию для разработчиков и выберите хук, который вы добавили в селектбоксе. Сохраните настройки.

На этом интеграция с хуком модуля живого поиска завершена. 

 

JQUERY Event

При необходимости изменения структуры или данных в результатах поиска окна живого поиска используйте отслеживание специального события. В живом посике встроено два специальных события:

  1. cls.after.insert - вызывается когда пользователь набирает текст и модуль вставляет данные в блок.
  2. cls.after.append - вызывается когда пользователь нажимает показать еще и модуль дополнительно отображает контент.

Как использовать: Используйте конструкцию $(document).on()) для отлавливания события:

$(document).on( "cls.after.insert", function(event, data, elm) {	
});
$(document).on( "cls.after.append", function(event, data, elm) {	
});

Где data - это массив  всех переданных данных с сервера, и elm - это блок, куда данные вставляются или добавляются.

Пример использования, где добавляется акртикул товара в конец названия товара:

$(document).on( "cls.after.insert", function(event, data, elm) {
    if (data.items){		
        $.each(data.items, function(i, product){			
            $(elm).find('.cls-product-card[data-pid="' + product.product_id + '"] ').append(" " + product.product_code);      
        });
    }    
});

История версий

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

 

Версия 10.0.0 от 10 ноября 2026 года: после обновления пересоберите индекс ускорения поиска ("Очистить индексы", затем индексация). Экстремальный режим ускорения работает через индекс быстрого поиска, который создаётся вручную на странице настроек ускорения.