Поиск по артикулу выглядит самой простой частью каталога: код — строка, сравнить две строки несложно. На практике именно он ломается чаще всего, и ломается тихо: покупатель вводит код из прайса, получает пустую страницу и уходит, уверенный, что товара у вас нет.
Почему совпадения не происходит
Один и тот же артикул записывают по-разному в трёх местах: в вашем каталоге, в прайсе производителя и в голове покупателя.
| Где | Как записано |
|---|---|
| Карточка на сайте | УШМ-125-1200 |
| Прайс производителя | УШМ 125 1200 |
| Ввод покупателя | ушм1251200 |
| Копирование из письма | УШМ‑125‑1200 (неразрывный дефис) |
Прямое сравнение строк не найдёт ни одного соответствия. При этом все четыре записи обозначают один товар.
Нормализация
Решение — сравнивать не исходные строки, а приведённые к канонической форме. Шаги приведения:
- Убрать разделители — пробелы, дефисы, точки, подчёркивания, слэши.
- Привести регистр к одному.
- Заменить визуально одинаковые буквы. Кириллические «А, В, Е, К, М, Н, О, Р, С, Т, У, Х» неотличимы на вид от латинских «A, B, E, K, M, H, O, P, C, T, Y, X». Покупатель, набирающий код с раскладки, регулярно смешивает алфавиты — и не может понять, почему не находится.
- Убрать типографские подмены — неразрывный дефис, длинное тире, неразрывный пробел. Они приезжают при копировании из писем и документов.
- Отбросить служебные префиксы, если они у вас есть: внутренние коды вида «ТОВ-» или «SKU» покупатель не вводит.
Нормализованные формы хранятся в индексе рядом с исходными, и поиск сравнивает их. Отображается при этом всегда исходный артикул.
Какие артикулы вообще искать
В фиде обычно есть несколько кодов, и искать нужно по всем:
- Внутренний код магазина. Его знают постоянные клиенты.
- Артикул производителя. Оптовые покупатели берут его из прайса поставщика — этот случай самый частый и его чаще всего забывают.
- Штрихкод. Вводят редко, но при работе со сканером — регулярно.
- Код аналога или замены, если вы его ведёте.
Поиск, работающий только по внутреннему коду, теряет ровно ту аудиторию, которая пришла с чужим прайсом в руках.
Приоритет над остальными каналами
Если запрос выглядит как артикул — содержит цифры и разделители, не похож на обычное слово, — точное совпадение по нему должно перебивать любую смысловую близость.
Человек, вводящий код, не хочет «что-то похожее». Он хочет ровно этот товар. Выдача, где точное совпадение стоит третьим после двух «похожих», воспринимается как неработающий поиск.
Правило простое: найдено точное совпадение по любому из кодов — оно первое в выдаче, без обсуждения.
Когда допустимо нечёткое сравнение
Только при отсутствии точного совпадения и с оговорками:
- результат помечается как приблизительный;
- различие в цифрах допускается менее охотно, чем в буквах;
- показывается не один «исправленный» вариант, а несколько кандидатов.
Причина в том, что в артикулах цифра — это характеристика: «УШМ-125-1200» и «УШМ-125-1400» отличаются мощностью. Молчаливое исправление одного в другой выдаёт покупателю не тот товар и выглядит как ошибка каталога.
Что проверить у себя
Возьмите десять ходовых позиций и по каждой попробуйте найти товар:
- Артикулом ровно как в карточке.
- С пробелами вместо дефисов.
- Слитно, без разделителей.
- В нижнем регистре.
- Артикулом производителя из прайса.
- Скопировав код из письма клиента.
Шестой пункт даёт больше всего сюрпризов: копирование приносит невидимые символы, которых в вашем каталоге нет.
Коротко
- Один артикул записывают минимум четырьмя способами; прямое сравнение строк не работает.
- Нормализация: убрать разделители, привести регистр, учесть одинаковые на вид буквы разных алфавитов.
- Искать нужно по всем кодам, включая артикул производителя, — оптовик приходит с чужим прайсом.
- Точное совпадение по коду всегда перебивает смысловую близость.
- Нечёткое сравнение артикулов допустимо только как запасной вариант и с пометкой.


