Отрасли 24 мин чтения

Цифровизация оптовой базы и дистрибьютора 2026: B2B-кабинет, прайсы, остатки, заказы

Опт теряет деньги на ручных заказах через менеджеров, неактуальных прайсах и неликвидах на складе. Полный IT-стек 2026: B2B-кабинет самообслуживания, индивидуальные прайсы, остатки в реальном времени, заказы 24/7, кредитные лимиты и дебиторка, интеграция с 1С, ЭДО (Диадок, СБИС), ABC/XYZ-анализ, приложение торгпреда. С кодом B2B-API и ABC-анализа ассортимента.

оптдистрибуцияB2BЭДО

Коротко (TL;DR)

  • Оптовая база 2026 — это не склад с прайсом в Excel, а B2B-платформа самообслуживания. Клиент-юрлицо хочет заказывать ночью, видеть свою цену и остаток в реальном времени, без звонка менеджеру.
  • B2B-кабинет — ядро цифровизации опта: индивидуальные прайсы по ценовым категориям, кредитные лимиты, остатки с учётом резерва, повторные заказы в один клик.
  • Интеграция с 1С — обязательна. Товары, цены, остатки, документы (счёт, УПД, накладная) синхронизируются автоматически, без ручного переноса.
  • ЭДО (Диадок, СБИС) закрывает документооборот: УПД и накладные подписываются ЭЦП за минуты, а не курьером за неделю.
  • Бюджеты 2026: малый опт 15-40 тыс./мес; средний дистрибьютор 300-800 тыс. разово + 60-150 тыс./мес; федеральная сеть от 2-5 млн разово + 200-500 тыс./мес.

Опт и дистрибуция РФ 2026 — рынок и B2B-специфика

Оптовая торговля и дистрибуция — это кровеносная система экономики, которую почти не видно конечному покупателю. По разным оценкам в РФ работают десятки тысяч оптовых компаний и дистрибьюторов: от региональных баз с парой складов до федеральных дистрибьюторов FMCG с логистикой на всю страну. И именно здесь, на B2B-стыке, цифровизация в 2026 году даёт самый быстрый и измеримый эффект.

За последние годы я работал с разными форматами: региональная база стройматериалов, дистрибьютор продуктов питания на три области, оптовик автозапчастей, поставщик электротехники для розничных сетей и небольшая база бытовой химии. Везде специфика B2B одна и та же, и она радикально отличается от розницы.

Первая особенность — клиент это юрлицо или ИП, а не физлицо с импульсивной покупкой. Решение о закупке принимает закупщик, который сравнивает условия у трёх-пяти поставщиков. Его интересует не «красивая витрина», а цена именно для его компании, наличие на складе прямо сейчас, отсрочка платежа и скорость отгрузки. Эмоций нет, есть холодный расчёт.

Вторая особенность — индивидуальные прайсы. В рознице цена одна для всех. В опте у каждого клиента может быть своя цена: сеть из 40 магазинов получает одну цену, маленький ИП — другую, а постоянный клиент с большим оборотом — третью. Управлять этим вручную в Excel — путь к ошибкам и потерям маржи.

Третья особенность — кредитные лимиты и дебиторка. В опте почти всегда работают с отсрочкой платежа: клиент берёт товар, платит через 14, 30, 60 дней. У каждого клиента свой кредитный лимит. Если не контролировать дебиторку в реальном времени, легко отгрузить товар тому, кто уже должен миллион и не платит.

Четвёртая особенность — большие остатки и их движение. На складе оптовика могут быть тысячи и десятки тысяч SKU. Остаток меняется каждую минуту: пришла поставка, ушла отгрузка, что-то зарезервировано под заказ, который ещё не отгружен. Клиент должен видеть не просто «остаток», а «доступно к заказу» — то есть остаток минус резерв.

Пятая особенность — повторные заказы. В рознице каждая покупка уникальна. В опте 70-80% заказов — это повторение прошлых: магазин дозаказывает то же, что и неделю назад. Если клиент должен каждый раз искать сто позиций заново — он уйдёт туда, где можно повторить заказ в один клик.

Главный вывод, который я вынес из всех проектов: в опте побеждает не тот, у кого ниже цена, а тот, у кого удобнее и быстрее заказывать. B2B-кабинет с самообслуживанием экономит время закупщика — а время в B2B это деньги.

B2B-личный кабинет клиента (самообслуживание)

B2B-кабинет — это ядро всей цифровизации опта. Это закрытый раздел сайта или отдельный портал, куда клиент-юрлицо заходит под своим логином и видит персонализированную картину: свои цены, свои остатки, свою историю заказов, свою дебиторку и свои документы.

Принципиальное отличие от обычного интернет-магазина — всё персонализировано под конкретный договор. Два клиента, зашедшие в один и тот же кабинет, видят разные цены на один и тот же товар. Один видит, что у него осталось 200 тыс. ₽ кредитного лимита, другой — что он в минусе и отгрузка заблокирована.

Что обязательно должно быть в B2B-кабинете 2026:

Каталог с персональными ценами. Клиент видит товары со своей ценой, а не с базовой. Фильтры по категориям, брендам, наличию. Поиск по артикулу и наименованию — закупщики ищут по своим внутренним кодам.

