Обмен с маркетплейсом: очередь, повторы, сверка
Площадка недоступна, ответила ошибкой или ответила дважды — это не авария, а обычный вторник. Обмен должен быть к этому готов.
Обмен с маркетплейсом состоит из четырёх потоков: товары и цены наружу, остатки наружу, заказы внутрь, статусы оплат и отгрузок в обе стороны. Ошибки в каждом потоке стоят разного, и обращаться с ними нужно по-разному.
Заказ важнее остатка
Если не ушли остатки, компания рискует продать то, чего нет. Если не пришёл заказ, клиент уже заплатил, а его никто не собирает. Поэтому у потоков разный приоритет, разная частота и разное поведение при сбое.
Очередь и повторы
Каждая операция попадает в очередь, при ошибке повторяется с задержкой и ограниченным числом попыток, а после исчерпания попыток становится видимой задачей для человека. Без такой механики «потерянный заказ» обнаруживает клиент.
Обмен без журнала и очереди — это не интеграция, а надежда на стабильность интернета.
Идемпотентность
Площадка может прислать один и тот же заказ дважды, а сеть — подтвердить операцию, которая на самом деле прошла. Обмен должен уметь распознать повтор и не создать дубль документа: иначе склад собирает заказ дважды.
Ежедневная сверка
Раз в сутки сравниваем количество и суммы заказов на площадке и в учёте, отдельно смотрим неотправленные остатки и незакрытые статусы. Расхождение попадает в отчёт до того, как о нём узнает покупатель.
Такой обмен собирали для оптовой и розничной торговли — включая связку 1С с сайтом, складом и оплатой. Ручной перенос заказов после запуска уходит полностью.
Похожая задача у вас?
Расскажите ситуацию — скажем, что делали в подобных проектах и с чего начать.