Платформа SelSup · Руководства
Расширения и собственные интеграции
Выбор между внешним backend-сервисом, React-расширением кабинета и серверным модулем интеграции с маркетплейсом или доставкой.
Большинство интеграций следует начинать как внешний backend, использующий публичный API. Встраиваемый интерфейс нужен, когда пользователю требуется работать с функцией непосредственно в SelSup.
Разработчики приложений и технологические партнёры01
Выбрать тип интеграции
- 1
Внешний backend-сервис
Подходит для синхронизации ERP, сайта, WMS, BI и других систем. Токен хранится только на вашем сервере, обмен выполняется через API и вебхуки.
- 2
React-расширение
Выбирайте для пользовательского интерфейса, который должен открываться внутри кабинета SelSup и использовать привычные компоненты продукта.
- 3
Backend-модуль SelSup
Нужен для глубокой интеграции нового маркетплейса или службы доставки, когда требуется участие в общих фоновых процессах SelSup.
Сначала реализуйте один сквозной сценарий и наблюдаемость. Массовые импорты, UI и дополнительные события подключайте после стабильной сверки.
02
Архитектура внешнего приложения
Разместите токен в менеджере секретов и обращайтесь к SelSup только из backend. Браузер вашего приложения должен работать с вашим API, а не получать токен SelSup.
Разделите адаптер SelSup, очередь задач и вашу доменную модель. Это позволит обновлять контракт API без распространения деталей SelSup по всему приложению.
Для входящих событий используйте inbox, для исходящих изменений — outbox. Оба журнала должны поддерживать повторную обработку и аудит.
SelSup webhook → inbox → domain worker → ERP/WMS
ERP/WMS change → outbox → SelSup API → reconciliation
03
React-расширение кабинета
Компонент встраивается в интерфейс SelSup. Внешний домен должен разрешать запросы из selsup.ru и корректно обрабатывать ограничения браузера.
Не помещайте постоянный API-токен в bundle. Для привилегированных операций используйте свой backend и короткоживущий контекст пользователя, предусмотренный архитектурой расширения.
Сохраняйте визуальную совместимость, доступность и обработку пустых, загрузочных и ошибочных состояний.
Разрешённый origin управляет браузерным доступом, но не подтверждает пользователя. Все чувствительные операции должны иметь серверную проверку прав.
https://github.com/SelSup/component
04
Серверный модуль интеграции
Интеграция маркетплейса обычно охватывает токены, карточки, цены, остатки, заказы и фоновые обновления статусов. Служба доставки добавляет расчёт, создание отправления, этикетки и отслеживание.
Такой модуль изменяет основной backend SelSup и проходит общий процесс ревью, тестирования, локализации и выпуска. Согласуйте интерфейс и границы данных до реализации.
Ошибки внешнего API преобразуйте в стабильные ApplicationError, а недействительный или отозванный внешний токен — в AccessException согласно правилам backend-проекта.
Не добавляйте поля конкретного маркетплейса в общие сущности. Храните сырой контракт в DTO интеграции и преобразуйте его на границе.
05
Выпуск и сопровождение
- 1
Добавьте тестовый аккаунт
Отделите тестовые токены, склады, товары и заказы от production-данных клиентов.
- 2
Настройте наблюдаемость
Метрики должны показывать задержку очереди, частоту ошибок по коду, число повторов и расхождения сверки.
- 3
Подготовьте миграцию контракта
Поддерживайте старые поля в переходный период и выпускайте потребителей раньше отключения старого формата.
- 4
Опишите отключение
Пользователь должен понимать, как отозвать токен, удалить вебхук и остановить синхронизацию без потери данных.