Остатки в реальном времени. Не «есть/нет», а конкретное число доступного к заказу, с учётом резервов под другие заказы. И срок поступления, если товара нет, но он в пути.

Корзина и оформление заказа 24/7. Закупщик формирует заказ ночью, в выходной, без звонка менеджеру. Заказ сразу попадает в 1С и резервирует товар.

Финансовый блок. Текущая дебиторка, кредитный лимит, доступный остаток лимита, акты сверки, график платежей. Прозрачность, которая снимает половину звонков в бухгалтерию.

Документы. Счета, накладные, УПД — всё доступно для скачивания и подписания через ЭДО прямо в кабинете.

По моему опыту, грамотный B2B-кабинет снимает с менеджеров 50-70% рутины: приём заказов, ответы на «а сколько у вас на складе», «а какая у меня цена», «пришлите счёт ещё раз». Менеджеры начинают заниматься продажами, а не диспетчеризацией.

Индивидуальные прайсы и ценовые категории

Ценообразование — самая сложная и самая денежная часть опта. Ошибка в прайсе на 2% при обороте в сотни миллионов — это потерянные миллионы маржи или потерянные клиенты.

В реальности система цен в опте строится по уровням. Базовая цена — отправная точка. Ценовые категории — группы клиентов с одинаковыми условиями (например, «Розница», «Опт», «Крупный опт», «Сеть»). Индивидуальные цены — персональные условия для конкретных клиентов поверх категории. Акционные цены — временные скидки на отдельные позиции или категории товаров.

Правильная архитектура — когда цена для клиента рассчитывается каскадом: берём базовую, применяем скидку ценовой категории, накладываем индивидуальную скидку клиента, проверяем акции, и если действует акционная цена ниже — отдаём её. Всё это должно считаться автоматически и приходить из 1С.

Тип ценыКомуПример скидкиГде задаётся
Базовая (РРЦ)основа расчёта0%1С, карточка номенклатуры
Ценовая категориягруппа клиентов5-15%1С, вид цены на группу
Индивидуальнаяконкретный клиент+3-10%1С, соглашение с клиентом
Объёмная (от количества)при заказе от N штук/паллет+2-7%1С, ценовые условия
Акционнаявсе или сегмент, временно10-30%1С/маркетинг, срок действия

Важный нюанс — клиент в B2B-кабинете не должен видеть чужие цены и тем более механику скидок. Он видит только свою итоговую цену. Прозрачность скидочной матрицы для клиента — это прямой путь к торгу и сливу маржи.

Ещё одна частая боль — разные единицы измерения. Один клиент заказывает паллетами, другой коробками, третий штуками. Прайс должен корректно пересчитывать цену по упаковкам и не давать заказать «полпаллеты», если товар отгружается только целыми паллетами.

Остатки в реальном времени (резерв, доступно)

Остатки — это то, на чём оптовики чаще всего обжигаются. Классическая ситуация: клиент заказал товар, который «был на складе», а по факту его уже зарезервировали под другой заказ. Итог — сорванная отгрузка, недовольный клиент, разбор полётов.

Правильная модель остатка в опте — это не одно число, а три. Физический остаток — сколько реально лежит на складе. Резерв — сколько зарезервировано под уже принятые, но не отгруженные заказы. Доступно к заказу — физический остаток минус резерв. Клиент в кабинете должен видеть именно «доступно», а не «физический».

Дополнительно стоит показывать «ожидается» — товар, который в пути от поставщика, с датой поступления. Это позволяет клиенту оформить предзаказ и не уходить к конкуренту из-за временного отсутствия позиции.

Технически остатки должны синхронизироваться из 1С в B2B-кабинет либо в реальном времени через API, либо с минимальной задержкой (обмен раз в 5-15 минут). Если клиент видит остаток вчерашней давности — это хуже, чем не видеть вообще, потому что создаёт ложные ожидания.

Отдельная тема — мультискладность. У дистрибьютора может быть центральный склад и несколько региональных. Клиент должен видеть либо суммарный доступный остаток, либо остаток по своему ближайшему складу, в зависимости от логики отгрузок. Это настраивается под бизнес-процесс.

Приём заказов 24/7 (без менеджера)

Главная экономическая выгода B2B-кабинета — приём заказов без участия менеджера. В классической схеме закупщик звонит или пишет менеджеру, тот вручную заносит заказ в 1С, проверяет остатки, выставляет счёт. На один заказ уходит 15-40 минут рабочего времени менеджера.

В цифровой схеме закупщик сам формирует заказ в кабинете в любое время суток. Заказ автоматически проверяется: хватает ли остатка, не превышен ли кредитный лимит, корректны ли цены. Если всё в порядке — заказ резервирует товар и улетает в 1С. Менеджер видит готовый заказ и занимается только нестандартными ситуациями.

Что должна проверять система при приёме заказа:

Наличие. Доступно ли заказанное количество. Если нет — предложить доступное или поставить в предзаказ.

Кредитный лимит. Не превысит ли заказ доступный лимит клиента. Если превысит — заблокировать или потребовать предоплату.

