Требуется двусторонний обмен между магазином и учётной системой по заказам, счетам, клиентам, товарам и остаткам. Оформленный заказ должен сам превращаться в счёт или продажу с корректным клиентом; карточка клиента, заведённая или отредактированная где угодно, должна находить пару, а не плодить копии; изменение остатка от продажи, возврата или ручной правки — уходить во вторую систему. Отдельно нам нужна настраиваемая таблица соответствия полей: налоги, артикулы, валюты, способы оплаты — мы хотим видеть и менять, как поле магазина превращается в поле бухгалтерии, а не доверять это скрытой логике.
При двустороннем обмене будут конфликты, и здесь для нас главное — предсказуемость. Если между синхронизациями одну и ту же запись поменяли с двух сторон, нужны понятные правила приоритета, назначенный источник истины по каждому типу данных и журнал, в который можно зайти и увидеть, что перенесено, что пропущено, а что отложено под ручное решение. Расскажите, как организуете расписание и обмен близко к реальному времени там, где это важно, как поймаете дубли, что произойдёт при кратком сбое API бухгалтерии и как мы сможем повторно прогнать неудачную партию без риска задвоить счета.
— Данные обмена: заказы, счета, клиенты, товары, остатки склада
— Двусторонний обмен с источником истины и журналом конфликтов
— Настраиваемое соответствие полей: налог, артикул, валюта, оплата
— Повтор упавших партий без дублей, идемпотентные запуски