← блог Paramiko
AI automation / business / Paramiko

На какие склады WB/Ozon везти товар: AI-рекомендации по регионам и остаткам

Обычный понедельник у селлера. Менеджер выгружает остатки из кабинета WB и продажи по кластерам из Ozon. Потом сводит всё в таблицу и проверяет коэффициенты приёмки. Пока план готов, бесплатные слоты на нужный склад уже заняты. Товар едет туда, где нашлось место, а не туда, где его покупают.

Через месяц это видно в цифрах. В Казани лежит запас на 80 дней, а в Новосибирске товара нет, и сибирские покупатели получают заказ из Москвы за неделю или уходят к конкуренту. Растёт цена логистики, падает конверсия, а платное хранение идёт за товар, который в этом регионе не продаётся.

Обычный понедельник у селлера. Менеджер выгружает остатки из кабинета WB и продажи по кластерам из Ozon. Потом сводит всё в таблицу и проверяет коэффициенты приёмки. Пока план готов, бесплатные слоты на нужный склад уже заняты. Товар едет туда, где нашлось место, а не туда, где его покупают.

Через месяц это видно в цифрах. В Казани лежит запас на 80 дней, а в Новосибирске товара нет, и сибирские покупатели получают заказ из Москвы за неделю или уходят к конкуренту. Растёт цена логистики, падает конверсия, а платное хранение идёт за товар, который в этом регионе не продаётся.

В этой статье разберём, как устроено решение «куда везти», какие данные для него нужны, где помогает AI, а где хватает обычной арифметики. И что нельзя отдавать автоматике без проверки человеком.

Коротко

  • Склад для поставки выбирают по спросу в регионе. Свободный слот, близость к вашему складу и привычка тут вторичны.
  • Для расчёта нужны продажи по регионам или кластерам, остатки по складам, товар в пути, оборачиваемость, лимиты и коэффициенты приёмки, стоимость логистики до склада.
  • Расчёт должен быть детерминированным: спрос × дни покрытия − остаток − в пути. AI тут не считает. Он собирает данные, находит аномалии, объясняет рекомендацию и отвечает на вопросы менеджера.
  • Главная ошибка — прогнозировать по продажам без поправки на дни, когда товара не было. Так вы занижаете спрос именно в тех регионах, где не хватает запаса.
  • Бронирование слотов, платную приёмку и создание поставок оставьте человеку. Автоматика готовит черновик с обоснованием.
  • Начните с ручного расчёта на 20 SKU, а автоматизируйте после того, как формула подтвердится на реальных поставках.

Почему «везём всё на главный склад» больше не работает

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

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

Кроме денег, есть ещё два эффекта:

Срок доставки видит покупатель. «Завтра» и «через 6 дней» на одной и той же карточке дают разную конверсию. На практике селлеры замечают, что быстрая доставка в регион помогает и в выдаче.

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

Какие данные нужны для решения

Пока данные лежат в пяти разных выгрузках, решение принимают по памяти. Вот минимальный набор.

Данные Откуда Зачем
Заказы по регионам/кластерам за 28–56 дней Отчёты и API WB, аналитика Ozon Доля спроса каждого региона
Остатки по складам API остатков Сколько дней покрытия в регионе
Товар в пути и созданные поставки Кабинет, ваш учёт Чтобы не отправить второй раз
Дни без остатка по складам Считается из истории остатков Поправка на скрытый спрос
Коэффициенты и лимиты приёмки API поставок WB, кабинет Ozon Куда можно везти и почём
Стоимость доставки до склада, кратность короба Ваш логист / фулфилмент Реальная цена поставки
Остаток на вашем складе, сроки производства 1С, МойСклад, таблица Что вообще есть в наличии

Самая частая дыра — товар в пути. Если система его не видит, она каждый день будет рекомендовать ту же поставку.

Как считается рекомендация: рабочая схема

Логика простая. Сложность в аккуратности данных.

1. Прогноз спроса по SKU. Берём заказы за 28 дней и считаем среднюю в день только по тем дням, когда товар был в наличии. Если худи продавалось 30 штук в день, но 7 дней из 28 его не было вообще, реальный спрос ближе к 30 × 28 / 21 = 40, а не к 30.

2. Доля региона с поправкой на дефицит. То же самое по регионам. Если в Сибири товара не было 9 дней, её доля в статистике занижена. Без поправки получается замкнутый круг: в регион мало везли, там мало продали, система советует везти ещё меньше.

3. Целевое покрытие. Запас в днях для каждого склада: срок поставки + интервал между поставками + страховой запас. Например, 10 + 14 + 7 = 31 день. Для товаров с высокой оборачиваемостью покрытие короче, для медленных длиннее, но тогда нужно учитывать стоимость хранения.