Минимальную сумму заказа. Многие оптовики не отгружают заказы меньше определённой суммы — это нерентабельно по логистике.

Кратность упаковки. Нельзя заказать 7 штук, если товар идёт коробками по 12.

По моим наблюдениям, после запуска кабинета доля заказов, оформленных клиентами самостоятельно, за 3-6 месяцев доходит до 60-80%. Это значит, что компания может либо сократить нагрузку на отдел продаж, либо тем же составом обработать вдвое больше клиентов.

Повторные заказы и шаблоны (быстрый дозаказ)

Я уже упоминал, что в опте 70-80% заказов — это повторения. Поэтому функция быстрого повторного заказа — не приятное дополнение, а критически важный инструмент удержания клиента.

Базовая механика — кнопка «Повторить заказ» в истории. Клиент открывает прошлый заказ, нажимает кнопку, система переносит все позиции в корзину с актуальными ценами и остатками. Если чего-то нет в наличии — подсвечивает. Закупщик за минуту корректирует количество и оформляет.

Более продвинутая механика — шаблоны заказов. Клиент создаёт несколько шаблонов: «Еженедельный дозаказ», «Сезонный ассортимент», «Топ-позиции». Каждый шаблон — это сохранённый список товаров. Перед оформлением клиент просто проставляет количества.

Ещё мощнее — автозаказ по расписанию или по остаткам. Для крупных регулярных клиентов можно настроить автоматическое формирование черновика заказа: каждый понедельник система создаёт заказ по шаблону и присылает закупщику на подтверждение. Это превращает разовую продажу в подписочную модель.

Отдельно стоит упомянуть быстрый ввод по артикулам. Опытный закупщик не хочет листать каталог — он хочет вставить список артикулов с количествами и сразу получить корзину. Поле «быстрый заказ», куда можно вставить таблицу из Excel, экономит закупщику десятки минут и резко повышает лояльность.

Кредитные лимиты и дебиторка

Работа с отсрочкой платежа — норма в опте, но именно она убивает компании при плохом контроле. Я видел оптовиков, у которых дебиторка достигала трёх месячных оборотов, и половина её была безнадёжной. Цифровизация финансового блока — это в первую очередь защита от кассового разрыва.

Кредитный лимит — это максимальная сумма, на которую клиент может взять товар без оплаты. Он задаётся индивидуально, исходя из истории платежей, оборота, надёжности. Система должна в реальном времени отслеживать использованный лимит и блокировать отгрузку при его превышении.

Важно различать понятия. Кредитный лимит — общая разрешённая сумма долга. Текущая задолженность — сколько клиент должен прямо сейчас. Доступный лимит — разница между ними. Просроченная задолженность — долг, по которому прошёл срок оплаты.

В B2B-кабинете клиент должен видеть свою финансовую картину сам: текущий долг, доступный лимит, ближайшие платежи, просрочку. Это снимает массу звонков «а сколько я вам должен» и дисциплинирует — когда долг виден, его охотнее гасят.

Со стороны компании нужен дашборд дебиторки для финансиста: ранжирование клиентов по сумме долга и по просрочке, автоматические напоминания о приближении срока оплаты, эскалация при просрочке. ABC-анализ дебиторки помогает понять, где сосредоточен основной риск.

Хорошая практика — автоматическая блокировка отгрузок при просрочке свыше N дней, с возможностью ручной разблокировки руководителем. Это снимает с менеджеров неприятную обязанность отказывать клиенту — за них это делает система по правилам.

Интеграция с 1С (товары, цены, остатки, документы)

В российском опте 1С — это сердце учёта. Практически у всех серьёзных оптовиков стоит «1С:Управление торговлей», «1С:Комплексная автоматизация» или «1С:ERP». Поэтому любая цифровизация в опте — это в первую очередь грамотная интеграция B2B-кабинета с 1С.

Что синхронизируется между 1С и B2B-платформой:

Из 1С в кабинет: номенклатура (товары, характеристики, упаковки, изображения), цены (все виды цен и соглашения), остатки и резервы, информация о клиентах и их договорах, кредитные лимиты, дебиторка, статусы заказов, печатные формы документов.

Из кабинета в 1С: новые заказы клиентов, изменения заказов, регистрация новых контрагентов (при модерации), запросы на документы.

Технически интеграция строится одним из способов. Типовой обмен через формат CommerceML/EnterpriseData — стандартный механизм, медленный, пакетный, подходит для нечастого обмена. REST/HTTP-сервисы 1С — современный способ, позволяет получать остатки и цены в реальном времени по запросу. Через брокер сообщений или промежуточную БД — для высоконагруженных систем с тысячами заказов в день.

Главный принцип, который я всегда отстаиваю: 1С остаётся единственным источником правды по товарам, ценам, остаткам и финансам. B2B-кабинет — это витрина и приёмник заказов, но не место, где данные живут своей жизнью. Любая попытка вести цены отдельно в кабинете и отдельно в 1С заканчивается рассинхроном и потерями.

// Node.js — обращение к HTTP-сервису 1С за остатками и оформление заказа
import axios from "axios";

