Command Palette

Search for a command to run...

Провайдер Модуля интеграций

В этом руководстве вы узнаете о провайдере Модуля интеграций: что это такое, что нужно для его реализации, как модуль регистрирует его при старте приложения, и модель данных , которая представляет каждый зарегистрированный инстанс в базе данных.

Что такое провайдер Модуля интеграций

Провайдер Модуля интеграций объявляет интеграцию: её параметры, их группировку в секции настроек и необязательную проверку соединения. Администратор магазина настраивает её в Admin, без правок и без повторного развёртывания.

Модуль интеграций не зависит от типа провайдера, поэтому, в отличие от встроенных коммерческих модулей Medusa, он не поставляется с провайдером по умолчанию или провайдером-заглушкой. Провайдером Модуля интеграций может быть любой плагин, провайдер или собственный модуль. Полный список сценариев смотрите в разделе Где можно применять Модуль интеграций.

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

Создание собственного провайдера Модуля интеграций

Провайдер Модуля интеграций представляет собой модуль, чей сервис расширяет , импортированный из . Как и у других провайдеров Medusa, один модуль может регистрировать несколько сервисов провайдера Модуля интеграций, каждый со своим , и каждый становится отдельным провайдером.

объявляет следующие члены класса:

Член классаОписание
Обязательное поле. Стабильный идентификатор провайдера, общий для всех его инстансов.
Обязательное абстрактное свойство. Возвращает дескриптор, созданный через : параметры, секции, валидацию и необязательную проверку соединения.
Необязательный метод. Fail-fast проверка конфигурации провайдера из при загрузке приложения. По умолчанию ничего не делает.
Реализован в базовом классе. Возвращает конструктора.
Реализован в базовом классе. Возвращает регистрации этого инстанса или для инстанса по умолчанию.

Вот минимальная форма провайдера со всеми членами класса из таблицы выше, кроме тех, что уже реализует базовый класс:

providers/integration-my/services/my-integration.ts
1import { AbstractIntegrationProvider } from "@gorgo/medusa-integration"
2
3class MyIntegrationProvider extends AbstractIntegrationProvider {
4 static identifier = "my"
5
6 static validateOptions(options: Record<string, unknown>) {
7 // необязательная fail-fast проверка
8 }
9
10 get descriptor() {
11 return descriptor
12 }
13}
14
15export default MyIntegrationProvider

здесь представляет собой результат , подробнее об этом в разделе Основные концепции. и в примере не показаны: уже реализует оба метода через аргумент конструктора, поэтому подкласс добавляет только , и, опционально, .

Полный пошаговый пример с кодом смотрите в разделе Как создать провайдер Модуля интеграций.

Регистрация провайдеров Модуля интеграций

Настройка провайдеров Модуля интеграций

Модуль интеграций принимает параметр , в котором вы настраиваете провайдеры, зарегистрированные в вашем приложении, а также параметр , используемый для секретных полей модуля. Точную структуру смотрите в шаге 4 руководства «Как создать провайдер Модуля интеграций».

Регистрация при старте приложения

При старте приложения Medusa Модуль интеграций регистрирует каждый провайдер из параметра . Для каждой записи он объединяет класса провайдера с записи в ключ . Это тот же формат, что используется для этого инстанса в базе данных. Затем он создаёт провайдер через .

Модель данных

Инстанс зарегистрированного провайдера Модуля интеграций представлен в приложении Medusa моделью данных .

Внимание: 

Собственный модели служит лишь её внутренним идентификатором записи, таким же, как у любой другой модели данных Medusa. Это не то же самое, что , поле, которое хранит ключ из раздела Инстансы и их идентификаторы.

ПолеОписание
Ключ инстанса, . Уникальный. По этому полю CRUD API, резолвер и Admin находят нужную запись.
Категория интеграции, например или , задаётся из поля дескриптора.
Отображаемое название интеграции или , если дескриптор его не задаёт.
Несекретные настройки интеграции, сохранённые администратором магазина.
По умолчанию . Переключается из Admin, см. Включение и отключение интеграции.
Результат последней проверки соединения: , или , либо , если проверка ещё не запускалась.

Удаление провайдера Модуля интеграций

Вы можете удалить зарегистрированный провайдер Модуля интеграций, удалив его запись из параметра в . В отличие от отключения интеграции из Admin, это не затрагивает сохранённую запись. Провайдер просто перестаёт регистрироваться, поэтому модуль больше не может найти его запись по . Интеграция исчезает из списка в Admin, а её сохранённые данные становятся недоступны через собственные admin-роуты Модуля интеграций.

Внимание: 

Удалите интеграцию из Admin, прежде чем убирать провайдер из , а не наоборот. Как только провайдер исчезает из конфигурации, его запись становится недостижима, в том числе через сам роут удаления, и остаётся в базе данных без возможности удалить её из Admin. Обычный порядок удаления описан в разделе Удаление интеграции.

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

Материалы

Изменено 18 августа 2026 г.·Редактировать страницу