Основы интеграции · Руководства
Начало работы
Как получить токен, выполнить первый запрос, загрузить список по страницам и обработать ошибки API.
Через API можно получать и изменять товары, заказы, остатки и другие данные SelSup. Для доступа нужен API-токен вашего кабинета.
Backend-разработчики и интеграторы1
Получение токена и авторизация
API-токен передаётся без префикса Bearer в заголовке Authorization.
Перейдите на страницу настройки API по ссылке ниже. В разделе «API-токены кабинета» введите название подключения и нажмите «Добавить токен». Название должно быть уникальным в вашем аккаунте. Скопируйте полученный токен.
Если интеграции нужно только получать данные, включите «Создать токен только для чтения данных» перед добавлением токена.
Для разных сервисов используйте отдельные токены: так можно отключить одну интеграцию, сохранив доступ остальным. Храните токен на своём сервере и передавайте его в заголовке Authorization.
В Authorization передаётся сам токен. Префиксы Bearer и Basic добавлять не нужно.
curl --request GET 'https://api.selsup.ru/api/brand/find?limit=50&page=1' \
--header 'Authorization: YOUR_API_TOKEN'
Связанные методы API
GET/api/brand/findПолучить список брендов
2
Обработка ошибок
Проверяйте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя.
В ответе на прикладную ошибку передаются error, localMessage и params. По коду error программа может определить причину сбоя и выбрать дальнейшее действие.
Язык localMessage зависит от поля lang пользователя, которому принадлежит токен. Язык документации и заголовок Accept-Language на него не влияют. Не используйте текст localMessage для проверки типа ошибки.
Сохраните HTTP-статус, error, params, время запроса и свой идентификатор запроса. Это поможет найти причину сбоя. Не записывайте токен и личные данные в журнал.
{
"error": "error_brand_already_exists",
"localMessage": "Бренд Base уже существует",
"params": {
"name": "Base"
}
}
3
Загрузка списка по страницам
Методы поиска возвращают данные по страницам. Параметры и формат ответа указаны в описании каждого метода.
Параметр limit задаёт количество записей на странице, page — её номер. Например, поиск брендов возвращает записи в rows и признак наличия следующей страницы в hasNextPage.
Передавайте count=true, если нужно получить общее количество записей в total. Для загрузки всего списка достаточно подсчитать записи в первом запросе или обойти страницы без подсчёта.
Если метод поддерживает сортировку по идентификатору, используйте её при загрузке всего списка. Например, у поиска товаров это sortBy=ID: новые товары будут добавляться в конец.
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
Проверьте чтение и изменение данных
Загрузите несколько записей, затем проверьте создание и изменение товаров или заказов на тестовых данных.
- 2
Задайте время ожидания ответа
Если ответ не пришёл, проверьте, выполнил ли SelSup запрос. Например, перед повторным созданием заказа найдите его по externalOrderId.
- 3
Настройте повторные попытки
После сетевого сбоя повторяйте запрос с задержкой. Ошибки в параметрах сначала исправляйте: повтор такого же запроса их не устранит.
- 4
Проверьте сохранённые данные
Убедитесь, что товары, заказы или остатки появились в SelSup с теми значениями, которые вы передали.
Кнопка «Попробовать» отправляет запрос в аккаунт токена. Методы записи в документации требуют дополнительного подтверждения, но всё равно используйте тестовые записи.