const ONEC_BASE = "https://1c.example.ru/trade/hs/b2b";
const ONEC_AUTH = {
  username: process.env.ONEC_USER,
  password: process.env.ONEC_PASS,
};

interface StockItem {
  sku: string;          // артикул
  available: number;    // доступно к заказу (остаток минус резерв)
  reserved: number;     // в резерве
  incoming: number;     // ожидается от поставщика
  price: number;        // цена для конкретного клиента
}

// Получить остатки и персональные цены для клиента
async function getStockForClient(clientId: string, skus: string[]): Promise {
  const { data } = await axios.post(
    `${ONEC_BASE}/stock`,
    { client_id: clientId, skus },
    { auth: ONEC_AUTH }
  );
  return data.items;
}

// Оформить заказ с проверкой лимита и наличия
async function createOrder(clientId: string, lines: { sku: string; qty: number }[]) {
  // 1. Тянем актуальные остатки и цены
  const stock = await getStockForClient(clientId, lines.map(l => l.sku));
  const stockMap = new Map(stock.map(s => [s.sku, s]));

  // 2. Проверяем наличие и считаем сумму
  let total = 0;
  for (const line of lines) {
    const s = stockMap.get(line.sku);
    if (!s || s.available < line.qty) {
      throw new Error(`Недостаточно остатка по ${line.sku}: доступно ${s?.available ?? 0}`);
    }
    total += s.price * line.qty;
  }

  // 3. Проверяем кредитный лимит клиента
  const { data: credit } = await axios.get(`${ONEC_BASE}/credit/${clientId}`, { auth: ONEC_AUTH });
  if (total > credit.available_limit) {
    throw new Error(`Превышен кредитный лимит. Доступно: ${credit.available_limit} ₽`);
  }

  // 4. Создаём заказ в 1С (резервирует товар)
  const { data: order } = await axios.post(
    `${ONEC_BASE}/orders`,
    { client_id: clientId, lines },
    { auth: ONEC_AUTH }
  );
  return order; // { order_id, status: "reserved", total }
}

Стоимость интеграции с 1С зависит от сложности обмена и состояния учёта. Если 1С ведётся аккуратно — интеграция занимает 2-6 недель. Если в 1С бардак (дубли номенклатуры, кривые цены, неактуальные остатки) — сначала придётся навести порядок в учёте, и это часто дольше самой интеграции.

Документооборот (счета, накладные, УПД, ЭДО)

Опт — это всегда поток документов. На каждую отгрузку нужен счёт, накладная или УПД, иногда счёт-фактура, акт сверки в конце месяца. В бумажной схеме это горы распечаток, курьеры, потерянные оригиналы и месяцы ожидания подписанных экземпляров.

Электронный документооборот (ЭДО) решает это полностью. Документы формируются в 1С, подписываются электронной подписью и мгновенно передаются контрагенту через оператора ЭДО. Подписанный с двух сторон документ имеет полную юридическую силу.

Основные операторы ЭДО в РФ 2026:

Контур.Диадок — один из лидеров рынка, удобный интерфейс, глубокая интеграция с 1С через модуль. Подходит компаниям любого размера.

СБИС (Тензор) — комплексная экосистема: ЭДО, отчётность, бухгалтерия. Хорош, если компания уже сидит в СБИС по другим задачам.

Такском, Калуга Астрал — также распространённые операторы, между всеми работает роуминг, так что выбор оператора не привязывает вас к контрагентам на том же операторе.

В B2B-кабинете документы должны быть доступны клиенту в его разделе: счета на оплату — для скачивания и оплаты, УПД и накладные — для просмотра и подписания через ЭДО. Идеальный сценарий — клиент оформил заказ, получил счёт, оплатил, после отгрузки получил УПД в ЭДО и подписал ЭЦП, не вставая из-за стола.

ДокументКогдаФормаЧерез ЭДО
Счёт на оплатупри оформлении заказаинформационнаянеобязательно
Накладная (ТОРГ-12)при отгрузкепервичный документда, рекомендуется
УПДпри отгрузке (заменяет ТОРГ-12 + СФ)первичный + НДСда, стандарт 2026
Счёт-фактурапри отгрузке (если не УПД)для вычета НДСда
Акт сверкиконец месяца/кварталасверка расчётовда, удобно

Переход на ЭДО окупается почти моментально. Стоимость отправки одного электронного документа — единицы рублей против десятков и сотен рублей на печать, курьера и хранение бумаги. Плюс скорость: подписанный документ возвращается за минуты, а не за неделю.

Логистика и доставка (отгрузки, маршруты, самовывоз)

После того как заказ принят и зарезервирован, начинается логистика. И здесь цифровизация даёт ощутимую экономию, потому что доставка — одна из самых затратных статей у дистрибьютора.

Сборка заказа на складе — первый этап. Система формирует лист сборки (picking list) с указанием ячеек хранения в оптимальном порядке обхода склада. Сборщик с терминалом сбора данных (ТСД) сканирует товары, система контролирует соответствие заказу. Это снижает ошибки сборки в разы.

