Поиск по товарам на сайте
Поиск по товарам — строка поиска сайта с подсказками при вводе и страница результатов, которую OneTrace.pro наполняет товарами вашего каталога. Поиск понимает опечатки, словоформы, запрос, набранный не в той раскладке, цену и бренд в тексте запроса и смысл описательных запросов, а первые результаты ставит по интересам посетителя и по тому, что выбирают другие покупатели. Готовый виджет поиска рисует подсказки и страницу результатов сам — без кода на сайте.
Для работы нужны установленный трекер (Подключение сайта) и товарный каталог (Рекомендации и каталог товаров). Поиск входит не во все тарифы: если его нет в вашем, пункта Поиск по товарам в меню нет, блок с кодом на вкладке установки не показывается, а запросы поиска получают ошибку «функция недоступна».
Как ищутся товары
- Слова запроса ищутся в названии, бренде, категориях и характеристиках товара; артикул — точным совпадением.
- Учитываются словоформы на языках проекта: «куртки» найдут «Куртка зимняя». Языки задаются в настройках проекта, см. Настройки проекта.
- Опечатки исправляются: «крутка» найдёт «куртку», «dres» — «dress».
- Запрос в неверной раскладке тоже работает: «ghbdtn» ищется как «привет».
- Если по всем словам ничего не нашлось, поиск показывает товары хотя бы с одним из них.
- Выше стоят популярные товары и товары в наличии. Популярность берётся из рекомендаций и обновляется раз в сутки.
- Первые результаты переупорядочиваются по интересам посетителя: товары категорий и брендов, которые он смотрел и покупал, поднимаются выше.
- Размеры и параметры в запросе — «205/55 r16», «5x112», «зимние» — становятся фильтрами, если они есть у отрасли магазина.
- Цена, бренд и значения характеристик в тексте становятся фильтрами, см. Понимание запроса.
- Описательный запрос находит товары и по смыслу, см. Поиск по смыслу.
- Товары, которые по этому запросу чаще выбирают и покупают, стоят выше, см. Обучение на поведении.
Новые и изменённые товары каталога попадают в поиск в течение минуты после загрузки фида или запроса API.
Исправление опечаток
Если по запросу ничего не нашлось или нашлись товары только по части слов, поиск исправляет слова по словарю вашего каталога — названиям товаров на всех языках каталога, брендам, категориям и популярным запросам сайта — и ищет ещё раз. Результаты по исправленному запросу показываются с пометкой «Показаны результаты по запросу «…»» и ссылкой «Искать «…»», чтобы найти ровно введённое. Если товары нашлись только по части слов, исправление предлагается подсказкой «Возможно, вы искали «…»?». Выдача, найденная по всем словам или по смыслу, подсказку не получает: слово, которого нет в каталоге, — не обязательно опечатка.
Словарь обновляется сам после изменений каталога. В подсказке при вводе исправленный запрос тоже показывается строкой, если по введённому товаров нет.
Понимание запроса
Поиск распознаёт в тексте запроса то, что посетитель обычно выбирает фильтрами, и применяет это сразу:
| В запросе | Становится |
|---|---|
| «до 3000», «от 1000 до 2000», «дешевле 50 €», «under $50», «unter 50 €» | фильтр цены — на 10 языках интерфейса |
| бренд из каталога: «nike кроссовки» | фильтр бренда |
| значение характеристики из каталога: «красное платье», «льняная рубашка» | фильтр характеристики — слова сравниваются без окончаний |
Число с единицей измерения — «до 3 лет», «до 5 кг» — ценой не считается. Распознанное показывается в результатах выбранными фильтрами: посетитель видит, почему выдача отфильтрована, и может снять фильтр — тогда этот признак в тексте больше не распознаётся. Если с распознанными фильтрами ничего не нашлось, поиск повторяется по обычному тексту.
Поиск по смыслу
Описательный запрос — «обувь для бега по горам», «что подарить маме», «от дождя» — может не содержать ни одного слова из названий товаров. Для таких запросов поиск дополнительно ищет товары, близкие по смыслу: OneTrace.pro хранит для каждого товара смысловое описание из названий товара и категорий на всех языках каталога, бренда и характеристик.
- Смысл подключается к запросу из трёх слов и длиннее, а также к запросу, по словам которого ничего не нашлось или нашлось только частично. Короткие запросы, которые находятся по словам, ищутся как раньше.
- Товары, которые нашлись и по словам, и по смыслу, стоят выше.
- Запрос на другом языке находит товары по смыслу, если в каталоге есть переводы названий.
- Запрос не о товарах магазина — «страховка автомобиля» в магазине одежды — обычно ничего не получает по смыслу.
- Смысл работает при сортировке по релевантности.
Смысловые описания пересчитываются только у изменённых товаров, обычно за минуту после загрузки каталога.
Обучение на поведении
Раз в сутки поиск учится на событиях сайта за 90 дней: по каждому запросу, который искали хотя бы 5 разных посетителей, находит товары, по которым в результатах кликнули хотя бы двое, а покупка товара после клика весит как три клика. Эти товары поднимаются в начале выдачи по этому запросу — только среди найденного и только при сортировке по релевантности.
В отчёте страницы Сайт → Поиск по товарам показатель Обучено запросов говорит, по скольким запросам порядок уже учитывает поведение, а у таких запросов в таблице стоит метка «обучено».
Виджет поиска
Виджет поиска — готовые подсказки и страница результатов, которые рисует трекер. Включается на странице Сайт → Поиск по товарам в блоке Виджет поиска: отметьте Показывать слой поиска на сайте и сохраните.

