Сценарии использования API
API SO+ используется для односторонней выгрузки данных из сервиса SellOut+ в интегрируемую внешнюю систему.
Здесь под <API_URL> подразумевается URL вида: https://app.sellout.plus/<ВАШ_ТЕНАНТ>/api/
Выгрузка данных
Если необходима выгрузка всех данных с нуля, начните с п.1.
Если необходима выгрузка конкретного объекта, начните с п.2.
Сначала загрузите объект Источники (data-source), т.к. во многих объектах данные разбиваются на блоки по ID источника.
Отправьте запрос по URL, указав необходимый вам список полей, состоящий как минимум из поля
ID:<API_URL>/sync/data-source?fields=IDЧтобы сравнить сходимость данных между SO+ и внешней системой, необходимо сравнить КС по объекту Источники (data-source). При расхождении — повторить синхронизацию объектов.
Синхронизация остальных объектов.
Определить название требуемого объекта в документации.
Получить перечень всех блоков и контрольных сумм объекта:
<API_URL>/checksum?object=<ИМЯ_ОБЪЕКТА>Выгрузить данные по каждому блоку объекта, указав необходимые для выгрузки во внешнюю систему поля объекта и поля для получения блока данных. Примеры запросов:
<API_URL>/sync/<ИМЯ_ОБЪЕКТА>?fields=<НЕОБХОДИМЫЕ_ПОЛЯ>&ID_mapping_DataSource=<ID_ИСТОЧНИКА>&date=<ДАТА_ФАКТА><API_URL>/sync/<ИМЯ_ОБЪЕКТА>?fields=<НЕОБХОДИМЫЕ_ПОЛЯ>&ID_mapping_DataSource=<ID_ИСТОЧНИКА><API_URL>/sync/<ИМЯ_ОБЪЕКТА>?fields=<НЕОБХОДИМЫЕ_ПОЛЯ>
Если важна согласованность данных между SO+ и внешней системой, то необходимо сравнить КС по объекту. При расхождении — повторить синхронизацию объектов.
Если блок данных слишком большой или есть ограничение клиента на максимальное кол-во получаемых записей, то можно воспользоваться инкрементальной выгрузкой данных (пагинацией), передав в запросе на синхронизацию объектов дополнительные параметры ID и Take.
Проверка актуальности выгруженных данных
Для проверки того, что блок данных объекта, выгруженный ранее во внешнюю систему, совпадает с данными, хранящимися в SO+ прямо сейчас, необходимо сравнить КС блоков данных.
Получить перечень всех блоков и КС объекта из SO+:
<API_URL>/checksum?object=<ИМЯ_ОБЪЕКТА>Для каждого блока объекта:
Рассчитать КС блока на стороне клиента.
Сравнить КС, полученные от SO+ (п.1), с КС, рассчитанными на стороне клиента (п.2-a):
Если КС совпадают, синхронизация блока закончена. Данные в вашей базе соответствуют данным в SellOut+.
Если КС не совпадают, значит данные в SellOut+ и данные у клиента различаются. Чтобы получить актуальные данные, необходимо повторно выполнить выгрузку этого блока данных. Sellout+ не хранит данные, которые были удалены, поэтому блоки при выгрузке нужно заменять полностью на новые.
Получение итоговых записей в справочниках
Чтобы выгрузить с помощью API только итоговые записи, нужно запаросить с параметром (ID_mapping_DataSource = 1) : <API_URL>/sync/<ИМЯ_ОБЪЕКТА>?ID_mapping_DataSource=1