Планирование отгрузок и маршрутов — для дистрибьюторов с собственной доставкой. Заказы группируются по районам, строятся оптимальные маршруты для машин с учётом грузоподъёмности, окон доставки клиентов, пробок. Хорошая маршрутизация снижает пробег и расход топлива на 15-25%.

Самовывоз — для клиентов, которые забирают товар сами. В кабинете клиент видит, что заказ собран и готов к выдаче, получает уведомление, приезжает к назначенному времени без очереди. Для склада это разгрузка пиков.

Отслеживание статуса заказа — клиент в кабинете видит, на какой стадии его заказ: принят, в сборке, собран, отгружен, доставлен. Это снимает поток звонков «а где мой заказ» и повышает доверие. Для доставки можно показывать ориентировочное время прибытия машины.

Отдельно стоит учёт возвратов. В опте возвраты неизбежны: брак, пересортица, неликвид по договорённости. Система должна корректно оформлять возврат, корректировать остатки и взаиморасчёты, формировать корректировочные документы.

CRM для менеджеров (план, воронка B2B, KPI)

Когда рутинный приём заказов уходит в самообслуживание, роль менеджера меняется. Он перестаёт быть оператором ввода заказов и становится менеджером по развитию клиента. Для этого нужна CRM, заточенная под B2B-продажи.

B2B-воронка отличается от розничной. Здесь длинный цикл сделки, несколько контактных лиц (закупщик, ЛПР, иногда тендерный комитет), переговоры по условиям, договор поставки. Этапы могут быть: первичный контакт, выявление потребности, коммерческое предложение, согласование договора, первая отгрузка, выход на регулярные закупки.

Что должна давать CRM менеджеру в опте:

Карточка клиента 360. Вся история: заказы, оплаты, дебиторка, документы, переписка, договорённости. Менеджер за 10 секунд видит, что это за клиент и как с ним работать.

Сигналы по клиентам. Клиент перестал заказывать (был еженедельный, две недели тишина), снизил объём, не выбирает лимит. Это поводы для звонка, пока клиент не ушёл к конкуренту.

План продаж и его выполнение. План по менеджеру, по клиенту, по категории товаров. Факт против плана в реальном времени.

Задачи и напоминания. Перезвонить, отправить КП, согласовать акцию, поздравить с датой. Ничего не теряется.

KPI менеджера в опте — это не количество звонков, а бизнес-результаты: выполнение плана продаж, активная клиентская база (сколько клиентов реально закупались в этом месяце), средний чек, доля просроченной дебиторки по его клиентам, привлечение новых клиентов, кросс-продажи. Всё это считается автоматически из связки CRM и 1С.

Управление ассортиментом и матрицей

Ассортимент — это то, чем живёт оптовик. Слишком узкий — клиенты докупают недостающее у конкурентов и постепенно уходят. Слишком широкий — деньги заморожены в неликвидах, склад забит, оборачиваемость падает.

Ассортиментная матрица — это структурированный перечень того, что компания продаёт, разбитый по категориям, брендам, ценовым сегментам. Управление матрицей — это решения о вводе новых позиций и выводе старых на основе данных, а не интуиции.

Ключевые вопросы, на которые отвечает цифровизация ассортимента. Какие позиции приносят основную выручку и маржу? Какие лежат мёртвым грузом? Какие позиции часто заказывают вместе (для рекомендаций и комплектов)? Где дыры в матрице — что клиенты спрашивают, а у нас нет?

Отдельная важная тема — обогащение карточек товаров. В B2B долго недооценивали контент, считая, что закупщику «и так понятно». Но в 2026 году качественные карточки — с фото, характеристиками, сертификатами, аналогами — повышают конверсию в заказ и снижают количество вопросов менеджеру. Особенно для товаров со сложными техническими параметрами.

Управление аналогами и заменами — критично для дистрибьютора. Если клиент ищет позицию, которой нет, система должна предложить аналог. Это удерживает продажу внутри компании, а не отправляет клиента искать на стороне.

Аналитика продаж (ABC/XYZ, неликвиды)

Без аналитики оптовик управляет компанией вслепую. С аналитикой — видит, где деньги, где потери, где риски. Базовый инструмент анализа ассортимента в опте — это ABC/XYZ-анализ.

ABC-анализ делит товары по вкладу в результат (обычно выручку или маржу). Группа A — 20% позиций, дающих 80% результата. Группа B — следующие 30% позиций, дающие 15%. Группа C — остальные 50% позиций, дающие 5%. Это классическое правило Парето.

XYZ-анализ делит товары по стабильности спроса. Группа X — стабильный, предсказуемый спрос. Группа Y — спрос с колебаниями (сезонность, тренды). Группа Z — нерегулярный, случайный спрос.

Совмещение даёт матрицу 3x3. Позиции AX (важные и стабильные) — держим всегда в наличии, не допускаем дефицита. Позиции CZ (неважные и непредсказуемые) — кандидаты на вывод из ассортимента или работу под заказ. Это основа управления запасами.

# Python — ABC/XYZ-анализ ассортимента оптовой базы
import pandas as pd
import numpy as np

