
Когда один склад обслуживает сайт и несколько маркетплейсов, недостаточно отправлять каждой площадке одинаковый остаток. Нужно учитывать резервы, задержки, разные схемы продаж и подтверждение обновлений. Иначе последняя единица товара оказывается обещана нескольким покупателям.
Определите, каким запасом вы действительно управляете
Разделите товар на собственном складе и запас, уже переданный на склады площадок. Для разных моделей продаж отличаются источник доступности, момент резерва и порядок обработки возврата. Нельзя механически применять одну формулу ко всем каналам.
Составьте карту: склад компании, склад в учётной системе, кабинет продавца, схема работы и идентификатор склада у площадки. Уточните, являются ли несколько учётных складов отдельными физическими зонами или просто аналитическими разрезами. Ошибка здесь приводит к двойному учёту одного запаса.
Согласуйте формулу доступности
В простом учебном примере доступное количество равно физическому запасу за вычетом подтверждённых резервов и страхового буфера. Но реальная формула может учитывать брак, карантин, упаковки, незавершённые перемещения и ограничения канала.
Не вычитайте резерв дважды. Если исходное поле 1С уже означает свободный остаток, дополнительное уменьшение на те же заказы занизит доступность. Формулу должен подтвердить специалист, понимающий конкретную конфигурацию и складской процесс.
Для штучных или дефицитных товаров можно распределять квоты по каналам. Для большого общего запаса иногда подходит единый доступный пул с быстрым резервированием и буфером. Это разные стратегии: выбрать их следует осознанно, учитывая риск отмен и упущенных продаж.
Создайте единую таблицу соответствий
У товара есть идентификатор в 1С и обозначения в каждом канале. Варианты и комплекты усложняют связь: один набор на площадке может расходовать несколько складских позиций. Такое соответствие должно храниться явно, а не определяться каждый раз по похожему названию.
| Связь | Что зафиксировать |
|---|---|
| Товар и вариант | Идентификатор 1С, характеристика, артикул продавца |
| Канал | Кабинет, модель продаж, активность публикации |
| Склад | Физическая зона и соответствующий склад площадки |
| Единица продажи | Штука, упаковка, комплект и коэффициент пересчёта |
| Резерв | Момент создания, подтверждения и освобождения |
При изменении состава комплекта нужно пересчитать его доступность. Если комплект содержит две единицы одного компонента и одну другого, количество комплектов определяется ограничивающим компонентом. Это правило должно работать и при продаже компонентов отдельно.
Передача обновления ещё не означает его применение
Храните отдельно желаемое количество, последнюю отправку и подтверждённое состояние. Успешный сетевой ответ может означать только принятие запроса в обработку, если так устроен конкретный метод. Поведение проверяется по документации площадки.
Например, API Яндекс Маркета предусматривает работу с остатками, заказами и уведомлениями. Набор методов выбирается с учётом модели работы продавца; универсального одинакового запроса для всех площадок нет. См. официальную документацию Маркета.
Не ставьте всем каналам произвольный частый опрос без учёта ограничений. Нужны очередь изменений, объединение устаревших обновлений и контролируемые повторы. Если количество сначала стало пять, затем четыре, нет смысла бесконечно досылать старое значение пять после более нового.
Обрабатывайте заказы и отмены согласованно
Полученный заказ должен уменьшить общий доступный запас в выбранной точке процесса. После этого обновление получают другие каналы. Если каждый канал учитывается отдельно, общий склад продолжит выглядеть свободным, хотя часть товара уже обещана.
Для отмены проверьте, что резерв действительно существовал и ещё не был освобождён. Повтор одного события отмены не должен увеличивать запас дважды. Возврат также не всегда сразу становится доступным: товар может требовать проверки качества или фактически ещё находиться в пути.
Сохраните связь заказа площадки с объектом учёта и журналом операции. Это позволяет выяснить, почему конкретная позиция была зарезервирована, без ручного поиска по времени и сумме.
Что делать при остановке обмена
Для каждой категории установите допустимую давность данных. При превышении порога уведомите ответственного и примените согласованную политику: например, уменьшить доступность рискованных позиций или временно остановить их продажу. Автоматически обнулять весь ассортимент при любой ошибке тоже не всегда разумно.
После восстановления выполните сверку, а не только отправку накопленной очереди. За время перерыва могли появиться заказы, ручные изменения и возвраты. Проверка должна сопоставить фактические состояния и выявить объекты, требующие вмешательства.
Как проверять такую интеграцию
Для ежедневного контроля полезен небольшой отчёт: канал, время последнего подтверждённого обновления, число ошибок и позиции с расхождениями. Показывайте отдельно техническую доступность API и свежесть товарных данных. Соединение может работать, пока очередь конкретного товара стоит из-за неверного соответствия артикула. Назначьте ответственного за разбор таких исключений и фиксируйте решение, чтобы повторная синхронизация не возвращала уже исправленную проблему.
- Одновременные заказы из двух каналов на ограниченный запас.
- Повторное получение заказа и отмены без повторного изменения резерва.
- Продажа упаковки и комплекта с правильным расходом компонентов.
- Один недоступный канал при работающих остальных.
- Изменение остатка во время обработки предыдущего обновления.
- Восстановление после паузы и контрольная сверка.
Испытания проводите в доступных тестовых режимах или на согласованных контрольных позициях, не создавая фиктивные реальные покупки. Необходимые ограничения зависят от конкретной площадки.
Хорошая схема синхронизации не обещает устранить любую задержку. Она делает задержку измеримой, уменьшает риск перепродажи и даёт сотрудникам понятный способ найти и исправить расхождение. Именно это важнее красивой надписи «обмен в реальном времени».
Обсудим вашу задачу
Расскажите, что нужно запустить или улучшить. Помогу определить состав работ и следующий шаг. Подольск, Московская область; работаю с проектами по всей России.