4. Потребность. Спрос региона в день × дни покрытия − остаток на складах региона − товар в пути. Округляем до кратности короба.

5. Ограничения. Накладываем лимиты и коэффициенты приёмки, стоимость доставки до каждого склада и наличие товара у вас. Здесь появляются развилки: заплатить за приёмку сейчас, подождать бесплатный слот или отправить часть на соседний склад.

6. Приоритет. Если товара на всех не хватает, первыми идут SKU и регионы, где запаса меньше всего, а маржа выше.

Условный пример. Худи, прогноз 32 штуки в день. После поправки на дефицит доля Сибири 12%, то есть около 3,8 штуки в день. При покрытии 35 дней нужно около 135 штук. На складе в Новосибирске 20, в пути ничего. Потребность ~115, при кратности 20 получается 120 штук, 6 коробов. При этом бесплатная приёмка в Новосибирске будет только через 6 дней, а текущих 20 штук хватит примерно на 5. Решение уже не арифметическое: платить за приёмку, переждать пару дней дефицита или отправить часть на ближайший склад с доступным слотом. Его принимает человек, а система показывает цифры по каждому варианту.

Где здесь AI, а где обычная математика

Расчёт потребности должен делать код, а не языковая модель. Формула должна выдавать одинаковый результат на одинаковых данных, и её можно проверить. LLM может ошибиться в арифметике, и такая ошибка обойдётся вам в лишнюю фуру товара.

Где AI действительно полезен:

  • Сборка и сверка данных. Находит SKU без сопоставления баркодов между WB, Ozon и вашим учётом, замечает подозрительные остатки и дубли поставок.
  • Аномалии. Продажи в регионе за неделю выросли втрое: это реклама, блогер или ошибка в выгрузке? Агент отмечает такие места и не пускает их в план молча.
  • Объяснение рекомендации обычным языком. Не «везти 120», а «везти 120, потому что запас на 5 дней и 9 дней дефицита за месяц».
  • Ответы на вопросы. Менеджер пишет в Telegram «почему в Краснодар ничего?», и агент отвечает по данным расчёта, не выдумывая.

Подробнее о том, чем агент отличается от бота и скрипта, — в статье AI-агент для бизнеса.

Как это выглядит в работе

Типичный рабочий формат — ежедневное или еженедельное сообщение в Telegram. Внутри черновик плана и кнопки решения:

План поставок WB · 42 SKU · черновик

Худи базовое, чёрное, M → Новосибирск: 120 шт (6 коробов)
Почему: доля Сибири 12%, запаса на 5 дней, 9 дней без остатка за месяц.
Ограничение: бесплатная приёмка через 6 дней, сейчас коэффициент x5.
Варианты: [Платная приёмка] [Ждать слот] [Часть на соседний склад]

Пропущено 3 SKU: нет сопоставления баркода с учётом. Нужна проверка.

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

Сколько это экономит и как это измерить

Время считается проще всего. Ручная сводка по 100–200 SKU на двух площадках обычно занимает у менеджера 4–8 часов в неделю, плюс ошибки копирования. С автоматическим сбором и расчётом остаётся 30–60 минут на проверку и решения по развилкам. Цифры зависят от ассортимента, поэтому сначала засеките своё время.

Деньги важнее времени, но считать их сложнее. Перед запуском зафиксируйте базу и сравните через 6–8 недель:

  • долю локальных заказов (индекс локализации на WB, долю локальных продаж на Ozon);
  • среднюю стоимость логистики на единицу;
  • дни без остатка по ключевым SKU в разрезе регионов;
  • оборачиваемость и сумму платного хранения;
  • долю поставок с платной приёмкой.

Если локализация растёт, а платное хранение тоже растёт, значит, вы развезли слишком много товара по регионам. Формулу покрытия нужно поправить.

Как понять, стоит ли процесс автоматизации вообще, разобрано в статье Как понять, что процесс пора автоматизировать.

Риски: что нельзя отдавать автоматике

Прогноз по «грязным» продажам. Без поправки на дефицит, акции и самовыкупы прогноз систематически ошибается. Акционные дни нужно помечать отдельно.

Сезонность и запуски. Формула по последним 28 дням не знает, что через месяц начнётся сезон пуховиков или выйдет новая коллекция. Для таких SKU прогноз задаёт человек, а система только распределяет его по регионам.

Хвост ассортимента. Товары, которые продаются по 2 штуки в неделю, бессмысленно развозить по восьми складам: хранение съест всю экономию на логистике. Для них нормально держать 1–2 склада.

