Обновлено: сентябрь 2026
Синхронизация остатков поставщика с сайтом — это автоматическое обновление данных о наличии товаров на основе информации от поставщика. Корректная синхронизация предотвращает продажу отсутствующих позиций, снижает нагрузку на поддержку и повышает доверие клиентов. Основные способы: файловый обмен (XML/CSV), прямой API-обмен, промежуточные сервисы-агрегаторы или готовые модули CMS.
Почему несинхронизированные остатки убивают конверсию и доверие?
Когда остатки на сайте не совпадают с реальным наличием у поставщика или на складе, возникают три критические проблемы:
Продажа «призрачных» товаров. Клиент оформляет заявку, а через час выясняется, что товара нет. Это не просто отмена заказа — это потеря доверия. По опыту Zveno, после такого инцидента клиент редко возвращается за альтернативой, даже если вы предлагаете замену.
Нагрузка на поддержку и операционный отдел. Каждое расхождение — это звонок менеджера поставщику, уточнение сроков, переговоры с клиентом. На деле, если остатки обновляются вручную раз в день, а товар оборачивается быстро, менеджеры тратят до 30% времени на выяснение фактического наличия.
Репутационные потери в мультиканальных продажах. Если вы продаёте через сайт, офлайн-точку и маркетплейсы, несинхронизированные остатки приводят к овербукингу: товар продан в одном канале, но всё ещё доступен в других. Результат — негативные отзывы, возвраты, штрафы площадок.
В B2B малом бизнесе, где средний чек выше, а цикл сделки длиннее, такие ошибки особенно болезненны. Клиент, столкнувшийся с «призрачным» товаром, не просто уходит — он делится опытом с коллегами по отрасли.
«Мы видели компании, которые теряли до 40% повторных обращений из-за одного случая продажи отсутствующего товара. В B2B репутация — это не абстракция, это конкретные рекомендации внутри отраслевого сообщества. Один негативный опыт распространяется быстрее, чем десять положительных отзывов», — Григорий Блаер, основатель Zveno.
Какой способ синхронизации остатков выбрать: файлы, API или сервис?
Существует пять основных подходов к синхронизации остатков поставщика с сайтом. Выбор зависит от частоты изменений, количества SKU, технических возможностей поставщика и вашей инфраструктуры.
Ручной экспорт/импорт Excel или CSV
Как работает: Поставщик отправляет файл с остатками (обычно Excel или CSV), вы вручную загружаете его в админку сайта или передаёте разработчику для импорта.
Плюсы: Не требует разработки, можно запустить за один день, подходит для старта.
Минусы: Человеческий фактор (забыли обновить, загрузили старый файл), задержки в обновлении, не масштабируется при росте ассортимента.
Когда подходит: Узкий ассортимент (до 100 SKU), низкая оборачиваемость, один поставщик, нет офлайн-точек и маркетплейсов.
Файловый обмен по расписанию (XML/YML/CSV)
Как работает: Поставщик размещает файл с остатками на своём сервере или FTP, ваш сайт автоматически скачивает его каждые N минут или часов и обновляет базу.
Плюсы: Автоматизация без сложной разработки, стандартные форматы (XML, YML для маркетплейсов), контроль целостности файла.
Минусы: Задержка в обновлении данных, зависимость от доступности сервера поставщика, сложность обработки ошибок в файле.
Когда подходит: Средний ассортимент (100–1000 SKU), обновления несколько раз в день достаточно, поставщик предоставляет стабильный фид. Яндекс.Маркет, например, скачивает YML-файлы продавцов примерно каждые 30 минут — это типичный интервал для массовых площадок.
Прямой API-обмен
Как работает: Ваш сайт или промежуточный сервис запрашивает остатки через API поставщика в режиме реального времени или по расписанию. Некоторые API поддерживают push-уведомления: поставщик сам отправляет изменения, как только они происходят.
Плюсы: Минимальная задержка, гибкость (можно запрашивать остатки по конкретным SKU), возможность двусторонней интеграции (передавать заказы обратно поставщику).
Минусы: Требует разработки, зависимость от лимитов API (количество запросов в час), необходимость обрабатывать ошибки и восстанавливать связь.
Когда подходит: Высокооборотные товары, мультиканальные продажи (сайт + офлайн + маркетплейсы), несколько поставщиков, критична актуальность данных.
Промежуточные сервисы-агрегаторы
Как работает: Сервис (например, RePricer, ShopManager, Databird) собирает данные с поставщиков, складов, маркетплейсов в единую базу и раздаёт остатки на ваш сайт и другие каналы продаж.
Плюсы: Единая точка настройки для всех каналов, разгрузка сайта, готовые коннекторы к популярным площадкам.
Минусы: Ежемесячная подписка, зависимость от стабильности сервиса, ограничения бесплатных тарифов.
Когда подходит: Мультиканальные продажи, несколько поставщиков, нужна централизованная панель управления остатками и ценами.
Готовые модули для CMS
Как работает: Плагин для вашей CMS (Webasyst, WooCommerce, 1С-Битрикс) подключается к API поставщика или импортирует файлы.
Плюсы: Быстрое внедрение, поддержка разработчиков модуля, часто есть готовые интеграции с популярными поставщиками.
Минусы: Привязка к экосистеме CMS, ограниченная кастомизация, не всегда подходит для сложных сценариев — например, несколько поставщиков с разными форматами.
Когда подходит: Стандартная CMS, типовая задача, ограниченный бюджет на разработку.
Получить бесплатный аудит сайта
Мэппинг данных и мастер-система: как связать остатки поставщика, склада и сайта?
Чаще всего синхронизация ломается не из-за технических ошибок, а из-за несопоставленных данных. API может работать идеально, но остатки не обновятся, если артикулы поставщика не совпадают с SKU на сайте.
Выбор мастер-системы учёта
Мастер-система — это единый источник правды по остаткам. Все остальные системы (сайт, маркетплейсы, офлайн-касса) получают данные из неё.
Варианты мастер-системы:
- Учётная система компании (1С, ERP, облачный товароучётный сервис) — если у вас собственный склад и вы контролируете физическое движение товара.
- Система поставщика — если вы работаете по дропшиппингу и не храните товар.
- Промежуточный агрегатор — если несколько поставщиков и нужно сводить остатки в единый пул.
По опыту Zveno, попытка вести остатки одновременно в нескольких системах (например, в 1С и на сайте) приводит к расхождениям в течение недели. Выберите одну систему, где фиксируются все движения товара, и синхронизируйте остальные каналы с ней.
Сопоставление номенклатуры (мэппинг SKU)
Поставщик передаёт товары с артикулами ABC-123, ABC-124, а на вашем сайте те же позиции называются Товар-001, Товар-002. Без таблицы соответствия синхронизация не сработает.
Что нужно сопоставить:
- Идентификаторы: артикул поставщика → SKU на сайте → штрихкод (если есть).
- Единицы измерения: поставщик передаёт упаковки по 10 шт, сайт продаёт поштучно — нужен коэффициент пересчёта.
- Упаковки и фасовки: один товар может быть в разных фасовках (банка 1 л, канистра 5 л) — это разные SKU.
Расхождения в упаковках и единицах измерения — частая причина сбоев. Поставщик обновил остаток «10 упаковок», сайт показал «10 штук», хотя в упаковке 50 единиц.
Сопоставление складов
Если у вас несколько физических складов (свой + склады поставщиков) и несколько виртуальных (FBO на Wildberries, FBS на Ozon, склад для сайта), нужно определить, какой физический склад соответствует какому виртуальному.
Пример схемы:
- Физический склад А (Москва) → виртуальный склад «Сайт Москва» + FBO Wildberries.
- Физический склад Б (поставщик, Санкт-Петербург) → виртуальный склад «Сайт СПб» + FBS Ozon.
Без этой карты вы не сможете корректно резервировать товар. Заказ с сайта заберёт остаток со склада А, но на маркетплейсе товар всё ещё будет доступен, хотя физически его уже нет.
Обработка сложных кейсов
Несколько поставщиков для одного товара. Если один SKU поставляют два разных поставщика, нужно решить:
- Суммировать остатки и показывать общее количество.
- Или приоритизировать одного поставщика (например, с более коротким сроком поставки).
Комплекты и наборы. Если на сайте продаётся комплект из трёх товаров, а у поставщика они учитываются отдельно, нужна логика: остаток комплекта = минимальный остаток любой позиции в наборе.
Товары с вариациями. Один товар, но разные цвета/размеры — у поставщика это отдельные артикулы, на сайте — вариации одной карточки. Мэппинг должен учитывать связь.
Как выбрать частоту обновления остатков и настроить резервирование?
Даже идеально настроенная синхронизация не защитит от овербукинга, если не продуманы правила резервирования и частота обновлений.
Как выбрать частоту обновления остатков
Всё зависит от того, как быстро продаётся товар и сколько у вас каналов продаж:
- Раз в день — подходит для товаров с низкой оборачиваемостью (промышленное оборудование, специализированные комплектующие), один канал продаж.
- Каждые 30–60 минут — оптимальный вариант для большинства интернет-магазинов, средняя оборачиваемость, несколько каналов.
- Каждые 5–15 минут — высокооборотные товары, мультиканальные продажи (сайт + офлайн + маркетплейсы). Риск двойной продажи остаётся минимальным.
- Near real-time (push-модель) — поставщик отправляет изменения сразу при движении товара. Нужно для критичных позиций, но требует API с поддержкой вебхуков.
Учтите ограничения площадок и поставщиков: Яндекс.Маркет скачивает YML-файлы примерно каждые 30 минут, многие API лимитируют запросы (например, не чаще раза в 15 минут).
Правила резервирования: как не продать товар дважды
Резервирование — это временная блокировка товара при оформлении заказа. На практике это выглядит так:
- Клиент добавил товар в корзину — остаток НЕ резервируется (корзину могут бросить).
- Клиент начал оформление заказа — остаток резервируется на 15–30 минут.
- Заказ оформлен и оплачен — резерв фиксируется до отгрузки.
- Заказ отменён или время резерва истекло — остаток возвращается в доступные.
Главное: резервирование должно работать на уровне мастер-системы, а не только на сайте. Если клиент заказал товар на сайте, остаток должен уменьшиться везде — в маркетплейсах, в офлайн-кассе. Иначе тот же товар продадут дважды.
Неснижаемый остаток и буфер безопасности
Неснижаемый остаток — это минимальный резерв, который не выставляется на продажу. Пример: при остатке 2 единицы на сайте показываете 0. Так избегаете ситуации, когда последнюю единицу продают одновременно в двух каналах.
Рекомендации по размеру буфера:
- Для высокооборотных товаров: 2–3 единицы.
- Для товаров с длительным циклом поставки: 5–10 единиц.
- Для уникальных позиций или товаров на заказ: буфер не нужен, но обязательна пометка «под заказ» вместо «в наличии».
Буфер особенно важен, если остатки обновляются не в реальном времени. Задержка в 15 минут плюс буфер в 2 единицы — и риск двойной продажи практически исчезает.
TTL и защита от устаревших данных
Если связь с поставщиком прервалась (API недоступен, файл не обновился), остатки на сайте быстро устаревают. Чтобы не продавать по неактуальным данным, используйте TTL (Time To Live) — максимальный возраст данных.
Вот как это работает:
- Данные свежее 1 часа — показываем остаток как есть.
- Данные старше 1 часа, но младше 4 часов — помечаем в админке как «устаревшие», на витрине ничего не меняем.
- Данные старше 4 часов — скрываем товар или показываем «уточняйте наличие», отправляем уведомление ответственному.
Это архитектурная защита. Если поставщик «отвалился», вы не продолжаете продавать по старым остаткам.
Надёжность интеграции: обработка ошибок, нагрузка и восстановление связи
Синхронизация остатков — это не разовая настройка, а постоянно работающий процесс. Даже при идеальной архитектуре возникают сбои: API поставщика недоступен, файл пришёл с ошибками, сервер перегружен. Надёжная интеграция должна выдерживать эти ситуации.
Обработка ошибок API и файлов
Типичные ошибки:
- 4xx (ошибки клиента): неверный формат запроса, истёк токен авторизации, превышен лимит запросов.
- 5xx (ошибки сервера): API поставщика временно недоступен, таймаут.
- Ошибки в файле: некорректный XML, отсутствуют обязательные поля, дублирующиеся артикулы.
Как реагировать:
- Логирование: каждый запрос и ответ записывается в лог с меткой времени, кодом ответа, телом запроса.
- Ретраи: при 5xx или таймауте повторите запрос через 1 минуту, потом через 5, потом через 15. Максимум 3–5 попыток.
- Уведомления: если API недоступен более 30 минут, отправьте уведомление ответственному (email, Telegram, Slack).
- Откат: если новый файл содержит ошибки, не применяйте его. Продолжайте работать с предыдущей версией.
Восстановление после разрыва связи
Если интеграция была недоступна несколько часов, накопились изменения остатков. Как их «добрать»:
- Полная синхронизация: запросить все остатки заново, обновить базу целиком. Подходит для небольших каталогов (до 1000 SKU).
- Инкрементальная синхронизация: запросить только изменения с момента последнего успешного обновления (если API поддерживает параметр
updated_since). - Приоритизация критичных SKU: сначала обновить остатки по высокооборотным товарам, затем по остальным.
После восстановления связи проверьте, не возникло ли расхождений в резервах. Заказы, оформленные во время сбоя, могли не зарезервировать товар в мастер-системе.
Нагрузочное тестирование
Перед запуском синхронизации в продакшн протестируйте, выдержит ли интеграция пиковую нагрузку:
- Массовое обновление остатков: что будет, если поставщик одновременно изменит остатки по 500 SKU?
- Одновременные заказы: что будет, если 10 клиентов одновременно оформят заказ на один товар с остатком 3 единицы?
- Сбой мастер-системы: как поведёт себя сайт, если учётная система недоступна?
Такое тестирование выявляет узкие места: медленные SQL-запросы, отсутствие очередей для обработки обновлений, блокировки базы данных при массовых изменениях.
Мониторинг и метрики
Настройте мониторинг ключевых показателей:
- Частота успешных обновлений: сколько раз в час или день остатки обновляются без ошибок.
- Задержка обновления: время между изменением остатка в мастер-системе и отображением на сайте.
- Количество ошибок 4xx/5xx: если растёт — проблема с API или авторизацией.
- Количество товаров с устаревшими данными: если больше 5% каталога — это критическая ситуация.
Мониторинг позволяет обнаружить проблему до того, как клиенты начнут жаловаться на «призрачные» товары.
Часто задаваемые вопросы
Какой способ синхронизации остатков с поставщиком выбрать: файлы или API?
Для узкого ассортимента (до 100 SKU) и низкой оборачиваемости подойдёт файловый обмен (XML/CSV по расписанию) — проще внедрить, не требует сложной разработки. Для высокооборотных товаров, мультиканальных продаж или нескольких поставщиков выбирайте API: минимальная задержка обновлений (5–15 минут), возможность двусторонней интеграции (передавать заказы обратно). Если поставщик не предоставляет API, используйте промежуточный сервис-агрегатор.
Как понять, что взять за источник правды по остаткам: сайт, склад или данные поставщика?
Источник правды — это система, где фиксируются все физические движения товара. Если у вас собственный склад, мастер-система — ваша учётная система (1С, ERP). Если работаете по дропшиппингу и не храните товар, источник правды — система поставщика. Если несколько поставщиков и собственный склад, используйте промежуточный агрегатор, который сводит остатки в единый пул. Главное: остатки ведутся в одном месте, остальные каналы синхронизируются с ним.
Что делать, если у разных поставщиков разные артикулы для одного и того же товара?
Создайте таблицу соответствия (мэппинг): артикул поставщика А → SKU на сайте ← артикул поставщика Б. В мастер-системе заведите единый SKU для этого товара, а в настройках интеграции укажите, какие артикулы поставщиков ему соответствуют. При обновлении остатков система будет суммировать данные от обоих поставщиков или приоритизировать одного (например, с более коротким сроком поставки). Без мэппинга синхронизация не сработает — система не поймёт, что это один товар.
Как часто нужно обновлять остатки, чтобы покупатели не видели призрачные товары?
Для товаров с низкой оборачиваемостью достаточно обновления раз в день. Для среднеоборотных позиций — каждые 30–60 минут. Для высокооборотных товаров и мультиканальных продаж (сайт + офлайн + маркетплейсы) — каждые 5–15 минут. Если критична актуальность, используйте push-модель: поставщик или мастер-система отправляет изменения сразу при движении товара. Учитывайте лимиты API и ограничения площадок: Яндекс.Маркет скачивает файлы примерно каждые 30 минут.
Как настроить резервирование и неснижаемый остаток, чтобы не продавать то, чего уже нет?
Резервирование должно работать на уровне мастер-системы: когда клиент оформляет заказ на сайте, остаток уменьшается во всех каналах (маркетплейсы, офлайн-касса). Неснижаемый остаток — это буфер безопасности: при остатке 2 единицы показывать 0 на витрине, чтобы избежать овербукинга. Для высокооборотных товаров ставьте буфер 2–3 единицы, для товаров с длительным циклом поставки — 5–10 единиц. Если обновление остатков происходит не в реальном времени, буфер компенсирует задержку.
Как связать сайт, офлайн-склад и маркетплейсы в одну систему управления остатками?
Выберите мастер-систему учёта — 1С, ERP или облачный сервис. Туда будут стекаться все движения товара. Подключите каналы продаж через API или агрегатор. Сопоставьте физические склады с виртуальными: FBO Wildberries, FBS Ozon, склад для сайта.
Настройте правила резервирования так, чтобы заказ в любом канале сразу уменьшал остаток в мастер-системе и обновлял все остальные каналы. На деле без единой системы будут расхождения: товар продан офлайн, а на сайте он всё ещё доступен.
Что учитывать при выборе сервиса или модуля для автоматического обновления остатков на сайте?
Проверьте, поддерживает ли сервис интеграцию с вашими поставщиками и площадками — через API или форматы файлов. Уточните лимиты бесплатного тарифа: сколько SKU можно загрузить, как часто обновляются остатки.
Оцените возможности мэппинга. Как сервис сопоставляет артикулы поставщиков с SKU на сайте? Можно ли настроить коэффициенты пересчёта для упаковок? Проверьте обработку ошибок и уведомления при сбоях.
Для мультиканальных продаж критично, чтобы резервирование работало на уровне всех каналов, а не только сайта.
Давайте разберём ситуацию, а далее подберём решение
Созвонимся на 15 минут: зададим нужные вопросы, разберём вашу ситуацию и расскажем, что можно сделать. После этого определим следующий шаг.