Основные методы

SellOut+ предоставляет API для экспорта загруженных и обработанных данных в другие информационные системы по протоколу HTTPS, данные передаются в формате JSON. API позволяет:

API доступен по адресу https://app.sellout.plus/<ВАШ_ТЕНАНТ>/api/, где <ВАШ_ТЕНАНТ> — наименование проекта.

Для подключения к API требуется ключ аутентификации (токен), который предоставляется сотрудниками SellOut+ (администратором проекта или по запросу на почту support@sellout.plus). Заголовок с токеном необходимо отправлять в каждом запросе к API:

Authorization: Bearer <ВАШ_ТОКЕН>

Таймаут запросов к API на стороне сервера – 10 минут.

Выгрузка блока данных

GET /sync/<ИМЯ_ОБЪЕКТА>, где <ИМЯ_ОБЪЕКТА> – наименование объекта, из которого необходимо получить данные.

Выгрузка происходит по блокам, т.е. один запрос к методу возвращает весь блок данных целиком.

  • Параметры:

    • fields — выгружаемые из объекта поля. Можно использовать любой набор полей из описания объекта. Для перечисления нескольких полей используются символ-разделитель ,. Обязательный параметр.

    • ID_ParentLevel1 — ID иерархии для объектов географии и атрибутов географии, по которому будет получен блок данных. Обязательный параметр для объектов географии и атрибутов географии.

  • Параметры, определяющие блок данных:

    • ID_mapping_DataSource — ID источника, по которому будет получен блок данных. Обязательный параметр для объектов, содержащих источник данных.

    • date — дата факта, по которой будет получен блок данных, формат даты yyyy-mm-dd. Обязательный параметр для выгрузки объектов-фактов. Конкретное название поля с датой факта указано в описании объекта.

Запрос возвращает все записи из заданного блока объекта.

Постраничная выгрузка (пагинация)

Для более удобной работы с крупными объемами данных метод поддерживает постраничная выгрузку. С помощью опциональных параметров ID и Take можно управлять размером и начальной позицией выгружаемой порции данных. Параметры:

  • ID — начальный идентификатор записи объекта для выгрузки данных с использованием пагинации.

    • Для получения первой порции данных укажите ID = 0.

    • Для последующих порций данных укажите ID последней записи из последней полученной порции.

  • Take — количество записей, которое нужно вернуть в ответе. Значение по умолчанию — 1000000.

Запрос возвращает Take записей из заданного блока, у которых поле ID больше переданного значения параметра ID. Результаты будут отсортированы по возрастанию поля ID.

Если в запросе не указан ID или Take , то метод вернёт весь блок данных.

Если в результате запроса получено меньше записей, чем значение параметра Take, значит все порции данных уже получены.

Пример

Запрос выгрузки блока данных в системной утилите curl. Выгрузка данных объекта “Отгрузки в ТТ” от источника данных с кодом “SRT“ за 01.09.2023 с сохранением результата в файл “result.json“:

curl -H "Authorization: Bearer <ВАШ_ТОКЕН>" "https://app.sellout.plus/<ВАШ_ТЕНАНТ>/api/sync/sales-sellout?fields=id%2Cid_mapping_datasource%2Cid_ref_customerfrom%2Cid_ref_customerto%2Cid_ref_sku%2CVolume%2CID_mapping_DataSource=112%2Cdate=2023-09-01" -o result.json

Запрос выгрузки блока данных с пагинацией:

curl -H "Authorization: Bearer <ВАШ_ТОКЕН>" "https://app.sellout.plus/<ВАШ_ТЕНАНТ>/api/sync/sales-sellout?fields=id%2Cid_mapping_datasource%2Cid_ref_customerfrom%2Cid_ref_customerto%2Cid_ref_sku%2CVolume%2CID_mapping_DataSource=112%2Cdate=2023-09-01&ID=19882321%2CTake=100" -o result.json

Структура ответа в обоих случаях одинаковая, различаться будет только количество записей и наличие или отсутствие сортировки по полю ID.

[ { "ID": 3495321228, "ID_mapping_DataSource": 135, "ID_ref_CustomerFrom": 196001727, "ID_ref_CustomerTo": 196009700, "ID_ref_SKU": 196000821, "Volume": 69.0, "RowVersion": 69048278774 }, { "ID": 3495321227, "ID_mapping_DataSource": 135, "ID_ref_CustomerFrom": 196001727, "ID_ref_CustomerTo": 196009700, "ID_ref_SKU": 196000821, "Volume": 2.0, "RowVersion": 69048278773 } ]

Выгрузка блока данных в формате GZIP (сжатый формат)

Выгрузка в формате GZIP позволяет сжать размер блока в несколько раз. В результате по сети будет передаваться гораздо меньший объем данных, но на клиенте необходимо будет разжимать данные. Для выгрузки блока в формате GZIP необходимо передать в запросе заголовок Accept-Encoding: gzip.

Пример запроса:

curl -H "Authorization: Bearer <ВАШ_ТОКЕН>" -H "Accept-Encoding: gzip" "https://app.sellout.plus/<ВАШ_ТЕНАНТ>/api/sync/sales-sellout?fields=id%2Cid_mapping_datasource%2Cid_ref_customerfrom%2Cid_ref_customerto%2Cid_ref_sku%2CVolume%2CID_mapping_DataSource=112%2Cdate=2023-09-01" -o result.json

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

GET /checksum. Параметры:

  • object — название объекта, по которому будут получены контрольные суммы. Обязательный параметр.

Запрос возвращает набор всех блоков и соответствующих им контрольных сумм у переданного объекта.

Пример

Запрос в системной утилите curl. Получение блоков и контрольных сумм объекта “Остатки в ТТ” с сохранением результата в файл “result.json“:

curl -H "Authorization: Bearer <ВАШ_ТОКЕН>" "https://app.sellout.plus/<ВАШ_ТЕНАНТ>/api/checksum?object=stock-outlet" -o result.json

Ответ:

[ { "Date": "2018-06-30", "CheckSum": "0xEEF82EA88828DA7C802B2098A24051BEE1C33AEB2346A5079E12A6C31C484A0A", "ID_mapping_DataSource": 145 }, { "Date": "2018-07-31", "CheckSum": "0xF89F48FCF943C32EAA9C977A3BCEAAB1DDC01C98B160058B37953AB85D331C2C", "ID_mapping_DataSource": 145 }, { "Date": "2018-08-31", "CheckSum": "0x75B42222ADE53630EFD4582F77BC2C1798AA81BA1E9D0CDEDF44770EC3762C97", "ID_mapping_DataSource": 145 } ]