Синхронизация остатков на маркетплейсах: как избежать расхождений и оверселлинга

Опубликовано:

На складе осталось ровно 5 единиц товара. Пока данные обновлялись, их купили на Ozon, и еще 3 заказа поступило с Wildberries. В итоге покупатели оформили 8 позиций при наличии пяти. Часть заказов срывается, продавец получает штрафы за отмену заказа, падение рейтинга и потерю прибыли. Это прямой путь к каскадным минусам в учете.

​Разберем, почему возникают расхождения в базе и какие технические настройки помогают свести риск оверселлинга к минимуму.

Что такое оверселлинг и почему он дорого обходится

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

Отменять заказы из-за отсутствия товара на складе крайне невыгодно – площадки жестко штрафуют продавцов за сорванные отгрузки.

Почему остатки «плывут»: основные причины расхождений

Остатки в 1С и кабинетах могут различаться даже при автоматическом обмене. Главные причины:

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

Но даже если вы отправляете данные мгновенно, сама площадка обновляет их не сразу. Wildberries тратит на это до 30 минут, а исторические отчеты обновляет раз в 2 часа. Яндекс Маркет и Ozon – от 15 минут до нескольких часов. Эта задержка от вас не зависит, но ее обязательно нужно закладывать в расчет буфера.

Нет единого источника данных. Когда каждый кабинет обновляется изолированно, информация о запасах неизбежно расходится. Заказ на одной площадке списал остаток в ее профиле, но на соседней витрине количество сохранилось.

Лимиты API. У каждой площадки действуют жесткие ограничения на скорость и объем обмена данными:

На Ozon действует общий лимит 50 запросов в секунду (RPS) на один Client ID для всех методов.

На Wildberries лимиты привязаны к типу токена и конкретному методу API. В категории «Маркетплейс» персональный и сервисный токены дают 300 запросов в минуту, базовый и тестовый – 150. У отдельных статистических методов лимит жестче – вплоть до 1 запроса в минуту.

На Яндекс Маркете есть ограничение на параллельность: не более 4 одновременных запросов к одному магазину или кабинету.

Пересечение схем FBS и FBO. При FBS товар хранится на вашем складе, а при FBO – у оператора. Если не разграничить эти регистры в учетной базе, система начинает списывать позиции из общего котла, формируя виртуальный избыток.

Параллельные продажи (мультиаккаунты). Если один и тот же складской запас реализуется через разные юрлица или несколько кабинетов без сквозного резервирования, каждый канал транслирует полный объем как свой собственный, дублируя наличие.

Нулевой страховой буфер. Выставление на витрины 100% имеющегося запаса гарантирует оверселлинг: при любой задержке API последняя позиция успевает продаться дважды (в рознице или на соседней площадке).

Задержки в системе маркировки «Честный Знак». Для маркированных товаров доступный остаток формируют только коды со статусом «В обороте». Если код был продан, но еще не выведен из оборота в системе, интеграция может передать на площадку неверную цифру. Ошибка кроется не в самом модуле, а в задержке обновления статусов кодов маркировки.

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

​Одной лишь настройки автоматической выгрузки недостаточно. Чтобы исключить расхождения, необходимо проверить, откуда система берет исходные данные, как списываются брони и что происходит при сбое передачи.

Как схема работы с маркетплейсом влияет на учет остатков

Логика управления запасами зависит от того, где физически лежит товар и кто отвечает за его сборку и доставку.

Примечание: названия моделей отгрузки со склада площадки у маркетплейсов различаются. Схему со складом площадки на Ozon и Wildberries называют FBO (Fulfillment by Operator), а на Яндекс Маркете – FBY (Fulfillment by Yandex). В учетной логике эти понятия идентичны. При этом схема FBS (Fulfillment by Seller), когда товар хранится на вашем складе, называется одинаково на всех трех площадках.

Сравнительная таблица схем FBO, FBY и FBS

Как правильно выстроить синхронизацию остатков

Технически грамотная архитектура учета и передачи данных строится по правилам:

1. Единый источник правды (Single Source of Truth)

Вся информация о запасах должна собираться в одной точке. Чаще всего это ваша 1С (Бухгалтерия, УТ, КА или УНФ). Данные транслируются строго из нее.

Если вы работаете по дропшиппингу, модуль интеграции может собирать остатки из нескольких систем (ваша 1С + базы поставщиков), чтобы на витрину отправлялся только реально доступный товар.

2. Триггерная выгрузка при изменении остатка

Выгрузка не должна ждать расписания. Как только в 1С происходит событие, меняющее доступный остаток (проведение заказа, инвентаризация, приход, снятие брони), система сразу отправляет обновление на площадки. Это сокращает окно рассинхронизации до секунд, но требует контроля лимитов API.

3. Разделение по складам (мультисклад) и приоритетам

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

4. Журналирование обмена (Log Register)

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

Способы синхронизации: от ручного до полной автоматизации

Выбор метода зависит не от оборота бизнеса, а от количества SKU, числа кабинетов и динамики поступающих заказов. Вот возможные варианты:

Преимущества и недостатки разных способов синхронизации

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

Например, сервис Интеграмер работает как надстройка над вашей конфигурацией 1С. Вы проводите документы, а модуль в фоновом режиме отслеживает изменения и передает цифры на площадки по API. Такой подход избавляет от ручной работы и минимизирует риск оверселлинга за счет сокращения времени на передачу данных.