Права доступа. Для аналитики хватит токена только на чтение. Если система создаёт черновики поставок, нужен отдельный токен с минимальными правами, его хранение в защищённом месте и журнал действий. Бронирование слота, платная приёмка и отправка товара должны требовать подтверждения человеком.

Устаревшие ограничения. Коэффициенты и слоты меняются в течение дня. Рекомендация, которой три часа, может быть уже неактуальна, поэтому перед бронированием данные нужно перепроверять.

Непрозрачность. Если менеджер не понимает, откуда взялось число, он перестаёт доверять системе и возвращается к таблице. Каждая строка плана должна иметь объяснение.

Как внедрить: от таблицы к агенту

Этап 1. Ручной расчёт на 20 SKU (1–2 недели). Возьмите топ-20 товаров, посчитайте потребность по схеме выше в таблице и сделайте одну поставку по ней. Так вы проверите формулу и найдёте дыры в данных, не тратясь на разработку.

Этап 2. Автосбор данных. Подключение к API WB и Ozon, вашему учёту и статусам поставок. Данные собираются в одну базу по расписанию. Уже на этом этапе уходит большая часть ручной работы.

Этап 3. Расчёт и отчёт. Код считает потребность и ограничения, результат приходит в Telegram или таблицу. Человек сверяет его со своими решениями 2–3 цикла поставок.

Этап 4. AI-слой. Объяснения, поиск аномалий, ответы на вопросы, сверка SKU.

Этап 5. Черновики поставок. Только после того, как расчёту можно доверять. Создание черновика по кнопке, финальное подтверждение за человеком, всё в логах.

Перед запуском проверьте:

  • [ ] SKU и баркоды сопоставлены между площадками и учётом;
  • [ ] товар в пути учитывается;
  • [ ] дни без остатка исключаются из прогноза;
  • [ ] акционные периоды помечены;
  • [ ] целевое покрытие задано по группам товаров, а не одно на всё;
  • [ ] токены с минимальными правами, действия логируются;
  • [ ] есть человек, который отвечает за финальное решение по поставке.

FAQ

Можно ли просто брать рекомендации из кабинета WB или Ozon?

Можно как ориентир. Встроенные рекомендации видят спрос и остатки на площадке, но не знают, сколько товара у вас на складе, когда придёт партия от производителя, какая у SKU маржа и сколько стоит доставка до конкретного склада. Ещё они не сводят WB и Ozon в один план, если товар у вас общий. Обычно рекомендации площадки берут как один из входов в собственный расчёт.

С какого объёма ассортимента это имеет смысл?

Ручного расчёта хватает примерно до 30–50 активных SKU на одной площадке. Когда SKU сотни, площадок две и поставки еженедельные, ручная сводка начинает занимать день работы и копить ошибки. С этого момента автоматизация обычно окупается быстро. Но точнее это показывает ваш собственный замер времени и потерь от дефицита.

Может ли AI сам бронировать слоты и создавать поставки?

Технически часть операций доступна через API. Но мы не рекомендуем отдавать их автоматике полностью: ошибка в данных превращается в реальную фуру товара не туда и платную приёмку. Разумная схема такая: система готовит черновик с обоснованием, человек нажимает «подтвердить», действие записывается в лог.

Как учитывать сезонность и акции?

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

Что делать, если товара на всех не хватает?

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

Нужна ли для этого 1С или МойСклад?

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

Подходит ли схема для FBS?

Частично. Для FBS товар лежит у вас, и вопрос выбора склада маркетплейса не стоит. Зато расчёт помогает решить, какие SKU выгоднее перевести на FBO в отдельные регионы: туда, где доставка с вашего склада долгая и это заметно бьёт по конверсии.

Что делать дальше

Решение «куда везти» складывается из трёх вещей: честного спроса по регионам с поправкой на дефицит, полной картины остатков с товаром в пути и учёта реальных ограничений приёмки. Арифметику берёт на себя код, AI собирает данные, ищет ошибки и объясняет решения, а финальное слово остаётся за человеком.

Начните с малого: посчитайте по схеме из статьи 20 ключевых SKU и сравните с тем, как вы распределяли последнюю поставку. Расхождения покажут, где теряются деньги.

Если хотите, сделаем это вместе. Разберём 10–20 SKU и покажем, где теряются деньги: в цене, рекламе, остатках, возвратах или закупках. Напишите Дмитрию в Telegram @dmkosik.

marketplace diagnostic

Покажем, где селлер теряет деньги

Разберём 10–20 SKU и проверим цену, рекламу, остатки, возвраты и закупки. На выходе — список конкретных утечек и действий по приоритету.

Разобрать 10–20 SKU →