CASE / OPENEDINTEGRATION-MARKETPLACES
← все кейсыИнтеграция · E-commerceгод · 2024длительность · 7 недель

Маркетплейсы ↔ 1С

Двусторонняя синхронизация WB / Ozon с 1С: остатки, заказы, цены, статусы — без овер-селла.

SYNC · КОНТУРlive
WBOzonAvitoУТ · OData
лаг остатков · 41 с
ОСТАТКИ · СКЛАДЫ
SKUWBOzon
KRS-204121212
TXT-118003
BAG-077484848
MUG-512777
LMP-330212021
PEN-006555
сверка по складам4 / 6 ✓
−92%
овер-селлов
3
маркетплейса
СОБЫТИЯ
остаткиok
12:04:41idem ✓
заказ #88421ok
12:04:38idem ✓
цена KRS-204retry
12:04:31idem ✓
статус → отгр.ok
12:04:22idem ✓
остаткиok
12:03:59idem ✓
очередь · 0 застрявших
01 / CONTEXTКонтекст

Контекст

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

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

Нас позвали закрыть это интеграцией, а не ещё одним человеком с Excel: единый контур, где 1С остаётся источником правды, а площадки получают одинаковую картину остатков за минуту.

02 / BRIEFЗадача

Задача

  1. 01Двусторонняя синхронизация остатков между WB, Ozon и 1С с лагом меньше минуты.
  2. 02Заказы с площадок автоматически попадают в 1С, статусы (сборка, отгрузка, доставка) едут обратно.
  3. 03Цены и акции выгружаются из 1С в карточки без ручной правки в кабинетах.
  4. 04Защита от овер-селла: резерв остатка списывается атомарно, повторные события не дублируют заказы.
  5. 05Прозрачность: видно, что синхронизируется, где затык и почему, без захода в код.
03 / SOLUTIONРешение

Решение

/ step 01

Очередь как буфер между мирами

API маркетплейсов и 1С работают в разном ритме и иногда отвечают ошибками. Поставили очередь: события не теряются при сбое площадки и обрабатываются с управляемой скоростью, без перегрузки 1С.

/ step 02

Идемпотентность по ключу события

Каждое событие несёт стабильный ключ. Повторная доставка (а маркетплейсы её гарантируют) не создаёт второй заказ и не списывает остаток дважды — обработчик узнаёт уже виденное и тихо подтверждает.

/ step 03

1С как источник правды по остаткам

Через HTTP-сервисы и OData 1С отдаёт актуальный остаток по складам, а назад принимает заказы и резервы. Площадки не спорят между собой — они выравниваются на одну цифру из учёта.

/ step 04

Атомарный резерв против овер-селла

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

/ step 05

Мониторинг и алерты на затыки

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

04 / STACKАрхитектура

Архитектура

WB APIOzon API1С OData / HTTP-сервисыОчередь сообщенийИдемпотентные обработчикиМониторинг + алерты

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

Каждый обработчик идемпотентен по ключу события и пишет в 1С через HTTP-сервисы, а актуальные остатки читает по OData. Поверх — мониторинг с метриками лага, длины очереди и расхождений по складам; повторяемые ошибки уходят в ретраи с backoff, неустранимые — в карантин с алертом оператору.

05 / RESULTSРезультаты

Результаты

<0мин
остатки синхронны
−92%
овер-селлов
0
маркетплейса в контуре
0.0%
SLA доставки событий
06 / HONESTЧто не получилось с первого раза

Что не получилось с первого раза

  • Первая версия дёргала остатки по таймеру раз в 15 минут — лаг был виден глазом и овер-селл всё ещё проскакивал в часы пик. Переписали на событийную модель с очередью: остаток списывается в момент продажи, а не на следующем тике.
  • Недооценили повторную доставку событий: маркетплейс прислал один заказ дважды, и в 1С на тесте задвоился документ. Добавили идемпотентность по ключу и дедуп на входе — после этого повторы стали безопасны by design.
07 / VOICEСлово клиента
Раньше день начинался с ручной сверки остатков и отмены случайных продаж. Теперь я открываю дашборд, вижу зелёную очередь и просто работаю. Овер-селл из ежедневной боли стал редким исключением.
EC
Operations Lead
Руководитель операций (под NDA) · E-commerce seller
08 / TEAMКоманда

Команда

ИК
Интеграционный архитектор
ДБ
Backend / очередь и обработчики
АО
1С-разработчик (HTTP-сервисы, OData)
СМ
QA / нагрузка и сценарии сбоев
09 / ROADMAPЧто дальше

Что дальше

  • Подключить четвёртую площадку в тот же контур без переписывания обработчиков.
  • Синхронизировать движение по нескольким складам и схемам FBO/FBS отдельно.
  • Автоподбор цены под правила площадок и акции прямо из 1С.
10 / RELATEDСвязанные кейсы