Какие настройки помогают снизить риск оверселлинга

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

1. Страховой (буферный) остаток и его расчет

Буфер зависит от того, как быстро разбирают товар, как часто программа связывается с площадкой по API и торгуете ли вы где-то еще (в рознице, на сайте, оптом). В 1С объем выгрузки считают так:

Объем к выгрузке = (Фактический остаток × Процент выгрузки) − Страховой буфер

Например, товар продается со скоростью 2 штуки в час, а обмен с маркетплейсом идет каждые 15 минут. Вы готовы показывать площадке 80% наличия и заложили буфер в 3 штуки. Если на складе лежит 100 единиц, на витрину уйдет: (100 × 0,8) − 3 = 77 штук. Когда складской запас просядет до уровня буфера, программа передаст на витрину 0. Это даст задержку по времени и не позволит продать товар дважды.

2. Резервирование под все каналы

Как только покупатель оформляет заказ на любой площадке или в розничном магазине, 1С тут же бронирует позицию – создается документ «Заказ покупателя» (в УТ/КА – «Заказ клиента») с установленным резервированием на складе. Остальные витрины сразу видят уменьшившийся свободный остаток, и последняя коробка не продастся параллельно в двух местах.

3. Распределение остатка (кратность и процент)

Если вы торгуете на нескольких витринах, отдавать полный склад каждой из них опасно. Используют две настройки:

  1. Деление остатка (кратность): в настройках каждой площадки задается делитель, и система делит остаток на это число. Например: из 9 коробок при кратности 3 на каждую из трех площадок уйдет по 3 штуки.
  2. Процент выгрузки: витрина получает не весь товар, который есть в наличии, а только заданную часть. Допустим, из 100 штук на витрину идет 80%, а 20% находится в тихом резерве.

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

​4. Защита единичных остатков (лимиты Min / Max)

Минимум означает, что при остатке меньше заданного значения (например, 2) на площадку уйдет 0 (в некоторых модулях минимальный остаток вычитается из доступного количества). Максимум не даст отправить остаток больше указанной цифры, оставляя запас для опта или других каналов.

5. Приоритеты при дефиците

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

6. Возвраты и перемещения

Возвращенную покупателем позицию нельзя сразу пускать в продажу. В 1С приемка оформляется через документ «Возврат от комиссионера», и только после его проведения товар увеличивает доступный остаток.

При перемещении товара между складами остаток сразу пересчитывается (уменьшается на складе-отправителе и появляется на складе-получателе). Так предотвращается ложный избыток или дефицит на витринах.

Семь настроек, которые нужно проверить, чтобы остатки в 1С и на витринах не расходились

Как контролировать остатки после настройки

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

1. Свободный остаток в 1С. Сравнивайте одинаковые показатели: в 1С – свободный остаток (физический товар минус резервы под заказы, брак и карантин), в кабинете – «Доступно к продаже». Если остаток упал без продаж, проверьте заказы, перемещения и инвентаризацию.

2. Переданные данные. Посмотрите в истории обмена, какая цифра ушла на маркетплейс в последней выгрузке.

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

4. Новые продажи. Проверьте, не поступили ли заказы ровно в момент передачи данных.

5. Журнал обмена и отчеты по отменам. По отчетам ищите, где выгрузка не успевает за спросом. В журнале смотрите ответ сервера: код 200 OK значит лишь то, что запрос дошел до сервера. Площадка может обработать его с задержкой или отклонить. Если остаток не изменился, смотрите тело ответа и статусы ошибок (таймаут, неверный формат).

Если ошибок нет, обмен успешен, а на витрине старая цифра – нужен ручной аудит и запрос в техподдержку. Также проверять вручную стоит, если расхождения появляются после каждой поставки. Пересчитайте товар, проверьте сопоставление номенклатуры и цепочку: поставка → оприходование → доступность. Если где-то на этом этапе товар теряется, никакая автоматизация не спасет.

Часто задаваемые вопросы (FAQ):

Как часто нужно обновлять остатки, чтобы не ловить оверселл?

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

Что такое минимальный (буферный) остаток и как его правильно выставить?

Это количество, которое вы удерживаете и не отправляете на площадку. Если буфер = 2, то при остатке в 2 штуки на витрину уйдет 0. Чем выше скорость продаж, тем больше должен быть этот запас.

Можно ли синхронизировать остатки в реальном времени?

Можно, через вебхуки (если их поддерживает площадка и ваш модуль). Но «реальное время» касается только отправки запроса из 1С. Сама витрина обновится с задержкой маркетплейса.

Что делать, если остатки на FBO и в 1С не совпадают?

FBO – это склад площадки, где остатки меняются из-за продаж, списаний, перемещений или инвентаризаций. Запросите акт сверки в кабинете, проверьте операции за период и внесите корректировки в 1С.

Что делать, если остаток в 1С и на маркетплейсе не обновляется после продажи?

Проверьте журнал обмена: ушел ли запрос и что ответил сервер. Если запрос прошел, а остаток не изменился, изучите ответ (площадки часто меняют форматы). Заодно проверьте сопоставление артикулов и резервы.

Нужно ли отключать синхронизацию при инвентаризации или переучете?

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