def abc_xyz_analysis(sales: pd.DataFrame) -> pd.DataFrame:
    """
    sales: DataFrame с колонками
      sku, revenue (выручка за период), periods (список продаж по неделям/месяцам)
    Возвращает матрицу ABC/XYZ по каждому SKU.
    """
    df = sales.copy()

    # --- ABC по доле в выручке ---
    df = df.sort_values("revenue", ascending=False)
    df["cum_share"] = df["revenue"].cumsum() / df["revenue"].sum()

    def abc_group(share):
        if share <= 0.80:
            return "A"
        elif share <= 0.95:
            return "B"
        return "C"

    df["ABC"] = df["cum_share"].apply(abc_group)

    # --- XYZ по коэффициенту вариации спроса ---
    def cv(periods):
        arr = np.array(periods, dtype=float)
        if arr.mean() == 0:
            return 999.0
        return arr.std() / arr.mean()  # коэффициент вариации

    df["cv"] = df["periods"].apply(cv)

    def xyz_group(cv):
        if cv <= 0.10:
            return "X"   # стабильный спрос
        elif cv <= 0.25:
            return "Y"   # колеблющийся
        return "Z"       # нерегулярный

    df["XYZ"] = df["cv"].apply(xyz_group)
    df["group"] = df["ABC"] + df["XYZ"]

    return df[["sku", "revenue", "ABC", "XYZ", "group"]]


# Пример рекомендаций по группам
RECOMMENDATIONS = {
    "AX": "Стратегический товар. Держать страховой запас, не допускать дефицита.",
    "AY": "Важный, но колеблется. Точное прогнозирование, буфер под сезон.",
    "AZ": "Важный, но непредсказуемый. Гибкие закупки, частый мониторинг.",
    "CZ": "Неликвид-кандидат. Вывести из матрицы или работать под заказ.",
}

if __name__ == "__main__":
    data = pd.DataFrame({
        "sku": ["A-100", "B-200", "C-300"],
        "revenue": [5_000_000, 800_000, 50_000],
        "periods": [[120, 118, 122, 119], [40, 5, 60, 10], [0, 3, 0, 1]],
    })
    result = abc_xyz_analysis(data)
    print(result)

Отдельный денежный сюжет — выявление неликвидов. Это товары, которые не двигались N месяцев, но занимают место на складе и держат деньги. Система должна автоматически помечать неликвиды, считать замороженный в них капитал и предлагать действия: распродажа, возврат поставщику, списание. По моему опыту, у среднего оптовика в неликвидах застревает 10-20% складского капитала, и его высвобождение — это живые деньги.

B2B-маркетинг (email, акции для опта, личные предложения)

B2B-маркетинг в опте принципиально отличается от розничного. Здесь нет массовых эмоциональных кампаний — есть точечная работа с базой клиентов и менеджерами. Главный актив — это собственная клиентская база и история заказов.

Email-рассылки остаются рабочим каналом в B2B. Не спам, а полезные деловые письма: новые поступления по интересующим клиента категориям, информация об акциях, изменение цен с предупреждением заранее, спецпредложения по неликвидам. Сегментация по истории закупок резко повышает отклик.

Акции для опта строятся вокруг объёма и сроков. «При заказе от 5 паллет — дополнительная скидка». «Распродажа сезонного остатка». «Бонус за выборку плана месяца». Цель акций в опте — не привлечь импульс, а увеличить средний заказ и ускорить оборачиваемость.

Персональные предложения — самое мощное в B2B. На основе истории закупок система видит, что клиент покупает регулярно, а что мог бы покупать (берёт у конкурента). Менеджер или автоматика делает адресное предложение: «Вы берёте у нас краску, а грунтовку нет — вот спецусловия на грунтовку». Это и есть кросс-продажи на данных.

Уведомления в кабинете и мессенджерах — оперативный канал. Поступил товар, которого клиент ждал. Приближается срок оплаты. Появилась акция по его категории. Эти триггерные сообщения работают лучше любых массовых рассылок, потому что релевантны здесь и сейчас.

Мобильный заказ (приложение для торговых представителей)

У многих дистрибьюторов, особенно в FMCG, есть институт торговых представителей — людей, которые ездят по точкам и собирают заказы прямо на месте. Для них мобильное приложение — главный рабочий инструмент.

Приложение торгового представителя (SFA, Sales Force Automation) решает целый комплекс задач. Маршрут на день — список точек для объезда с навигацией. Карточка точки — история заказов, дебиторка, остатки на полке (по последнему визиту). Оформление заказа на месте — каталог с ценами клиента, остатки на складе в реальном времени, корзина, отправка заказа сразу в 1С.

Дополнительные функции, которые делают приложение по-настоящему полезным. Фотофиксация выкладки и фасада — для контроля мерчандайзинга. Сбор остатков на полке клиента — для рекомендации заказа. Анкеты и опросы — обратная связь с точек. Геолокация визита — подтверждение, что представитель реально был в точке, а не «нарисовал» визит из машины.

Критично, чтобы приложение работало офлайн. Торговый представитель часто оказывается в точках без связи: подвальный магазин, отдалённый район. Приложение должно позволять оформить заказ без интернета и синхронизировать его с 1С, как только появится сеть.

