Оптовый закупщик не «гуляет» по каталогу — у него на руках спецификация с артикулами, и ему нужно ввести код и мгновенно получить ровно тот товар. А штатный поиск магазина на «AB-1024/X» выдаёт пустоту или десяток «похожих» позиций. Знакомо? В B2B это не мелочь: каждая неудачная попытка найти товар по артикулу — это потерянная минута закупщика и риск, что заказ уйдёт к более удобному поставщику.
Эта статья — о том, как настроить поиск по артикулу и точному совпадению в B2B-каталоге на 1С-Битрикс: чем артикул отличается от слова, почему полнотекстовый поиск тут не работает, как искать по коду 1С и SKU, учитывать регион и наличие и собрать быстрый заказ по списку артикулов. Материал основан на наших проектах по сайтам для B2B-компаний — по делу, без воды.
Коротко
- Артикул — это код, а не слово; морфологический полнотекстовый поиск его теряет, нужен поиск по точному совпадению.
- Ищите по нескольким полям сразу: артикул, код 1С, SKU торгового предложения и точное название.
- Нормализуйте артикул и запрос (пробелы, дефисы, регистр), чтобы «AB 1024» и «ab-1024» нашли один товар.
- Для опта добавьте поиск по списку артикулов, наличие по складу клиента и цену по его группе.
Почему B2B-поиск устроен иначе
Розничный и оптовый покупатель ищут по-разному, и поиск под них настраивается по-разному. Розничный посетитель чаще не знает точного названия: он вводит «диван угловой серый» или «телефон с хорошей камерой» — ему помогает умный фильтр и подбор по характеристикам. Оптовый закупщик действует наоборот: товар ему уже известен, у него есть артикул из прайса или спецификации, и задача поиска — найти позицию точно и быстро.
Отсюда главный вывод: в B2B-каталоге поиск по артикулу важнее «умного» подбора. Закупщик повторяет заказы, работает по номенклатуре поставщика и ценит скорость выше «помощи в выборе». Если поиск по коду не работает, опт страдает напрямую — это не вопрос удобства, а вопрос оборота.
Сценарии оптового поиска
- Повторный заказ. Закупщик берёт те же позиции, что и в прошлый раз, по знакомым артикулам.
- Заказ по спецификации. Есть список из десятков артикулов — нужно найти и добавить всё разом.
- Поиск по коду поставщика. Товар известен по коду 1С или коду производителя, а не по «продающему» названию.
- Проверка наличия. Нужно быстро узнать, есть ли конкретный артикул на складе, откуда отгружают клиенту.
Чем артикул отличается от обычного слова
Чтобы понять, почему обычный поиск не справляется с артикулами, надо увидеть, чем код отличается от слова естественного языка. Полнотекстовый поиск проектировался под тексты: он разбивает запрос на слова, приводит их к начальной форме (морфология), отбрасывает стоп-слова и считает релевантность. Для фразы «купить угловой диван» это работает отлично.
Артикул живёт по другим правилам:
- Это не слово. «AB-1024/X» не имеет начальной формы и морфологии — приводить его «к корню» бессмысленно и вредно.
- Значимы символы-разделители. Дефисы, слеши, точки внутри кода — часть значения, а полнотекстовый поиск воспринимает их как границы слов и дробит код.
- Важен порядок и полнота. «1024» и «AB-1024» — разные вещи; частичное совпадение часто даёт мусор.
- Регистр и пробелы случайны. Один и тот же артикул разные люди пишут как «AB1024», «ab 1024», «AB-1024».
Поэтому артикул нельзя «скормить» обычному морфологическому индексу и ждать хорошего результата. Ему нужен отдельный механизм: точное (или нормализованное) сравнение по выделенным полям, а не релевантность по словам.
Точное совпадение против полнотекстового поиска
В рабочем B2B-каталоге уживаются два разных механизма поиска, и важно не путать, какой за что отвечает.
| Критерий | Точное совпадение (артикул) | Полнотекстовый поиск (название) |
|---|---|---|
| Что ищет | Код по точному/нормализованному значению | Слова с учётом морфологии |
| Поля | Артикул, код 1С, SKU | Название, описание |
| Разделители | Значимы (или нормализуются) | Границы слов |
| Результат | Ровно тот товар | Список по релевантности |
| Кому нужен | Опт, повторные заказы | Розница, подбор |
Правильная стратегия — определять тип запроса и направлять его в нужный механизм. Если строка похожа на артикул (есть цифры, дефисы, характерная маска кода) — приоритет отдаётся точному поиску по кодам; если это слова — работает полнотекстовый поиск по названиям. Часто их объединяют в одну выдачу с приоритетом: сначала точное совпадение по артикулу, затем похожие по названию.
Что искать: артикул, код 1С, SKU, название
«Поиск по артикулу» — на деле поиск по нескольким полям, потому что один и тот же товар закупщик может знать под разными кодами. Хороший B2B-поиск проверяет запрос сразу по набору точных полей.
- Артикул сайта. Основной код товара, который ведётся в каталоге и показывается в карточке.
- Код 1С. Внешний код (XML_ID) или отдельное свойство, приходящее обменом из учётной системы. По нему ищет тот, кто работает с номенклатурой поставщика.
- Артикул торгового предложения (SKU). У товара с вариантами свой код может быть у каждого предложения — размер, цвет, фасовка. Искать нужно и по ним.
- Код производителя. Иногда закупщик знает товар по заводскому коду, отличному от вашего артикула.
- Точное название. Полное наименование как запасной путь, когда кода под рукой нет.
Коды 1С и артикулы попадают на сайт при обмене с учётной системой, поэтому качество поиска прямо зависит от качества обмена. Если коды «плавают» от выгрузки к выгрузке, поиск по ним ломается. Как настроить стабильный обмен, мы подробно разбираем в статье про интеграцию магазина с 1С и закрываем услугой интернет-магазин с интеграцией 1С.
Нормализация: пробелы, дефисы, регистр
Один и тот же артикул разные люди и системы записывают по-разному. В прайсе он «AB-1024/X», в письме клиента — «ab 1024 x», в его памяти — «AB1024X». Если сравнивать строки «как есть», точный поиск будет постоянно промахиваться. Решение — нормализация: и значение в базе, и поисковый запрос перед сравнением приводят к единому виду.
Типовая нормализация артикула включает:
- Единый регистр. Всё приводится к верхнему или нижнему — «AB» и «ab» становятся одним.
- Удаление разделителей. Пробелы, дефисы, слеши и точки убираются, чтобы «AB-1024» и «AB 1024» совпали.
- Срез незначащих символов. Лишние пробелы по краям, невидимые символы из копипаста.
- Опционально — лидирующие нули. Если в учёте «0042» и «42» — один товар, это тоже учитывают.
Нормализованное значение хранят в отдельном индексируемом поле, чтобы сравнение шло быстро. Тогда любой вариант написания артикула приводит к одному товару. Для самих кодов это надёжнее «нечёткого» поиска: строгая нормализация даёт предсказуемый результат, а угадывание опечаток в кодах часто выдаёт не тот товар.
Поиск по списку артикулов и быстрый заказ
Самая ценная для опта функция поверх точного поиска — заказ по списку артикулов. У закупщика спецификация: десятки строк «артикул — количество». Вместо того чтобы искать каждую позицию по одной, он вставляет весь список разом, а система находит товары и предлагает добавить их в корзину одним действием.
Хорошо сделанный быстрый заказ умеет:
- Принимать список из буфера. Закупщик копирует артикулы из Excel или письма и вставляет в одно поле.
- Сопоставлять количество. Если рядом с артикулом указано число, оно подставляется как количество в заказ.
- Показывать ненайденное. Позиции, которых нет в каталоге или нет в наличии, выделяются отдельно, а не молча пропадают.
- Уважать кратность. Если товар продаётся упаковками, количество подгоняется под кратность заказа.
Такой быстрый заказ резко сокращает время оформления крупной закупки — с десятков минут «поиск по одному» до пары действий. Это типовая часть оптовой витрины, которую мы реализуем в рамках B2B-порталов и личных кабинетов. Логика кратности и упаковок при этом приходит из 1С — её мы разбирали в материале про обмен с 1С.
Регион, склад и наличие в выдаче
Найти артикул мало — закупщику важно сразу понять, можно ли его купить и откуда отгрузят. Для распределённого опта это означает, что в выдачу поиска нужно добавить наличие в разрезе складов и привязку к региону клиента.
Один и тот же артикул может быть в наличии на московском складе и отсутствовать на региональном; цена и сроки отгрузки тоже зависят от того, откуда едет товар. Поэтому в результатах поиска для опта показывают:
- Наличие по складу клиента. Не «есть на остатках вообще», а «есть там, откуда вам отгрузят».
- Остаток по нескольким складам. Если клиент готов забрать с разных складов — он видит, где сколько.
- Срок поставки. Для позиций «под заказ» — ориентир по сроку, а не просто «нет в наличии».
- Региональную цену. Если условия зависят от региона, цена в выдаче соответствует клиенту.
Остатки по складам приходят на сайт обменом с 1С, поэтому корректность этой части поиска снова упирается в качество интеграции. Для мультирегиональных оптовых проектов регион клиента и его склад мы закладываем в архитектуру вместе с мультирегиональным сайтом на 1С-Битрикс.
Цены по группам клиентов в результатах
В B2B цена — не публичное число, а функция от того, кто смотрит. У дилера одна цена, у опта первого уровня — другая, у розничного гостя — третья или вовсе скрытая. Поэтому в результатах поиска цена должна соответствовать группе авторизованного клиента, а не показывать всем одну «витринную».
Это работает через типы цен и группы пользователей: каждой группе сопоставлен свой тип цены, и в выдаче поиска подставляется именно он. Авторизованный дилер в результатах видит свою дилерскую цену, неавторизованный гость — розничную или приглашение войти. Механику цен по группам мы подробно разбираем в статье про оптовые цены по группам клиентов.
Подсказки, автодополнение и история
Скорость поиска для опта — это ещё и удобство ввода. Несколько вспомогательных механизмов ощутимо ускоряют работу закупщика:
- Автодополнение по артикулу. По мере ввода кода появляются подсказки с совпадающими товарами — закупщик выбирает, не дописывая код целиком.
- Подсказки с наличием. В подсказке сразу видно наличие и цену клиента, чтобы не открывать карточку ради проверки.
- История заказов. Быстрый доступ к ранее заказанным артикулам — для повторных закупок это экономит больше всего времени.
- Сохранённые списки. Закупщик хранит свои спецификации и повторяет заказ из них в один клик.
Эти функции живут в личном кабинете клиента и тесно связаны с историей заказов и согласований. Полноценный оптовый кабинет с такими сценариями — отдельная задача, которую мы решаем услугой B2B-порталов и личных кабинетов.
Реализация в 1С-Битрикс пошагово
Сборка B2B-поиска в 1С-Битрикс сводится к понятной последовательности шагов. Названия пунктов меню зависят от редакции и версии, но общая логика такая:
- Заведите точные поля. Убедитесь, что артикул, код 1С и SKU хранятся в отдельных свойствах товара и торгового предложения и стабильно приходят обменом.
- Добавьте нормализованное поле. Для каждого кода держите рядом нормализованное значение (без разделителей, в одном регистре) — по нему идёт быстрый точный поиск.
- Настройте индекс поиска. Включите коды в поисковый индекс как точные поля, отделив их от полнотекстового поиска по названию.
- Опишите приоритет. Запрос-код сначала проверяется на точное совпадение по артикулам, затем дополняется полнотекстовой выдачей по названию.
- Подключите быстрый заказ. Поле для списка артикулов с разбором количества и кратности, добавлением в корзину и подсветкой ненайденного.
- Свяжите с наличием и ценой. В выдачу выведите остаток по складу клиента и цену по его группе.
- Проверьте на боевых данных. Прогоните реальные артикулы и спецификации, проверьте разные написания, наличие и цены под разными группами.
Если каталог большой и поиск нужен по-настоящему быстрый, часть логики выносят в кастомную разработку поверх штатного поиска. Это наша услуга API и интеграционной разработки: точный поиск по кодам, быстрый заказ и связка с наличием по складам реализуются как отдельный надёжный механизм, а не «натягиваются» на морфологический индекс.
Производительность поиска на большом каталоге
На оптовом каталоге в десятки и сотни тысяч позиций поиск должен оставаться мгновенным даже под нагрузкой. Несколько принципов, которые держат его быстрым:
- Индексированные точные поля. Нормализованный артикул лежит в индексируемом поле, поэтому точное совпадение находится без перебора всего каталога.
- Разделение механизмов. Точный поиск по кодам не нагружает полнотекстовый индекс и наоборот — каждый делает свою работу.
- Кэширование подсказок. Частые запросы и автодополнение кэшируются, чтобы не дёргать базу на каждый символ.
- Быстрый фундамент. Поиск открывается на тех же страницах каталога, поэтому общая скорость витрины важна.
Скорость каталога в целом — отдельная большая тема. Поиск, фильтр и выдача товаров выигрывают от композитного сайта и продуманного кэширования: статика отдаётся мгновенно, а динамические блоки (наличие, цена клиента) догружаются. Системно скорость мы поднимаем услугой по скорости и Core Web Vitals.
Частые ошибки B2B-поиска
- Артикул ищут полнотекстовым поиском. Морфологический индекс дробит код по дефисам и теряет товар. Нужен отдельный точный поиск.
- Нет нормализации. «AB 1024» и «AB-1024» не находят один товар, закупщик считает, что позиции нет.
- Ищут только по артикулу сайта. Закупщик знает товар по коду 1С или коду производителя — а поиск по ним не настроен.
- Нет поиска по SKU. Код есть у конкретного варианта (размер, цвет), а поиск смотрит только на товар-родитель.
- Нет быстрого заказа по списку. Закупщик ищет каждую из десятков позиций спецификации по одной — медленно и раздражает.
- Наличие «вообще», а не по складу клиента. Товар «есть», но не на складе отгрузки — заказ срывается уже после оформления.
- Одна цена всем. В выдаче розничная цена вместо цены группы клиента — или закрытые цены видны гостю.
- Поиск зависит от плавающих кодов 1С. Коды меняются при обмене, и поиск по ним периодически ломается.
Чек-лист внедрения
- Точные поля заведены. Артикул, код 1С, SKU и код производителя хранятся в отдельных свойствах и стабильно приходят обменом.
- Нормализация настроена. Рядом с каждым кодом есть нормализованное значение; запрос нормализуется так же.
- Точный поиск отделён. Поиск по кодам идёт точным совпадением, по названию — полнотекстовым, с приоритетом артикула.
- Быстрый заказ работает. Список артикулов разбирается, количество и кратность учитываются, ненайденное подсвечивается.
- Наличие по складу. В выдаче — остаток на складе клиента и срок поставки для позиций под заказ.
- Цена по группе. Результаты показывают цену группы авторизованного клиента; закрытые цены скрыты от гостя.
- Подсказки и история. Автодополнение, история заказов и сохранённые списки доступны в кабинете.
- Проверено на реальных данных. Прогнаны настоящие артикулы, спецификации, разные написания, наличие и цены под группами.
Вывод
Поиск по артикулу — сердце B2B-каталога. Оптовый закупщик приходит с готовым кодом, и его задача — найти товар точно и мгновенно, а не получить список «похожих». Это требует отдельного механизма: точного совпадения по нормализованным кодам, поиска по артикулу, коду 1С и SKU, а не натягивания морфологического индекса на коды.
Добавьте к точному поиску быстрый заказ по списку артикулов, наличие по складу клиента и цену по его группе — и опт начнёт оформлять заказы за секунды. А поскольку коды и остатки приходят из 1С, качество поиска держится на качестве обмена: настройте стабильную интеграцию, и поиск по артикулу станет одним из самых сильных преимуществ вашего B2B-каталога.