Синхронізація даних
Синхронізація
Синхронізація даних між різними системами це завжди виклик для розробника, адже збудувати надійний ETL це затратно по часу, а також не завжди зручно. Вам потрібно завжди слідкувати за "джерелом правди" та зберігати ідентифікатори записів в суміжних системах для подальшої upsert стратегії (update or insert).
remoteId
Керуй на рівні архітектури до основних сутностей через API додає таке зручне поле remoteId
Це ідентифікатор даних з вашого "джерела правди". Він не є обов'язковим, але якщо ви його передаєте, то значення повинно бути унікальним.
remoteId дозволяє вам при синхронізації даних використовувати його для наступних обмінів. Завдяки цьому для синхронізації даних в Керуй вам не потрібно на своїй стороні зберігати id
значення з Керуй.
Upsert мутації
Окрім стандартних create/update/delete мутацій в Керуй API є також окремі upsert мутації котрі дозволяють вам простіше синхронізувати дані. Вони працюють за принципом update or insert. Тобто ви просто викликаєте потрібну вам upsert мутацію з необхідним ідентифікатором або вашим remoteId
і Керуй сам вирішить чи цей запис потрібно створити, чи оновити. Наразі наше API надає наступні upsert мутації
upsertItem
upsertAddress
upsertLocation
upsertContragent
upsertDocument
upsertDocumentItem
upsertTaxon
Приклад з номенклатурою
Для прикладу візьмемо синхронізацію номенклатури з вашої БД в Керуй.

Запит
Змінні
Відповідь
Керуй в цьому випадку використав значення вашого remoteId
та створив відповідний запис у таблицю номенклатур. ID та SKU були згенеровані автоматично, але remoteId може бути використаний для наступних обмінів даними.
Для прикладу у товару змінилась ціна і ви передаєте ту саму мутацію, але вже з іншими змінними (змінилась basePrice
)
Запит
Відповідь
Як бачите, запис оновився з новим значенням ціни
Пріоритети ідентифікаторів
Для upsert мутацій дуже важливий пріоритет ідентифікаторів, якщо ви вирішили в 1 запиті передати id
та remoteId
то основним ключем синхронізації буде саме id
Детальніше про пріоритети ідентифікаторів ви можете ознайомити в анотації для API документації кожної окремої upser мутації
Пов'язані статті
Переглянути статті в тій самій категорії