Слой поиска. При нажатии на поле поиска под ним открывается слой: недавние запросы посетителя, популярное сейчас и товары для посетителя. При вводе — подсказки запросов, категории, бренды, страницы сайта из базы знаний и товары с фото и ценой. На телефоне слой открывается во весь экран. Слой подключается к полям с атрибутом data-cdp-search и к полям из Другие поля поиска сайта (CSS-селектор) — например, к полю поиска вашей темы без правки её кода.
| Настройка | Что задаёт |
|---|---|
| Страница результатов | куда ведёт «Показать все результаты», {query} заменяется запросом; пусто — отправляется форма поля |
| Страница категории | ссылка на категорию, {id} — id категории каталога; пусто — категории в слое не показываются |
| Добавление в корзину | адрес кнопки «В корзину» в результатах, {id} — id товара каталога; пусто — кнопки нет |
| Что показывать | блоки слоя: недавние запросы, популярное, товары, категории, бренды, страницы сайта |
| Оформление | цвет, скругление, колонки результатов и пропорции фото товаров |
| Голосовой ввод | кнопка голосового поиска в браузерах, которые распознают речь; речь распознаёт браузер, к OneTrace.pro приходит только текст |
| Свои тексты | замена стандартных подписей на каждом языке проекта; пустое поле — стандартный текст на языке посетителя |
| Пустое поле | что видно до ввода: Свои запросы (по одному на строке, до 8) — первыми в блоке популярного, даже если «Популярное сейчас» выключено; баннер над товарами — Картинка баннера (ссылка https), Ссылка баннера, Описание картинки; на каждом языке проекта. Товары — рекомендации для посетителя, без них — популярные товары каталога |
Блок Предпросмотр показывает настоящий слой и результаты на товарах вашего каталога.

