Розничный магазин продаёт штуками: покупатель кладёт товар в корзину по одной единице и платит цену за штуку. В опте так почти не бывает. Товар отгружают упаковками, коробками и паллетами; заказ идёт кратно упаковке, а не как попало; есть минимальная партия, ниже которой отгрузка невозможна; часть номенклатуры считают в килограммах, литрах и погонных метрах с дробным количеством; остатки важны по складам, а не просто «есть/нет». И заказывают в опте не поштучным обходом каталога, а сразу списком — по спецификации, по артикулам, загрузкой из Excel. Всё это делает оптовый каталог на 1С-Битрикс отдельной задачей, а не «розницей с оптовыми ценами».
Эта статья — практический разбор того, как устроен B2B-каталог на 1С-Битрикс: как задать единицы измерения и упаковки с коэффициентами, как настроить кратность заказа и минимальную партию, как показать остатки по складам, как сделать быстрый заказ по артикулу, загрузку из файла, заказ по спецификации и grid-заказ, и как всё это связать с обменом 1С, откуда приходят единицы, упаковки и кратность. Материал из нашей практики разработки сайтов для B2B-компаний — по делу, без обещаний «гарантированного роста продаж».
Коротко
- Оптовый каталог считает товар не только в штуках, но и в упаковках, коробках, паллетах, килограммах и метрах — с коэффициентами пересчёта.
- Кратность задаёт шаг заказа (например, только по 12 штук), а минимальная партия — нижнюю границу; они действуют вместе.
- Весовой и метражный товар заказывают дробным количеством в своей единице — килограммах, литрах, погонных метрах.
- Остатки оптовику показывают по складам и с датой прихода, а не абстрактным «есть/нет».
- Заказ по спецификации, быстрый заказ по артикулу, загрузка из Excel и grid-заказ ускоряют оформление больших регулярных заказов.
- Единицы, упаковки и кратность обычно приходят из 1С обменом и раскладываются в свойства каталога — их не ведут вручную.
Чем оптовый каталог отличается от розничного
На первый взгляд и розничный, и оптовый каталог — это список товаров с картинками, ценами и кнопкой заказа. Но как только доходит до реальной оптовой отгрузки, различия становятся принципиальными. Розница оптимизирована под импульсную покупку одной штуки: чем меньше препятствий между «увидел» и «купил», тем лучше. Опт оптимизирован под регулярный планируемый заказ множества позиций с жёсткими правилами отгрузки. Это разные задачи, и каталог под них устроен по-разному.
Ключевые отличия оптового каталога от розничного:
- Не только штуки. Товар считают в упаковках, коробках, паллетах, а также в килограммах, литрах и метрах. Единица измерения — часть данных о товаре, а не деталь.
- Кратность и минимальная партия. Заказать можно не любое количество, а только кратное упаковке и не меньше минимума. Это ограничения, которых в рознице обычно нет.
- Цены по группам и объёму. Один товар имеет разные цены для разных клиентов и объёмов заказа, а не одну розничную цену.
- Остатки по складам. Оптовику важно, сколько товара и на каком складе, чтобы планировать отгрузку. «Есть в наличии» без цифр его не устраивает.
- Заказ списком. Оформляют не поштучным обходом каталога, а сразу спецификацией — по артикулам, из файла, повтором прошлого заказа.
- Скорость важнее витринности. Оптовику не нужны крупные карточки и галереи — ему нужна плотная таблица с быстрым вводом количества по многим позициям сразу.
Из этих отличий вытекает вся дальнейшая техника. Чтобы каталог считал упаковки, у товара должны быть заданы единицы и коэффициенты. Чтобы работала кратность — форма заказа должна её проверять. Чтобы заказ шёл списком — нужны быстрый заказ по артикулу, загрузка из файла и спецификация. И почти всё это опирается на данные, которые приходят из 1С. Дальше разберём каждый блок по порядку — от единиц измерения до обмена и типовых проблем.
Единицы измерения в опте
Фундамент оптового каталога — единицы измерения. В рознице единица почти всегда одна и подразумевается по умолчанию — штука. В опте единиц много, и они разные для разных товаров: метизы считают штуками и упаковками, кабель — метрами и бухтами, краску — литрами и вёдрами, сыпучие материалы — килограммами и мешками, плитку — квадратными метрами и коробками. Единица измерения — это не текст в описании, а параметр товара, от которого зависят цена, остаток, кратность и то, как товар кладут в корзину.
У товара в оптовом каталоге обычно различают несколько понятий единицы:
- Базовая единица измерения. То, в чём в принципе считают товар: штука, килограмм, метр, литр, квадратный метр. В ней задаётся цена и хранится остаток.
- Единица заказа (упаковка). То, чем товар реально отгружают: упаковка, коробка, паллет, бухта, мешок. Она связана с базовой через коэффициент.
- Единица отображения. То, что удобно показать в цене на витрине: «за штуку», «за метр», «за упаковку». Иногда совпадает с базовой, иногда — с упаковкой.
Смешение этих понятий — источник самых обидных ошибок. Если цена задана за килограмм, а количество в заказе считается в штуках, сумма получится бессмысленной. Если остаток хранится в метрах, а на витрине показывается «в наличии, шт.», оптовик неправильно спланирует заказ. Поэтому единицу измерения фиксируют один раз на уровне товара и используют сквозно — в цене, остатке, кратности и в форме заказа. В 1С-Битрикс за единицы отвечает справочник единиц измерения торгового каталога, а привязка к товару и к упаковкам — уже свойства и настройки конкретного товара.
Упаковки и коэффициенты: штука → коробка → паллет
Оптовая отгрузка почти всегда идёт упаковками, а не поштучно. Но упаковок у одного товара нередко несколько, вложенных друг в друга: штуки собраны в упаковку, упаковки — в коробку, коробки — на паллет. Чтобы каталог мог считать заказ в любой из этих единиц и правильно пересчитывать в штуки для склада и цены, у каждой упаковки задают коэффициент пересчёта — сколько базовых единиц она содержит.
Разберём на примере условного товара — крепёж «Саморез 4×50»:
| Единица | Содержит | Коэффициент к штуке |
|---|---|---|
| Штука | 1 саморез | 1 |
| Упаковка | Пакет саморезов | 100 |
| Коробка | Упаковок в коробке | 1 000 |
| Паллет | Коробок на паллете | 24 000 |
Коэффициенты позволяют оптовику заказывать в удобной ему единице, а системе — корректно всё пересчитывать. Клиент выбирает «2 коробки», а в заказ уходит 2 000 штук, цена считается от штуки (или от коробки, если так задано), а на складе видят понятную им единицу отгрузки. Обратный пересчёт тоже важен: если оптовик набрал 2 400 штук, система может показать это как «2 коробки и 4 упаковки», чтобы было ясно, как товар приедет.
Здесь важны два принципа. Первый: коэффициенты должны совпадать с реальной фасовкой на складе и в 1С — если в учётной системе упаковка это 100 штук, а на сайте задали 120, заказы будут расходиться с отгрузкой. Второй: цена и остаток считаются в одной базовой единице, а упаковки лишь умножают её. Тогда, в какой бы единице ни оформлялся заказ, склад и бухгалтерия видят согласованные цифры.
Кратность заказа
Кратность — это шаг, которым можно менять количество товара в заказе. Она напрямую следует из упаковки: если товар отгружают упаковками по 12 штук, то заказать можно 12, 24, 36, но не 15 и не 20. Кратность защищает от невозможных заказов — таких, которые нельзя собрать, не вскрывая упаковку. Для склада это критично: разорванная упаковка — это пересортица, лишний труд и ошибки в отгрузке.
Кратность работает на всех этапах оформления заказа, а не только в поле ввода количества:
- В поле количества. Стрелки «плюс/минус» меняют количество не на единицу, а на кратность — сразу на упаковку. Ручной ввод округляется до ближайшего кратного.
- В корзине. При изменении количества в корзине действует та же кратность — нельзя оставить в корзине некратный остаток.
- При загрузке спецификации. Количества из файла или списка артикулов проверяются на кратность и приводятся к ней с уведомлением.
- На сервере при оформлении. Финальная проверка перед созданием заказа — чтобы некратное количество не прошло ни одним обходным путём.
Разберём поведение формы на конкретных сценариях для товара с кратностью 12:
| Ввёл оптовик | Кратность | Что делает форма |
|---|---|---|
| 12 | 12 | Принимает как есть — ровно упаковка |
| 20 | 12 | Предлагает 12 или 24, подсказка о кратности |
| 24 | 12 | Принимает — две упаковки |
| 1 | 12 | Округляет вверх до 12 — минимум упаковка |
| 25 | 12 | Округляет до 24, поясняет остаток |
Ключевой принцип — кратность должна быть сквозной. Если она проверяется только в поле ввода на витрине, но не на сервере и не при загрузке из файла, некратное количество всё равно просочится через быстрый заказ, спецификацию или прямой запрос в корзину. Тогда его ловят уже на складе при сборке — с ручными правками и задержками. Поэтому кратность закладывают в товар как свойство и проверяют её на каждом пути попадания товара в заказ.
Минимальная партия
Минимальная партия — это нижняя граница заказа: сколько минимум товара нужно взять, чтобы отгрузка состоялась. Она бывает двух видов: минимум по конкретной позиции («этот товар — не менее 2 упаковок») и минимум по заказу в целом («заказ от определённой суммы или объёма»). Первый вид завязан на товар, второй — на правила оформления. Оба нужны, чтобы отсекать заведомо невыгодные микрозаказы, которые дешевле не отгружать.
Важно не путать минимальную партию с кратностью — это разные ограничения, которые часто действуют вместе:
| Параметр | Отвечает на вопрос | Пример |
|---|---|---|
| Кратность | Каким шагом набирать количество | Только по 12 штук |
| Минимальная партия (позиция) | Сколько минимум взять этого товара | Не менее 24 штук |
| Минимальный заказ (весь) | Ниже какого объёма заказ не оформить | От заданной суммы/объёма |
Комбинация «кратность + минимальная партия» встречается постоянно. Товар с кратностью 12 и минимальной партией 24 штуки означает: меньше двух упаковок не отгрузят, а набирать можно только целыми упаковками. Форма заказа проверяет оба условия одновременно — сначала округляет до кратного, потом сверяет с минимумом и, если нужно, поднимает количество до него. Оптовик видит понятную подсказку: «минимальный заказ — 2 упаковки (24 шт.), отгрузка кратно упаковке».
Минимальный заказ по всей корзине проверяют на этапе оформления: если сумма или объём ниже порога, система не даёт оформить заказ и объясняет, чего не хватает — «до минимального заказа добавьте товаров на такую-то сумму». Это лучше, чем молча блокировать кнопку: оптовик должен понимать, что именно поправить. Как и кратность, минимальную партию проверяют и на витрине, и на сервере, чтобы её нельзя было обойти через быстрый заказ или загрузку списком.
Весовой и метражный товар с дробным количеством
Не всё в опте считают целыми штуками. Кабель, ткань, трубы, металлопрокат меряют погонными метрами; краску, химию, ГСМ — литрами; сыпучие материалы, метизы «на вес» — килограммами; плитку, линолеум, утеплитель — квадратными метрами. Для такого товара единица измерения — не штука, а метр, литр, килограмм или квадратный метр, а количество в заказе может быть дробным: 2,5 кг, 0,75 л, 14,3 м. Оптовый каталог должен уметь это корректно принимать, считать и отгружать.
Чтобы дробное количество работало, у товара настраивают несколько вещей:
- Базовая единица. Метр, килограмм, литр, квадратный метр — то, в чём задана цена и хранится остаток.
- Точность количества. Сколько знаков после запятой допустимо: для веса обычно два (14,25 кг), для метража — один или два в зависимости от товара.
- Шаг ввода. Минимальный шаг, которым можно менять дробное количество: например, от 0,5 метра или от 0,1 килограмма.
Часто дробность сочетается с кратностью, и это нормально. Кабель отгружают бухтами по 50 метров: единица — метр, но кратность заказа — 50, поэтому взять можно 50, 100, 150 метров. Ткань режут от полуметра: единица — метр, шаг ввода — 0,5, кратности упаковки нет. Плитку продают коробками, но считают в квадратных метрах: единица — м², а коэффициент коробки задаёт, сколько метров в одной коробке. Каждый такой случай описывается сочетанием базовой единицы, точности, шага и, при необходимости, коэффициента упаковки.
Остатки по складам и наличие для опта
В рознице покупателю обычно достаточно знать «есть в наличии» — точное количество ему не нужно, он берёт одну-две штуки. Оптовику этого мало. Ему важно, сколько именно товара доступно и на каком складе, потому что от этого зависит объём заказа и сроки отгрузки. Заказать 500 штук того, чего на складе 300, — значит получить частичную поставку и сдвиг сроков. Поэтому в опте остатки показывают детальнее.
Что обычно показывают оптовику по наличию:
- Количество по складам. Не общий статус, а разбивка: столько-то на центральном складе, столько-то на региональном, столько-то в транзите.
- Дату ближайшего прихода. Если товара не хватает, важно, когда он появится: «в наличии 300, ещё 500 придёт к сроку».
- Единицу остатка. Остаток показывают в той же единице, что цену и заказ, — в штуках, метрах, килограммах, а не «в наличии, шт.» для метражного товара.
- Доступность под заказ. Отдельно отмечают позиции, которых нет на складе, но которые возят под заказ, с ориентировочным сроком.
Технически остатки по складам приходят из 1С обменом и раскладываются по складам торгового каталога Битрикса. На витрине их выводят так, как решил бизнес: либо точными цифрами по складам, либо диапазонами и статусами. Точные цифры удобнее оптовику для планирования, но некоторые компании не раскрывают их конкурентам и показывают «много / мало / под заказ», сохраняя детализацию для менеджера в личном кабинете. Это бизнес-решение, а техника одна: каталог хранит остатки по складам, а шаблон решает, в каком виде их показать конкретной группе клиентов.
Важно, чтобы наличие было согласовано с кратностью и упаковками. Если остаток 250 штук, а кратность 100, реально доступно к заказу 200 штук (две упаковки) — и хорошо, когда каталог это учитывает, а не предлагает заказать 250, которые нельзя собрать целыми упаковками. Такие тонкости отличают продуманный оптовый каталог от формально «настроенного».
Быстрый заказ по артикулу
Оптовик редко «гуляет» по каталогу — он обычно знает, что ему нужно, и оперирует артикулами. Поэтому один из главных инструментов оптового каталога — быстрый заказ по артикулу: поле, куда закупщик вводит артикул и количество, а система мгновенно находит товар, подставляет цену и остаток и добавляет позицию в заказ. Это в разы быстрее, чем искать каждый товар через категории и фильтры.
Хороший быстрый заказ по артикулу устроен так:
- Поиск по мере ввода. Оптовик набирает артикул или его часть, и система подсказывает совпадения — с названием, ценой и остатком, чтобы не ошибиться позицией.
- Ввод количества с проверкой. Рядом с найденным товаром сразу поле количества с учётом кратности и минимальной партии — количество приводится к допустимому.
- Добавление в список. Позиция уходит в формируемый заказ, поле очищается, можно вводить следующий артикул — работа идёт потоком.
- Строчный ввод. Часто добавляют возможность вставить сразу несколько строк «артикул — количество» и разобрать их пачкой, а не по одной.
Быстрый заказ по артикулу тесно связан с загрузкой из файла и заказом по спецификации — это ступени одного и того же сценария «заказ списком». Ввод по одному артикулу удобен для небольших дозаказов, загрузка файла — для больших регулярных заказов. Детально этот сценарий, вместе с обработкой ошибок распознавания артикулов, мы разбираем в отдельной статье про быстрый заказ по артикулу и загрузку из Excel в B2B — она хорошо дополняет этот материал.
Загрузка заказа из Excel и CSV
Когда в заказе десятки и сотни позиций, вводить их по одной — даже по артикулу — долго. Поэтому в оптовом каталоге почти всегда есть загрузка заказа из файла: оптовик готовит таблицу «артикул — количество» в Excel или CSV (часто выгружая её из своей учётной программы), загружает файл, и система собирает из него готовую корзину. Это основной способ оформления крупных регулярных заказов.
Что происходит при загрузке файла, по шагам:
- Разбор файла. Система читает столбцы «артикул» и «количество», допуская распространённые форматы Excel и CSV и разные разделители.
- Сопоставление по артикулу. Каждая строка ищется в каталоге по артикулу; найденные товары подставляются с ценой и остатком.
- Проверка кратности и минимума. Количества приводятся к кратности и минимальной партии, о правках оптовик уведомляется построчно.
- Отчёт о нераспознанном. Строки, где артикул не найден или количество некорректно, выносятся отдельно — чтобы оптовик их поправил, а не потерял.
- Сборка корзины. Из распознанных строк формируется заказ, который оптовик проверяет и подтверждает.
Критично важен именно понятный отчёт о том, что не распозналось. Если система молча выкидывает ненайденные позиции, оптовик оформит неполный заказ и заметит это поздно. Правильная загрузка показывает: столько-то строк распознано, столько-то требуют внимания (артикул не найден, количество исправлено на кратное), и даёт их поправить до оформления. Тогда загрузка из файла экономит время, а не создаёт скрытые ошибки. Про форматы файлов, сопоставление артикулов и обработку ошибок подробно — в статье про быстрый заказ и загрузку из Excel.
Заказ по спецификации
Заказ по спецификации — это обобщение всех предыдущих сценариев: оформление заказа сразу по готовому списку позиций, откуда бы этот список ни пришёл. Спецификация — это набор строк «товар — количество», который оптовик уже держит в голове или в файле: перечень для проекта, стандартный набор для точки продаж, повтор прошлой поставки. Заказ по спецификации превращает этот список в готовую корзину за один шаг, а не за сотню обходов каталога.
Источники спецификации бывают разные, и хороший каталог поддерживает несколько:
| Источник спецификации | Как попадает в заказ | Когда удобно |
|---|---|---|
| Файл Excel/CSV | Загрузка «артикул — количество» | Большой регулярный заказ из учёта |
| Ввод списком | Вставка строк «артикул — кол-во» | Средний заказ по памяти |
| Прошлый заказ | Повтор с правкой количеств | Периодическая закупка |
| Сохранённый шаблон | Готовый набор позиций | Стандартная поставка на точку |
Что бы ни было источником, механика одинаковая: система берёт список артикулов с количествами, находит товары в каталоге, подставляет актуальные цены (по группе клиента) и остатки, проверяет кратность и минимальную партию, а спорные строки выносит на проверку. На выходе — заполненная корзина, где оптовик видит итог, правит при необходимости и подтверждает. Это и есть суть B2B-оформления: минимум ручной работы над каждой позицией, максимум контроля над итогом.
Заказ по спецификации особенно ценен, когда номенклатура большая и стабильная, а заказы повторяются. Закупщик оптовой точки не хочет каждую неделю заново искать двести позиций — он хочет взять свой список, обновить количества и отправить. Хорошо сделанный заказ по спецификации превращает эту рутину в несколько минут работы, и именно за это оптовики ценят удобный B2B-каталог выше «красивой» розничной витрины.
Шаблоны и повтор заказов
Оптовые закупки почти всегда повторяются: та же точка продаж каждую неделю берёт похожий набор, тот же подрядчик регулярно докупает расходники. Заставлять оптовика каждый раз собирать заказ заново — значит терять его время и провоцировать ошибки. Поэтому оптовый каталог дополняют шаблонами и повтором заказов — инструментами, которые превращают регулярную закупку в пару кликов.
Два основных механизма здесь такие:
- Повтор прошлого заказа. В истории заказов у каждого — кнопка «повторить»: система берёт позиции старого заказа, подставляет актуальные цены и остатки, проверяет доступность и кратность и формирует новую корзину. Оптовик правит количества и оформляет.
- Сохранённые шаблоны. Оптовик собирает список часто заказываемых позиций и сохраняет его как шаблон («заказ на точку №1», «расходники»). Потом добавляет весь шаблон в корзину одним действием и меняет количества под текущую потребность.
При повторе заказа важно аккуратно обработать изменения, которые произошли с момента прошлой закупки: часть товаров могла подорожать, часть — закончиться или сняться с производства, у части могла измениться кратность. Хороший повтор не молча подставляет старое, а показывает, что изменилось: «две позиции недоступны», «у одной изменилась цена», «количество приведено к новой кратности». Тогда оптовик оформляет корректный актуальный заказ, а не копию устаревшего.
Шаблоны и повтор заказов естественно живут в личном кабинете, вместе с историей, документами и персональными ценами. Как устроен такой кабинет и что в нём собрать, мы разбираем в рамках услуги B2B-порталов и личных кабинетов — заказ по спецификации, шаблоны и повтор там становятся частью рабочего места закупщика.
Таблица-прайс с быстрым вводом (grid-заказ)
Розничная витрина с крупными карточками и галереями оптовику не нужна — она замедляет работу. Ему удобнее grid-заказ: плотная таблица-прайс, где в каждой строке товар, цена, остаток и поле количества, а внизу — итог и кнопка оформления. Оптовик проходит по строкам, проставляет количества сразу по многим позициям и оформляет весь набор одним действием. Это ближе к тому, как он привык работать с прайсом поставщика в Excel.
Что делает grid-заказ удобным для опта:
- Плотность. Много позиций на экране без прокрутки к каждой карточке — как в прайс-листе, а не как в розничной сетке товаров.
- Поле количества в строке. Ввод прямо в таблице с учётом кратности и минимальной партии, без перехода в карточку товара.
- Живой итог. Сумма и объём пересчитываются по мере ввода — оптовик видит, набрал ли он минимальный заказ.
- Фильтры и поиск. Быстрое сужение таблицы по категории, бренду, наличию — чтобы работать с нужной частью прайса.
- Единицы и остатки в строке. Рядом с количеством — единица (шт., м, кг), кратность и остаток по складам, чтобы решение принималось на месте.
Grid-заказ, заказ по спецификации и загрузка из файла — это по сути три интерфейса одной идеи: оформить много позиций сразу. Grid удобен, когда оптовик работает с прайсом на витрине и выбирает по ходу; спецификация и загрузка — когда список уже готов заранее. Развитый оптовый каталог даёт все три способа, потому что разным закупщикам и разным заказам удобны разные пути. Общий знаменатель у них один — везде проверяются единицы, кратность, минимальная партия и цена по группе клиента.
Цены в grid-таблице, к слову, тоже зависят от того, кто смотрит: оптовик видит свою цену по группе, а не абстрактную. Как настроить цены по группам клиентов и объёму, чтобы в grid и спецификации подставлялась правильная цена, подробно разобрано в статье про оптовые цены по группам в 1С-Битрикс.
Характеристики, важные для B2B
Набор характеристик, которые показывают в карточке, у опта и розницы разный. Розничного покупателя интересуют внешний вид, бренд, эмоции; оптового закупщика — параметры, по которым он подбирает и сверяет товар: артикул, единица, фасовка, технические свойства. Оптовый каталог выносит на первый план именно рабочие характеристики, а «продающие» отходят на второй план.
Характеристики, которые для B2B важны особенно:
- Артикул и код. Главный идентификатор для оптовика — по нему он ищет, заказывает и сверяет позиции. Артикул должен быть виден и на витрине, и в поиске.
- Единица измерения и фасовка. В чём считают товар и как он упакован — штука/упаковка/коробка с количеством. Без этого нельзя оценить заказ.
- Кратность и минимальная партия. Условия отгрузки прямо в карточке, чтобы закупщик сразу понимал, как заказывать.
- Технические параметры. Размер, вес, материал, мощность, класс — то, по чему подбирают аналоги и проверяют совместимость.
- Остаток по складам. Наличие с детализацией и сроком прихода — часть решения о заказе.
- Аналоги и сопутствующие. Чем заменить, если позиции нет, и что докупить в комплект — экономит время закупщика.
Технически всё это — свойства товара в инфоблоке каталога, часть из которых приходит из 1С, часть ведётся на сайте. Задача — не свалить их в кучу, а расставить по важности для оптовика: артикул, единица, фасовка и условия отгрузки — на видном месте, технические параметры — в структурированной таблице характеристик, по которой удобно сверять и фильтровать. Хорошо структурированные характеристики делают grid-заказ и поиск по артикулу по-настоящему быстрыми.
Обмен с 1С: единицы, упаковки, кратность
Почти всё, о чём шла речь выше — единицы измерения, упаковки с коэффициентами, кратность, минимальные партии, остатки по складам, — в реальном B2B-проекте ведут не на сайте вручную, а в 1С и передают на сайт обменом. Это логично: товароучёт и так живёт в учётной системе, где у номенклатуры заданы единицы, фасовки и склады. Дублировать эти справочники на сайте — значит плодить расхождения. Поэтому оптовый каталог на сайте — это во многом «проекция» данных из 1С.
Как параметры оптового каталога приходят из 1С:
- Единица измерения. Базовая единица номенклатуры (штука, кг, метр, литр) выгружается вместе с товаром и сопоставляется с единицами торгового каталога Битрикса.
- Упаковки и коэффициенты. Фасовки товара — упаковка, коробка, паллет с количеством базовых единиц — передаются как характеристики упаковок.
- Кратность и минимальная партия. Условия отгрузки, заданные в учёте, раскладываются в свойства товара, которые использует форма заказа.
- Остатки по складам. Количество по каждому складу приходит обменом и раскладывается по складам каталога.
- Цены по типам. Оптовые и дилерские цены выгружаются как типы цен и привязываются к группам клиентов уже на сайте.
Обмен идёт по формату CommerceML — стандарту выгрузки товаров и заказов между 1С и сайтом. Задача разработки — правильно сопоставить поля обмена со свойствами каталога: чтобы единица «приехала» в единицу, коэффициент упаковки — в коэффициент, кратность — в кратность, а не в произвольное текстовое свойство. Если сопоставление сделано небрежно, единицы и упаковки попадут в товар как обычный текст и не будут работать в корзине — форма заказа их «не увидит». Общую механику обмена, настройку выгрузки и типовые проблемы синхронизации мы разбираем в статье про интеграцию магазина с 1С.
Реализация: каталог и свойства единиц
Перейдём к тому, как оптовый каталог собирается технически. Основа — инфоблок каталога в 1С-Битрикс с включённым торговым каталогом, поверх которого настраиваются единицы, упаковки, цены и склады. Единицы измерения хранятся в справочнике единиц торгового каталога, а привязка товара к единице, коэффициенты упаковок и кратность — это свойства и настройки конкретного товара.
Что настраивают на уровне каталога и свойств:
- Справочник единиц. Заводят все нужные единицы измерения — штука, упаковка, коробка, паллет, метр, килограмм, литр, квадратный метр — как основу для товаров.
- Базовая единица товара. У каждого товара указывают базовую единицу, в которой задаётся цена и хранится остаток.
- Свойства упаковок. Заводят свойства под коэффициенты упаковок (сколько базовых единиц в упаковке, коробке, паллете), чтобы форма заказа могла пересчитывать.
- Кратность и минимум. Добавляют свойства кратности заказа и минимальной партии — их будет проверять форма и корзина.
- Точность количества. Для весового и метражного товара включают дробную точность и шаг ввода.
- Склады и остатки. Настраивают склады торгового каталога, чтобы остатки раскладывались по ним из обмена.
Ключевое решение на этом этапе — как именно хранить упаковки и кратность: штатными механизмами торгового каталога, где это поддерживается, или дополнительными свойствами товара, которые обрабатывает кастомная логика. Выбор зависит от сложности фасовок и от того, что приходит из 1С. Простые случаи (одна упаковка, одна кратность) ложатся на штатные поля; сложные (несколько вложенных упаковок, разные условия для разных групп) обычно требуют собственных свойств и обработчиков. В любом случае свойства единиц проектируют так, чтобы они заполнялись из обмена автоматически, а не руками.
Кастомная форма заказа
Свойства единиц, упаковок и кратности сами по себе ничего не делают — их должна использовать форма заказа. Стандартная розничная форма «количество плюс-минус штука» для опта не годится: она не знает про упаковки, не проверяет кратность и минимальную партию, не умеет работать со списком позиций. Поэтому оптовый каталог почти всегда получает кастомную форму заказа — на карточке, в grid-таблице и в спецификации.
Что делает оптовая форма заказа поверх стандартной:
- Меняет количество упаковкой. Кнопки «плюс/минус» шагают на кратность, а не на единицу; можно выбрать единицу заказа (штуки/упаковки/коробки) с автоматическим пересчётом.
- Проверяет кратность и минимум. Ручной ввод приводится к кратному и к минимальной партии, оптовику показывается подсказка о правках.
- Работает со списком. Принимает ввод по артикулу, вставку строк, загрузку файла и формирует корзину пачкой, а не по одной позиции.
- Учитывает единицу и дробность. Для весового и метражного товара принимает дробное количество с нужной точностью и шагом.
- Показывает пересчёт. Рядом с количеством — во сколько упаковок/коробок это складывается и какая выходит сумма по цене группы.
Критически важно, чтобы все проверки — кратность, минимальная партия, доступность по остатку, единица — дублировались на сервере, а не жили только в JavaScript формы. Клиентская проверка удобна для мгновенной подсказки оптовику, но она не защита: через загрузку файла, прямой запрос или ошибку интерфейса некорректное количество может попасть в заказ. Серверная проверка при добавлении в корзину и при оформлении — последний рубеж, который гарантирует, что в заказ не пройдёт некратное количество или объём ниже минимума. Это ровно тот принцип, что делает оптовую форму заказа надёжной, а не «красивой на витрине».
Частые проблемы кратности и единиц
Оптовый каталог ломается предсказуемо — почти всегда на стыке единиц, упаковок и кратности. Разберём самые частые проблемы и их причины, чтобы вы узнавали их заранее.
Заказали количество не кратно упаковке. Самая частая жалоба склада: в заказе 20 штук при упаковке 12. Причина почти всегда одна — кратность задана в товаре, но не проверяется на всех путях попадания в заказ. На витрине поле, может, и округляет, но через быстрый заказ, загрузку файла или старую корзину некратное количество проходит. Лечится сквозной серверной проверкой кратности.
Неверная единица измерения. Цена задана за килограмм, а количество считается в штуках; или остаток в метрах, а на витрине «шт.». Итог — бессмысленная сумма заказа и неправильное планирование. Причина — единица не зафиксирована как базовая и разъезжается между ценой, остатком и заказом. Лечится дисциплиной единицы: одна базовая единица на товар, всё считается в ней.
Коэффициент упаковки не совпадает с 1С. На сайте упаковка — 100 штук, в учёте — 120. Заказ на сайте расходится с отгрузкой, склад собирает не то. Причина — коэффициенты завели вручную и не синхронизировали с обменом. Лечится тем, что упаковки приходят из 1С, а не вводятся руками.
Дробное количество не принимается. Метражный товар нельзя заказать на 2,5 метра — форма требует целое. Причина — не включена дробная точность количества для товара. Лечится настройкой точности и шага ввода на весовом и метражном товаре.
Остаток не учитывает упаковки. Каталог предлагает заказать 250 штук при кратности 100, хотя целыми упаковками доступно 200. Причина — наличие показывается «в лоб», без согласования с кратностью. Лечится тем, что доступное к заказу количество считают с учётом упаковки.
Общий знаменатель всех этих проблем — единицы, упаковки и кратность настроены не сквозно: где-то заданы, где-то нет, где-то ведутся руками вместо обмена. Надёжный оптовый каталог собирают так, чтобы эти параметры шли из единого источника (1С) и проверялись на каждом этапе — от поля ввода до серверного оформления заказа.
Реализация оптового каталога пошагово
Соберём всё вместе в понятную последовательность. Названия пунктов меню могут отличаться в зависимости от версии и редакции платформы, но порядок общий: от данных о товаре к форме заказа и обмену.
- Настройте единицы и упаковки. Заведите справочник единиц, задайте базовую единицу каждого товара и свойства коэффициентов упаковок — штука, упаковка, коробка, паллет.
- Задайте кратность и минимум. Добавьте свойства кратности заказа и минимальной партии; для весового и метражного товара включите дробную точность и шаг.
- Настройте склады и остатки. Заведите склады торгового каталога, решите, как показывать наличие оптовику — точными цифрами или статусами.
- Настройте цены по группам. Заведите оптовые и дилерские типы цен и привяжите их к группам клиентов, чтобы в grid и спецификации подставлялась своя цена.
- Сделайте кастомную форму заказа. Научите её шагать упаковкой, проверять кратность и минимум, принимать дробное количество и работать со списком позиций.
- Добавьте заказ списком. Быстрый заказ по артикулу, загрузку из Excel/CSV, заказ по спецификации, grid-таблицу, шаблоны и повтор заказов — способы оформить много позиций сразу.
- Настройте обмен с 1С. Сопоставьте поля обмена со свойствами каталога: единицы, коэффициенты упаковок, кратность, минимум, остатки по складам, цены по типам.
- Продублируйте проверки на сервере. Кратность, минимальную партию, единицу и доступность проверяйте при добавлении в корзину и оформлении, а не только в поле ввода.
- Проверьте на реальных заказах. Прогоните типичные сценарии — упаковки, дробный вес, загрузку файла, повтор — и сверьте, что заказ на сайте совпадает с тем, как товар реально отгружают.
Последний шаг критичен и его часто пропускают. Оптовый каталог легко «выглядит настроенным» в админке, но на реальных заказах ведёт себя не так: некратное количество проходит, весовой товар считается в штуках, коэффициент упаковки расходится с 1С. Проверка на живых сценариях, вместе со сверкой с отгрузкой на складе, ловит это до того, как ошибку заметит клиент или бухгалтерия.
Частые ошибки
Эти промахи в оптовом каталоге повторяются чаще всего — зная их, вы избежите расхождений заказа с отгрузкой:
- Кратность не проверяется на сервере. На витрине округляется, но через быстрый заказ и загрузку файла некратное количество проходит и всплывает на складе.
- Единица не зафиксирована. Цена в одной единице, количество и остаток — в другой. Сумма заказа получается бессмысленной.
- Упаковки завели вручную. Коэффициенты не синхронизированы с 1С и расходятся с реальной фасовкой — заказ не совпадает с отгрузкой.
- Нет дробного количества. Весовой и метражный товар нельзя заказать на 2,5 кг или 14,3 м — форма требует целое.
- Остаток без складов. Оптовику показывают абстрактное «в наличии» без цифр и складов — он не может спланировать объём и сроки.
- Только поштучный заказ. Нет заказа по спецификации, загрузки из файла и grid-таблицы — крупный заказ приходится собирать вручную, оптовик уходит.
- Загрузка молча теряет строки. Ненайденные артикулы выкидываются без отчёта, оптовик оформляет неполный заказ и замечает поздно.
- Свойства не приходят из обмена. Единицы и кратность «приезжают» из 1С как текст в произвольное поле и не работают в форме заказа.
Чек-лист
Короткий список для приёмки оптового каталога перед запуском:
- Единицы заданы. У каждого товара есть базовая единица, в которой считаются цена, остаток и кратность.
- Упаковки с коэффициентами. Фасовки (упаковка, коробка, паллет) заданы коэффициентами и совпадают с 1С.
- Кратность и минимум работают. Количество приводится к кратности и минимальной партии, проверка есть и на сервере.
- Дробность включена. Весовой и метражный товар заказывается дробным количеством с нужной точностью и шагом.
- Остатки по складам. Наличие показано по складам (или статусами) и согласовано с упаковками.
- Заказ списком доступен. Есть быстрый заказ по артикулу, загрузка из Excel/CSV, заказ по спецификации и grid-таблица.
- Шаблоны и повтор. Оптовик может сохранить набор и повторить прошлый заказ с актуализацией цен и остатков.
- Обмен настроен. Единицы, упаковки, кратность, остатки и цены приходят из 1С в нужные свойства, а не в текст.
- Проверено на заказах. Типовые сценарии прогнаны, заказ на сайте совпадает с реальной отгрузкой.
Вывод
Оптовый каталог на 1С-Битрикс — это не «розница с оптовыми ценами», а отдельная конфигурация, где товар считают в единицах и упаковках с коэффициентами, заказ идёт кратно упаковке и не ниже минимальной партии, весовой и метражный товар берут дробным количеством, остатки показывают по складам, а оформляют заказ списком — по артикулу, из Excel, по спецификации, через grid-таблицу, повтором и шаблоном. Всё это опирается на данные, которые приходят из 1С обменом, и на кастомную форму заказа, которая эти данные использует.
Главный принцип — сквозная дисциплина единиц и кратности. Одна базовая единица на товар, упаковки как коэффициенты к ней, кратность и минимум, проверяемые на каждом пути в заказ, включая сервер, и все эти параметры — из единого источника, а не заведённые руками. Тогда заказ на сайте совпадает с реальной отгрузкой, склад не ловит некратные количества, а бухгалтерия — неверные суммы. Разобрать конкретный сценарий под ваш товароучёт и правила отгрузки можно в рамках нашей услуги — начните с сайта для B2B-компании или изучите смежные материалы в рубрике «B2B и опт».