SelSup Developers

Основы интеграции · Руководства

Начало работы

Как получить токен, выполнить первый запрос, загрузить список по страницам и обработать ошибки API.

Разделы: 4Руководство для разработчика
→

Через API можно получать и изменять товары, заказы, остатки и другие данные SelSup. Для доступа нужен API-токен вашего кабинета.

Backend-разработчики и интеграторы

1

Получение токена и авторизация

API-токен передаётся без префикса Bearer в заголовке Authorization.

Перейдите на страницу настройки API по ссылке ниже. В разделе «API-токены кабинета» введите название подключения и нажмите «Добавить токен». Название должно быть уникальным в вашем аккаунте. Скопируйте полученный токен.

Если интеграции нужно только получать данные, включите «Создать токен только для чтения данных» перед добавлением токена.

Для разных сервисов используйте отдельные токены: так можно отключить одну интеграцию, сохранив доступ остальным. Храните токен на своём сервере и передавайте его в заголовке Authorization.

Получить токен

i
Формат заголовка

В Authorization передаётся сам токен. Префиксы Bearer и Basic добавлять не нужно.

Первый запрос · cURL
curl --request GET 'https://api.selsup.ru/api/brand/find?limit=50&page=1' \
  --header 'Authorization: YOUR_API_TOKEN'

2

Обработка ошибок

Проверяйте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя.

В ответе на прикладную ошибку передаются error, localMessage и params. По коду error программа может определить причину сбоя и выбрать дальнейшее действие.

Язык localMessage зависит от поля lang пользователя, которому принадлежит токен. Язык документации и заголовок Accept-Language на него не влияют. Не используйте текст localMessage для проверки типа ошибки.

i
Что сохранить для диагностики

Сохраните HTTP-статус, error, params, время запроса и свой идентификатор запроса. Это поможет найти причину сбоя. Не записывайте токен и личные данные в журнал.

Пример ответа с ошибкой · JSON
{
  "error": "error_brand_already_exists",
  "localMessage": "Бренд Base уже существует",
  "params": {
    "name": "Base"
  }
}

3

Загрузка списка по страницам

Методы поиска возвращают данные по страницам. Параметры и формат ответа указаны в описании каждого метода.

Параметр limit задаёт количество записей на странице, page — её номер. Например, поиск брендов возвращает записи в rows и признак наличия следующей страницы в hasNextPage.

Передавайте count=true, если нужно получить общее количество записей в total. Для загрузки всего списка достаточно подсчитать записи в первом запросе или обойти страницы без подсчёта.

Если метод поддерживает сортировку по идентификатору, используйте её при загрузке всего списка. Например, у поиска товаров это sortBy=ID: новые товары будут добавляться в конец.

Загрузка всех брендов · JavaScript
let page = 1;
let hasNextPage = true;

while (hasNextPage) {
  const url = new URL('https://api.selsup.ru/api/brand/find');
  url.searchParams.set('limit', '500');
  url.searchParams.set('page', String(page));
  url.searchParams.set('sortBy', 'BRANDID');
  url.searchParams.set('ascending', 'true');

  const response = await fetch(url, {
    headers: { Authorization: process.env.SELSUP_API_TOKEN }
  });
  if (!response.ok) throw await response.json();

  const result = await response.json();
  await savePage(result.rows);
  hasNextPage = result.hasNextPage;
  page += 1;
}

4

Проверка интеграции

  1. 1

    Проверьте чтение и изменение данных

    Загрузите несколько записей, затем проверьте создание и изменение товаров или заказов на тестовых данных.

  2. 2

    Задайте время ожидания ответа

    Если ответ не пришёл, проверьте, выполнил ли SelSup запрос. Например, перед повторным созданием заказа найдите его по externalOrderId.

  3. 3

    Настройте повторные попытки

    После сетевого сбоя повторяйте запрос с задержкой. Ошибки в параметрах сначала исправляйте: повтор такого же запроса их не устранит.

  4. 4

    Проверьте сохранённые данные

    Убедитесь, что товары, заказы или остатки появились в SelSup с теми значениями, которые вы передали.

!
Реальные данные

Кнопка «Попробовать» отправляет запрос в аккаунт токена. Методы записи в документации требуют дополнительного подтверждения, но всё равно используйте тестовые записи.