Оптовый магазин внешне почти не отличается от розничного: тот же каталог, те же карточки, кнопка «купить». Разница начинается после этой кнопки. Цена зависит от того, кто вошёл. Количество ограничено коробкой. Заказ закрывается счётом, а не чеком. И каталог листает не покупатель, который выбирает, а закупщик, который уже знает артикул.
31 июля 2026 года мы сняли технические показатели с семи оптовых каталогов — от 1 656 адресов в медицинском до 13 590 в бельевом. Ниже шесть мест, где B2B-логика расходится с розничной, и то, что замеры показали внутри.
Цена зависит от того, кто вошёл
В рознице цена одна для всех, и это самая простая часть магазина. В опте у того же товара их несколько: базовая для случайного посетителя, дилерская, отдельная для ключевого клиента, который выбирает объём каждый месяц. Пока это живёт в Excel, оно живёт плохо: файл переслали, цена устарела, клиент спорит, менеджер ищет, какую версию прайса отправлял в прошлый раз.
В OpenCart это штатный механизм — группы покупателей и уровни цен. Клиент входит в кабинет и видит свою колонку, розничный посетитель видит базовую. Источник цен один, и обновляется он импортом прайса, а не перепиской.
Вторая половина этого пункта — регистрация. Оптовые цены не показывают случайному посетителю, поэтому форма регистрации не открывает доступ сама: заявка идёт на модерацию, и менеджер подтверждает, что это действительно закупщик. Сложность начинается там, где цена зависит одновременно от группы, объёма заказа и категории товара. Тогда это уже отдельная логика ценообразования, которую описывают в техническом задании и проверяют по каждой комбинации отдельно.
Количество ограничено коробкой
Розничный покупатель берёт одну штуку. Оптовый берёт коробку по двенадцать, палету или минимальную партию — и любой заказ на семь штук возвращается к менеджеру на ручное согласование. Это самый дорогой способ принимать заказы из существующих.
Кратность упаковки ставится на уровне товара, и корзина не даёт оформить некратное количество. То же с минимальной партией и минимальной суммой заказа. Деталь, которую легко пропустить и дорого вернуть: кнопка должна объяснять, почему она неактивна. «Оформить», которое ничего не делает, читается как сломанный сайт; «добавьте ещё 4 штуки — товар отгружается коробками по 12» читается как правило.
В одном из измеренных каталогов — оптовом магазине стройматериалов на 3 145 позиций — к этому добавляется расчёт по палетам и объёму: единица продажи не совпадает с единицей хранения, и коэффициент должен стоять в системе, а не в голове менеджера.
Заказ набирают списком, а не кликами
Закупщик заходит с готовым списком: тридцать артикулов и количества. Розничный сценарий — найти товар, открыть карточку, добавить в корзину, вернуться — на тридцати позициях превращается в полчаса кликов. Поэтому в опте нужна форма быстрого заказа: артикул и количество, вставка списком, корзина собирается одним движением.
Вторая часть того же — повтор предыдущего заказа в кабинете. Клиент открывает прошлый заказ, убирает лишнее, добавляет новое и оформляет. Здесь есть честная граница: кабинет имеет смысл только там, куда действительно возвращаются. Если ваш клиент заказывает раз в квартал, кабинет будет стоять пустым — а это около семи рабочих дней работы. Частоту повторных заказов знаете вы, а не мы, и именно она решает, делать это или нет.
Оплата закрывается документом
Розничному покупателю нужен чек. Юридическому лицу нужен документ: счёт-фактура с номером и реквизитами, безналичный перевод на IBAN, разные условия для ФЛП и для плательщика НДС. Если это формирует менеджер руками в учётной системе, каждый заказ стоит нескольких минут чужого времени.
Счёт, который собирается из самого заказа, — самая простая механика из тех, что снимают больше всего рутины: реквизиты, номер, позиции и суммы подставляются автоматически. В измеренных каталогах такая оплата — норма. В оптовом магазине нижнего белья восемь способов расчёта, включая счёт-фактуру, и они вынесены не только в текст страницы, но и в структурированную разметку. В B2B-каталоге запчастей для промышленных швейных машин — безналичный расчёт без НДС на счёт ФЛП и оплата после получения товара на складе перевозчика.
Перечень документов, которые сайт закрывает вместо менеджера, — одна из двух вещей, определяющих объём работы. Вторая — количество ценовых уровней. Как из этих двух чисел складывается сумма, разобрано отдельно: сколько стоит интернет-магазин.
Цены и остатки ведёт учётная система
В опте продажа того, чего нет на складе, стоит дороже, чем в рознице: клиент взял позицию на перепродажу, пообещал своему покупателю, а она не приехала. Поэтому остатки на сайте должны браться из базы, а не обновляться руками.
Односторонний импорт прайса файлом — базовая часть работы: цены и остатки обновляются по расписанию, которое задаёте вы. Двусторонний обмен с 1С или BAS — отдельная работа примерно на десять рабочих дней, потому что синхронизация идёт в обе стороны: остатки и цены на сайт, статусы заказов обратно в базу. Начинается она не с описания словами, а с реального файла выгрузки: описание и содержимое базы расходятся почти всегда.
Граница, которую стоит назвать сразу: факт синхронизации извне не проверяется. Мы можем измерить каталог и скорость чужого сайта, но не то, действительно ли к нему каждую ночь приезжают остатки.
Каталог устроен под подбор, а не под просмотр
Розничный каталог ведёт человека от категории к товару. Оптовый должен привести его к нужной позиции за минимум шагов, и сценарии здесь разные для разных ниш.
В оптовом магазине нижнего белья это подбор по размерам и цветам внутри модели: закупщик набирает ассортимент в одной карточке, а не ходит по сорока страницам. Каталог там держит 13 428 карточек товара. В каталоге запчастей для швейных машин — поиск детали по коду или модели оборудования, потому что ошибка в подборе стоит простоя производства. У поставщика стройматериалов — расчёт по объёму и палетам. В B2B-каталоге оборудования для шоколадного производства на 106 позиций корзины нет вообще: там форма запроса просчёта, потому что темперирующую машину не покупают в один клик.
Сюда же ложится и то, что начинается после оформления: зонирование тарифов доставки, когда доставка в соседний район и доставка в село за шестьдесят километров от трассы стоят вам по-разному, и разделение отправлений, когда часть позиций лежит у вас, а часть на складе поставщика.
Что показали семь измеренных оптовых каталогов
Замеры 31 июля 2026 года дали несколько наблюдений, которых не видно из описания проекта.
Объём сам по себе не делает сайт медленным. Первый ответ сервера на каталогах от 1,6 до 13,6 тысячи адресов — от 289 до 576,8 миллисекунды. Самый быстрый отклик оказался как раз у самого большого каталога.
Карту сайта аккуратно ведёт меньшинство. В бельевом 13 590 адресов и ровно один дубликат — 0,007%. Рядом в выборке стоит каталог косметики, где параллельно живёт старая карта: 7 782 записи на 2 755 уникальных адресов, и ни одного адреса второй языковой версии в ней нет. Двуязычность сделана, а для поиска её не существует.
Аналитика умирает тихо. В B2B-каталоге на 1 848 позиций в коде до сих пор стоит Universal Analytics, а свойства GA4 нет вообще. Данные не собираются с июля 2023 года, и владелец об этом не знает, потому что сайт при этом работает.
Вес страницы не зависит от размера каталога. Самый тяжёлый документ выборки — 751,2 КБ на главной магазина с 13 тысячами позиций; каталог на 1 848 позиций отдаёт 120,2 КБ. Разница здесь в том, как сделана страница, а не в том, сколько в ней товара.
Чего оптовый магазин не сделает
Он не заменит менеджера. Согласование партии, отсрочка, спорная цена, претензия по браку — это по-прежнему люди. Сайт снимает рутину: счёт, повтор, остатки, статус заказа.
Он не заберёт сразу прайс из мессенджера. Часть закупщиков годами работает телефоном и пришлёт список в Viber даже тогда, когда на сайте есть всё. Реалистичный сценарий — не «все перешли на сайт», а «часть клиентов оформляет сама, и именно эту часть менеджер больше не обрабатывает руками».
В поиске оптовый магазин нужен иначе, чем розничный. Закупщик ищет артикул, категорию и слова «опт» или «гурт», часто вместе с названием бренда, — а не «купить дёшево». Техническая часть при этом та же: ЧПУ, canonical, уникальные title, карта сайта без дублей, структурированная разметка. Именно здесь в измеренных каталогах больше всего дыр.
С чего начать
Срок разработки оптового магазина — 30–55 рабочих дней от утверждения технического задания; розничный магазин на том же движке — 25–45, и что именно растягивает эти сроки, разобрано отдельно. Самый долгий этап в опте — сборка: каждую комбинацию группы покупателя и цены нужно проверить на живом заказе.
Начинается всё с бесплатного разбора коммерческой схемы: сколько у вас уровней цен, какие документы менеджер делает руками, откуда берутся остатки. Это 1–3 рабочих дня, после них — оценка по этапам. Дальше письменный договор с фиксированной суммой и гарантия 30 календарных дней со дня подписания акта.