Страница результатов. Поставьте на страницу поиска сайта контейнер — трекер нарисует результаты с фильтрами, сортировкой и подгрузкой при прокрутке:
<div data-cdp-search-results data-query-param="q"></div>
Запрос и фильтры хранятся в адресе страницы: ссылкой с результатами можно поделиться, «Назад» возвращает прошлый выбор. data-query-param — параметр запроса в адресе (по умолчанию q), data-per-page — товаров на странице (до 48), data-cart-url — адрес корзины, если он отличается от настроек. Если у сайта нет ни страницы результатов, ни формы поиска, результаты открываются окном поверх страницы.
Кнопка «В корзину». Кнопка отправляет POST на адрес корзины вашего сайта с количеством quantity и ждёт ответ JSON: {"ok": true} — товар добавлен, кнопка показывает «Добавлено»; {"ok": false, "redirect": "…"} — у товара нужно выбрать вариант, открывается указанная страница. После добавления трекер сообщает сайту событием cdp:add-to-cart — по нему тема обновляет мини-корзину. Адрес корзины должен быть на домене сайта: корзина другого сайта не видит покупателя.
Плагины магазинов. В плагинах WooCommerce, Magento 2 и модуле 1С-Битрикс включите настройку виджета поиска — страница поиска магазина покажет результаты виджета, а кнопка «В корзину» будет добавлять товары в корзину магазина. Пока виджет выключен здесь, магазин показывает свою страницу поиска.
Строка поиска
Без виджета подсказку можно подключить к полю поиска вашего сайта атрибутом data-cdp-search:
<form action="/search">
<input name="q" data-cdp-search data-category-url="/catalog/{id}">
</form>
При вводе под полем появляется подсказка: популярные запросы сайта, подходящие категории и товары с картинкой и ценой. Её можно листать стрелками, Enter открывает выбранную строку, Esc закрывает подсказку. Enter без выбранной строки отправляет форму сайта как обычно.
| Атрибут | Что задаёт |
|---|---|
data-cdp-search |
подключает подсказку к полю |
data-category-url |
ссылка на страницу категории, {id} заменяется id категории каталога; без атрибута категории в подсказке не показываются |
data-search-url |
адрес страницы результатов для поля без формы, {query} заменяется запросом |
Подсказка берёт шрифт сайта и не содержит текстов интерфейса, поэтому подходит сайту на любом языке.
Страница результатов
Готовые плагины интернет-магазинов подставляют результаты в страницу поиска магазина сами. На своём сайте получите товары в трекере:
window.addEventListener('load', async () => {
const q = new URLSearchParams(location.search).get('q');
const result = await cdp.search(q, { perPage: 24 });
// result.items — товары, result.total — сколько найдено, result.facets — категории, бренды, цены и характеристики для фильтров
});
Параметры: category, brand, priceMin, priceMax, sort (relevance, popular, price_asc, price_desc), page, perPage, attributes. При клике по товару вызовите cdp.searchResultClicked(товар).
Фильтры характеристик. В result.facets.attributes — характеристики отрасли магазина с подписями на языке посетителя и числом товаров у каждого значения, например «Диаметр, дюймы»: 16, 17, 18. Выбранные значения передайте в attributes: cdp.search(q, { attributes: { rim_diameter: [17, 18], season: 'winter' } }) — несколько значений одной характеристики объединяются через «или», разные характеристики — через «и». В result.filters — размеры и параметры, распознанные в тексте запроса: покажите их посетителю, чтобы было видно, почему результаты отфильтрованы. Нужен трекер 1.15.0.
Если для запроса настроена переадресация (см. Правила для запросов), в result.redirect — адрес страницы: откройте её вместо результатов.
Ещё в ответе: result.corrected — результаты показаны по исправленному запросу, result.suggestion — «Возможно, вы искали», result.filters — также цена (price_min, price_max) и бренд, распознанные в тексте, result.learned — порядок учитывает поведение посетителей, result.semantic — есть товары, найденные по смыслу. Опции correct: false — искать ровно введённое, ignore: ['price'] — не распознавать в тексте цену, бренд (brand) или характеристику.
Серверам доступны те же запросы с ключом записи: https://cdp.onetrace.pro/api/v1/search и https://cdp.onetrace.pro/api/v1/search/suggest. Полный перечень параметров — в справочнике API: https://cdp.onetrace.pro/api/v1/openapi.json.
Отчёт по запросам
Страница Сайт → Поиск по товарам показывает, что посетители ищут на сайте, за 7, 30 или 90 дней:
- Поиски и посетители — сколько раз искали и сколько разных людей.
- Без результатов — доля поисков, которые ничего не нашли.
- CTR — доля посетителей, которые кликнули по товару в результатах своего запроса.
- Покупки и выручка — товар, по которому кликнули в результатах, тот же покупатель купил в течение 7 дней. Выручка считается по цене товара в каталоге. Показываются, если в настройках рекомендаций задано событие покупки, см. Рекомендации и каталог товаров.
- Обучено запросов — по скольким запросам порядок выдачи учитывает клики и покупки, см. Обучение на поведении.

