Разборы задач
Поиск в Magento не находит товар по артикулу, цвету и части названия
Как перестроить поиск интернет-магазина на Magento 2, чтобы товар находился по артикулу, цвету, линейке, части названия, транслитерации и даже по запросу, набранному не в той раскладке.
Что болит
Стандартный поиск Magento 2 во многих магазинах фактически работает только на полное совпадение с названием товара. Покупатель вводит «sv01», «гель лак 01» или «розовый гель-лак» — и получает «ничего не найдено», хотя позиция есть в каталоге и на складе. Тот же эффект даёт любая мелочь: дефис вместо пробела, слитное написание, кириллица вместо латиницы, опечатка, не та раскладка клавиатуры. Для человека это один и тот же товар, для системы — разные запросы в никуда.
Самое дорогое здесь то, что теряется самый горячий трафик. В строку поиска идёт человек, который уже знает, что хочет купить: пришёл из каталога, из рассылки, из Instagram, где видел артикул. Пустая выдача разворачивает его к конкуренту с готовым намерением купить. При каталоге в 1500–3000 позиций доля сессий с поиском обычно 10–30%, а конверсия таких сессий в 2–3 раза выше средней по сайту — то есть речь об ощутимой доле выручки. Дополнительный минус: неудачные запросы нигде не фиксируются, поэтому владелец магазина даже не видит, чего людям не хватает в каталоге.
Что мешает сделать просто
Сделать «в лоб» мешает несколько вещей. Сайт обычно уже живой, его сопровождает сторонний подрядчик, доступы к репозиторию и тестовой среде идут через него — это отдельный шаг и отдельный срок. Менять вёрстку каталога и уже настроенные фильтры нельзя: они работают и устраивают заказчика, а любое вмешательство в шаблон выдачи тянет за собой повторное тестирование всего каталога.
Второе ограничение — данные. Артикул, цвет, название латиницей, линейка часто уже заполнены в карточках как атрибуты, но в поисковый индекс не попадают или попадают без веса, поэтому совпадение по описанию перебивает совпадение по артикулу. Если же атрибуты заполнены частично или в разных форматах, сначала приходится приводить их к единому виду — иначе настройка поиска закрепит беспорядок. И третье: решение должно быть правилами, а не ручным списком, потому что новые товары добавляют ежедневно и перенастраивать поиск под каждую позицию никто не будет.
Как решаем
Первое — индексация атрибутов с весами. Артикул, цвет, линейка и название латиницей становятся полноценными полями поиска, причём совпадение по артикулу весит больше, чем совпадение внутри описания. Запрос «01» показывает все позиции с такой нумерацией, «sv01» — конкретную карточку, даже если в названии этого кода нет. Добавляем частичные совпадения: поиск по частям слова и по нескольким словам в произвольном порядке, так что «гель лак 01» и «гельлак 01» дают одинаковую выдачу.
Второе — нормализация запроса до того, как он уйдёт в индекс. Исправление раскладки (когда человек набрал латиницей вместо кириллицы), транслитерация в обе стороны («самер вайб» → Summer Vibe), слитное и раздельное написание, типовые опечатки. Поверх этого — словарь синонимов под тематику магазина: варианты написания категорий, названия цветов и линеек на русском, украинском и латиницей.
Третье — работа с выдачей. Подсказки с третьего введённого символа: фото, название, цена, переход сразу в карточку. Вместо тупика «ничего не найдено» — похожие позиции из той же категории и самые популярные товары. Отдельно собирается отчёт по поисковым запросам: что ищут и чего не находят — это готовый список пробелов в каталоге и в синонимах. Всё тестируется на реальном каталоге по списку запросов заказчика плюс собственному набору кейсов; работы ведутся в тестовой среде, на живой сайт изменения выходят одним шагом после проверки. Расширенный вариант добавляет редактирование синонимов из админки без разработчика, ручное поднятие нужных позиций в топ по запросу, правила под сезонные запросы и акции — и, при необходимости, фид для маркетплейсов на тех же нормализованных атрибутах.
Из чего складывается стоимость и срок
Рыночная вилка для Magento 2 при каталоге до ~3000 позиций: базовая перенастройка поиска (атрибуты в индексе, нормализация запроса, частичные совпадения, синонимы, подсказки) — примерно 8 000–14 000 ₴ и 3–5 рабочих дней. Вариант с управлением выдачей, отчётом по запросам, самостоятельным редактированием синонимов и поддержкой после запуска — 12 000–20 000 ₴, 5–7 дней. Если тем же этапом делается фид для Rozetka/Prom с сопоставлением категорий и автообновлением остатков и цен — 20 000–30 000 ₴ и 10–12 дней.
Главный фактор цены — не количество товаров, а состояние атрибутов. Если артикул, цвет и линейка уже заполнены одинаково во всех карточках, работ ровно столько, сколько в перечне. Если их нужно нормализовать или вытягивать из описаний — добавляется отдельный этап подготовки данных, и бюджет растёт в полтора-два раза. Второй фактор — скорость выдачи доступов сторонним подрядчиком: срок корректно считать со дня, когда есть тестовая среда и репозиторий, а не со дня подписания.
Разбор обезличен: названия заказчика и цены конкретной сделки не раскрываем. Другие разборы — Разборы задач
Обсудить задачу
Расскажите о задаче в разговоре — голосом, текстом или файлами. В ответ получите предложение с составом работ, ценой и сроком. Или просто напишите в Telegram или на почту.