База знаний EMS-платформы PlatParts Руководство по настройке EMS-платформы PlatParts
v1.0.0

Подключения модулей

На этой странице 11

Подключения модулей (инстансы)

Подключения модулей — основная точка настройки интеграции для конкретной точки выдачи (или для всех точек сразу).

Создание

Модули интеграций → Подключения модулей → Создать

Поле Описание
Модуль Пакет из каталога (MyCrm, ErpSync, …)
Точки выдачи Одна точка или Все активные точки
Название Отображаемое имя
Активно Без галочки события для точки не обрабатываются

Bulk «Все активные точки»

Сервис IntegrationInstanceBulkService:

  1. Для каждой активной точки выдачи создаётся отдельный IntegrationInstance с одинаковыми полями формы.
  2. Если в manifest указано capabilities.external_system (например my_crm), IntegrationExternalConnectionBulkService создаёт/обновляет служебные записи в Интеграции (ExternalSystemIntegration) — без отдельной формы для администратора.

При создании одной точки служебная запись для external_system тоже синхронизируется (createForPickupPoint).

Пример bulk: три точки → три отдельных подключения, по одному на каждую точку, с одинаковыми полями формы модуля.

Форма модуля (instance_form)

Ядро не хардкодит поля CRM в IntegrationInstanceResource. Модуль объявляет в manifest:

json
"capabilities": {
  "instance_form": "Modules\\Integrations\\MyCrm\\Filament\\MyCrmInstanceFormExtension"
}

Класс реализует IntegrationInstanceFormExtensionInterface:

Метод Назначение
supports(IntegrationPackage $package) Привязка к пакету
formComponents(?IntegrationInstance $record) Секции Filament (креды, маппинг, …)
usesStructuredCredentials() true → JSON‑креды, не KeyValue
scopeModeHelperText() Подсказка для режима «все точки»
namePlaceholder() Placeholder названия

Реестр: IntegrationFilamentExtensionRegistry.

После сохранения инстанса модуль может показать inbound URL с подстановкой {instance}.

Раздел «Интеграции»

Форма Интеграции в админке ориентирована на legacy-контур с external_system. Для новых manifest-модулей основной экран настройки — Подключения + instance_form. Запись в Интеграции может создаваться автоматически для внутренней синхронизации и совместимости.

Исходящие webhooks на инстансе

На карточке подключения — вкладка Исходящие webhooks: URL, секрет, список хуков (пусто = все). Привязка к инстансу и pickup_point_id.

Credentials

Хранятся в integration_instances.credentials (массив). Типичные ключи:

Ключ Где используется
inbound_webhook_secret Подпись inbound (входящий webhook)
Поля модуля Свой handler / REST клиент (например URL, токен, маппинг, режимы обмена)

external_system в manifest

json
"capabilities": {
  "external_system": "my_crm"
}

Строка связывает инстанс с external_system_integrations для legacy-контура и UI «Интеграции». Новые модули могут не использовать старый sync ядра напрямую, но capability нужна для bulk и единого учёта.

Действия на странице пакета

capabilities.package_adminIntegrationPackageAdminExtensionInterface:

  • глобальные настройки модуля;
  • пользовательские действия модуля;
  • Включить фон — подсказка по отдельной очереди, если INTEGRATION_DEDICATED_QUEUES=true.

Кнопки в заказе

capabilities.order_header_actions → ссылки «Открыть в CRM», «Отправить в …» в карточке заказа.

Проверка

bash
php artisan integrations:package:inspect MyCrm

В выводе — подключения по точкам, operational, зарегистрированные capabilities.

Связанные разделы