Таблицы под графиком:
| Таблица | Что в ней |
|---|---|
| Популярные | запросы по числу поисков |
| Без результатов | запросы, которые ни разу ничего не нашли: подсказка, каких товаров или синонимов не хватает |
| Низкий CTR | запросы от 5 поисков, где по результатам кликают реже 10%: выдача не та, которую ждут |
Запросы сравниваются без учёта регистра и лишних пробелов. Из строки таблицы можно сразу добавить синоним или правило для запроса.
Синонимы
Синонимы — слова и фразы, которые ищутся вместе: запрос с любым словом группы находит товары и по остальным. Например, группа «кроссовки, кеды, sneakers»: по запросу «белые кеды» найдутся и белые кроссовки.
- Двусторонняя группа — каждое слово ищется как остальные.
- Односторонняя группа — только первое слово ищется как остальные: «айфон → iphone» находит iPhone по запросу «айфон», но «iphone» не ищется как «айфон».
Слово или фраза группы заменяется в запросе, только если встречается целиком. Синонимы действуют сразу после сохранения, в результатах и подсказках. В проекте — до 500 групп, в группе — до 20 слов.
Правила для запросов
Правило срабатывает, когда посетитель ищет ровно этот запрос (без учёта регистра, лишних пробелов и знаков по краям), и делает одно или оба действия:
- Закреплённые товары — до 24 товаров в заданном порядке стоят в начале результатов, даже если сам поиск их не находит. Остальные результаты идут за ними без повторов. Закрепление действует при сортировке по релевантности и без фильтров; товары не в наличии не показываются.
- Переадресация — вместо результатов открывается страница сайта, например «доставка» → страница условий доставки.

Переадресацию выполняют строка поиска трекера (Enter по запросу с правилом), cdp.search() на своей странице результатов (поле redirect) и плагины WooCommerce и Magento 2. В проекте — до 1000 правил.
Лимит запросов
Запросы поиска — и страницы результатов, и подсказки при вводе — считаются в месячный лимит тарифа. Лимит растёт с объёмом профилей тарифа: «Рост» — 20 запросов на профиль объёма в месяц, «Корпоративный» — 40; в пробный период — 50 000 запросов. Расход виден в разделе «Тариф», см. Тариф и оплата.
Письма владельцу проекта приходят при 90 % и 100 % лимита. Ещё 10 % сверх лимита поиск работает, дальше до начала следующего месяца недоступен: виджет перестаёт перехватывать поле поиска сайта и в результатах пишет, что поиск недоступен, а плагины магазинов сразу показывают встроенный поиск магазина. Своя страница результатов получает в cdp.search() признак unavailable — покажите свой поиск сайта.
Статистика
Трекер записывает два события:
| Событие | Когда |
|---|---|
search |
показана первая страница результатов; свойства query — запрос, results — сколько найдено |
search_result_clicked |
клик по товару в результатах или в подсказке; свойства query, product_id, position, source |
Из событий search за 30 дней складываются популярные запросы в подсказке. События видны в карточке покупателя и доступны в сегментах, например «искал, но не купил», см. Сегменты.