Для самих клиентов-закупщиков тоже полезно мобильное оформление — закупщик небольшого магазина чаще держит телефон в руках, чем сидит за компьютером. Адаптивный B2B-кабинет или лёгкое приложение для дозаказа с телефона повышает частоту заказов.

Юр-нюансы (152-ФЗ, договоры поставки, ЭДО)

Опт — это B2B, но персональные данные здесь всё равно есть, и 152-ФЗ соблюдать обязательно.

152-ФЗ при работе с контактами ЛПР. Хотя контрагент — это юрлицо, в системе хранятся ФИО, телефоны и email конкретных людей: закупщиков, директоров, бухгалтеров. Это персональные данные. Нужны правовые основания обработки, политика конфиденциальности, защита данных. Подробнее в статье об аудите 152-ФЗ.

Договор поставки — основной документ B2B-отношений. В нём фиксируются условия отгрузки, цены или порядок их определения, отсрочка платежа, ответственность за просрочку, порядок приёмки и возвратов. B2B-кабинет работает в рамках действующего договора, а регистрация нового клиента должна сопровождаться заключением договора.

Юридическая значимость заказа в кабинете. Заказ, оформленный в B2B-кабинете под логином клиента, должен иметь силу заявки в рамках договора. Это прописывается в договоре или в регламенте использования кабинета, который клиент акцептует.

ЭДО и электронная подпись. Для юридически значимого документооборота нужна квалифицированная электронная подпись (КЭП). Документы, подписанные КЭП через оператора ЭДО, равнозначны бумажным с подписью и печатью.

54-ФЗ и НДС. При расчётах с ИП и физлицами-плательщиками могут возникать кассовые обязательства. Учёт НДС, корректное оформление счетов-фактур или УПД — зона ответственности бухгалтерии и 1С.

Юнит-экономика и оборачиваемость

Финансовая модель опта строится вокруг двух понятий, которые в рознице вторичны, а здесь решают всё: маржа и оборачиваемость. Низкая маржа опта компенсируется высокой оборачиваемостью и объёмом.

Валовая маржа в опте обычно ниже розничной — 8-25% в зависимости от категории и конкуренции. На массовых товарах с высокой конкуренцией маржа может быть 5-10%, на специализированных и эксклюзивных — 25-40%. Поэтому каждый процент маржи на счету, и ошибки в прайсах недопустимы.

Оборачиваемость запасов — ключевая метрика. Сколько раз за период склад «прокручивается». Если товар лежит 90 дней до продажи — это медленная оборачиваемость и замороженный капитал. Если 15 дней — быстрая. Оборачиваемость напрямую влияет на потребность в оборотных средствах.

Связка маржи и оборачиваемости даёт показатель рентабельности вложенного в запасы капитала (GMROI). Товар с маржой 10%, но оборачивающийся 12 раз в год, выгоднее товара с маржой 30%, оборачивающегося 2 раза. Цифровизация позволяет считать это по каждой позиции и принимать решения по ассортименту на основе денег, а не объёма.

Дебиторка — третий финансовый кит. Деньги, замороженные в неоплаченных отгрузках, не работают. Сокращение среднего срока оплаты на несколько дней при большом обороте высвобождает значительные суммы. Контроль дебиторки в реальном времени — это прямое влияние на ликвидность.

Логистические затраты на заказ — то, что определяет минимальную сумму заказа. Если доставка одного заказа обходится в 1500 ₽, а маржа с мелкого заказа 800 ₽, такой заказ убыточен. Поэтому в B2B-кабинете и задаётся минимальная сумма заказа — это защита юнит-экономики.

Стоимость IT (малый опт, дистрибьютор, сеть)

УровеньРазовые затратыЕжемесячноЧто входит
Малый опт (1 склад)100-300 тыс. ₽15-40 тыс. ₽1С:УТ + типовой B2B-кабинет + ЭДО
Средний дистрибьютор300-800 тыс. ₽60-150 тыс. ₽+ интеграция реального времени, CRM, аналитика ABC/XYZ
Дистрибьютор с доставкой800 тыс.-2 млн ₽120-250 тыс. ₽+ WMS-сборка, маршрутизация, SFA-приложение
Федеральная сетьот 2-5 млн ₽200-500 тыс. ₽1С:ERP + кастомный портал + BI + ML-прогноз спроса

Окупаемость в опте обычно быстрая — 4-10 месяцев. Основные источники возврата инвестиций: высвобождение времени менеджеров (приём заказов в самообслуживании), рост среднего заказа и частоты заказов, сокращение неликвидов, снижение потерь от просроченной дебиторки, экономия на документообороте за счёт ЭДО.

Топ-5 ошибок цифровизации опта

Ошибка 1: Запускают B2B-кабинет без нормальной интеграции с 1С. Цены и остатки ведут вручную в двух местах. Через месяц всё рассинхронизировано: клиент заказал по старой цене несуществующий товар. Кабинет без живой связи с 1С хуже, чем его отсутствие.

Ошибка 2: Показывают физический остаток вместо доступного. Клиент видит «есть 100», заказывает 80, а 90 уже зарезервированы под другого. Сорванная отгрузка и потерянное доверие. Всегда показывать «доступно к заказу» с учётом резерва.

