Сценарии использования API

API SO+ используется для односторонней выгрузки данных из сервиса SellOut+ в интегрируемую внешнюю систему.

Здесь под <API_URL> подразумевается URL вида: https://app.sellout.plus/<ВАШ_ТЕНАНТ>/api/

Выгрузка данных

Если необходима выгрузка всех данных с нуля, начните с п.1.

Если необходима выгрузка конкретного объекта, начните с п.2.

  1. Сначала загрузите объект Источники (data-source), т.к. во многих объектах данные разбиваются на блоки по ID источника.

    1. Отправьте запрос по URL, указав необходимый вам список полей, состоящий как минимум из поля ID:

      <API_URL>/sync/data-source?fields=ID

    2. Чтобы сравнить сходимость данных между SO+ и внешней системой, необходимо сравнить КС по объекту Источники (data-source). При расхождении — повторить синхронизацию объектов.

  2. Синхронизация остальных объектов.

    1. Определить название требуемого объекта в документации.

    2. Получить перечень всех блоков и контрольных сумм объекта:

      <API_URL>/checksum?object=<ИМЯ_ОБЪЕКТА>

    3. Выгрузить данные по каждому блоку объекта, указав необходимые для выгрузки во внешнюю систему поля объекта и поля для получения блока данных. Примеры запросов:

      1. <API_URL>/sync/<ИМЯ_ОБЪЕКТА>?fields=<НЕОБХОДИМЫЕ_ПОЛЯ>&ID_mapping_DataSource=<ID_ИСТОЧНИКА>&date=<ДАТА_ФАКТА>

      2. <API_URL>/sync/<ИМЯ_ОБЪЕКТА>?fields=<НЕОБХОДИМЫЕ_ПОЛЯ>&ID_mapping_DataSource=<ID_ИСТОЧНИКА>

      3. <API_URL>/sync/<ИМЯ_ОБЪЕКТА>?fields=<НЕОБХОДИМЫЕ_ПОЛЯ>

    4. Если важна согласованность данных между SO+ и внешней системой, то необходимо сравнить КС по объекту. При расхождении — повторить синхронизацию объектов.

    5. Если блок данных слишком большой или есть ограничение клиента на максимальное кол-во получаемых записей, то можно воспользоваться инкрементальной выгрузкой данных (пагинацией), передав в запросе на синхронизацию объектов дополнительные параметры ID и Take.

Проверка актуальности выгруженных данных

Для проверки того, что блок данных объекта, выгруженный ранее во внешнюю систему, совпадает с данными, хранящимися в SO+ прямо сейчас, необходимо сравнить КС блоков данных.

  1. Получить перечень всех блоков и КС объекта из SO+:

    <API_URL>/checksum?object=<ИМЯ_ОБЪЕКТА>

  2. Для каждого блока объекта:

    1. Рассчитать КС блока на стороне клиента.

    2. Сравнить КС, полученные от SO+ (п.1), с КС, рассчитанными на стороне клиента (п.2-a):

      1. Если КС совпадают, синхронизация блока закончена. Данные в вашей базе соответствуют данным в SellOut+.

      2. Если КС не совпадают, значит данные в SellOut+ и данные у клиента различаются. Чтобы получить актуальные данные, необходимо повторно выполнить выгрузку этого блока данных. Sellout+ не хранит данные, которые были удалены, поэтому блоки при выгрузке нужно заменять полностью на новые.

Получение итоговых записей в справочниках

Чтобы выгрузить с помощью API только итоговые записи, нужно запаросить с параметром (ID_mapping_DataSource = 1) : <API_URL>/sync/<ИМЯ_ОБЪЕКТА>?ID_mapping_DataSource=1