Ошибка 3: Не контролируют кредитные лимиты в реальном времени. Отгружают тому, кто уже должен и просрочил. Дебиторка растёт, кассовый разрыв приближается. Система должна блокировать отгрузку при превышении лимита автоматически.

Ошибка 4: Делают кабинет неудобным для закупщика. Нет быстрого повтора заказа, нет ввода по списку артикулов, медленный поиск. Закупщик плюнет и вернётся к звонкам менеджеру или уйдёт к конкуренту с удобным порталом. Удобство дозаказа — приоритет номер один.

Ошибка 5: Игнорируют аналитику ассортимента. Закупают «как всегда», склад забивается неликвидами, ходовые позиции уходят в дефицит. Без ABC/XYZ-анализа 10-20% капитала мёртвым грузом лежит на складе.

FAQ

С чего начать цифровизацию оптовой базы? С наведения порядка в 1С: единая номенклатура без дублей, корректные цены и виды цен, актуальные остатки. Без этого любой B2B-кабинет будет показывать мусор.

Можно ли обойтись без 1С? Теоретически да, но в российском опте это редкость. 1С — стандарт учёта, под него заточены интеграции, ЭДО, бухгалтерия. Уходить от 1С имеет смысл только у очень крупных игроков с собственной ERP.

Готовые B2B-платформы или разработка с нуля? Для малого и среднего опта — готовые решения на базе 1С-Битрикс или специализированные B2B-платформы. Разработка с нуля оправдана только для крупных игроков с нестандартными процессами.

Какой оператор ЭДО выбрать? Диадок или СБИС — наиболее распространённые. Между операторами работает роуминг, поэтому ваш выбор не привязывает контрагентов. Ориентируйтесь на удобство интеграции с вашей 1С.

Как заставить клиентов пользоваться кабинетом? Сделать его удобнее, чем звонок: быстрый повтор заказа, прозрачные остатки и цены, доступ к документам. И мотивировать — например, небольшая скидка на заказы через кабинет первое время.

Что делать с клиентами, которые не хотят ЭДО? Постепенно переводить, показывая выгоду (скорость, отсутствие потерь документов). Параллельно сохранять бумажный вариант, но делать его менее удобным. Со временем большинство переходит.

Нужно ли мобильное приложение, если есть кабинет? Отдельное приложение торгового представителя нужно, если есть полевые продажи. Для самих закупщиков достаточно адаптивного кабинета, открывающегося с телефона.

Как быстро окупается интеграция с 1С? При нормальном объёме заказов — за 4-8 месяцев только за счёт высвобождения времени менеджеров. Плюс эффект от роста заказов и снижения ошибок.

Выводы и чек-лист «цифровизирую опт за квартал»

Оптовая база и дистрибьютор 2026 — это бизнес, где побеждает не самый дешёвый, а самый удобный для закупщика поставщик. B2B-кабинет с самообслуживанием, живой интеграцией с 1С, прозрачными остатками и ценами, контролем дебиторки и ЭДО — это уже не конкурентное преимущество, а условие выживания.

Чек-лист цифровизации опта за квартал:

Месяц 1: аудит и порядок в 1С. Единая номенклатура без дублей, корректные виды цен и соглашения с клиентами, актуальные остатки и резервы, кредитные лимиты по клиентам. Это фундамент, без которого дальше двигаться бессмысленно.

Месяц 2: запуск B2B-кабинета. Каталог с персональными ценами, остатки с учётом резерва, оформление заказов 24/7 с проверкой лимита и наличия, повторные заказы и шаблоны, финансовый блок с дебиторкой. Интеграция с 1С в реальном времени или с минимальной задержкой.

Месяц 3: документооборот и аналитика. Подключение ЭДО (Диадок или СБИС), счета и УПД в кабинете. Запуск CRM для менеджеров с B2B-воронкой и KPI. ABC/XYZ-анализ ассортимента, выявление неликвидов, контроль оборачиваемости.

Дальше — логистика и маршрутизация, WMS-сборка на складе, мобильное приложение торговых представителей, ML-прогноз спроса для крупных дистрибьюторов.

Если нужна помощь с цифровизацией оптовой базы или дистрибуции — пишите в Telegram. Помогу с аудитом 1С, выбором и внедрением B2B-платформы, настройкой интеграций и ЭДО, постановкой аналитики. Опыт работы с оптовиками и дистрибьюторами в разных нишах. Бесплатная консультация 30 минут.

Услуги по теме

Что я делаю для опта и дистрибуции

  • B2B-кабинет с прайсами и остатками
  • Интеграция с 1С (товары, цены, документы)
  • ЭДО (Диадок, СБИС) и документооборот
  • ABC/XYZ-анализ и борьба с неликвидами
  • Приложение торгового представителя
Написать в Telegram
Готовое решение по теме B2B-портал заказов для опта и дистрибьютора Бесплатная консультация · обсуждается Смотреть предложение

Нужен профессиональный аудит 152-ФЗ?

Отчёт за 1–3 дня, устранение нарушений под ключ. От 5 000 ₽.

Готовые решения под ключ 211 готовых IT-решений для бизнеса Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультация Смотреть каталог