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

Manifest модуля

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

Manifest модуля (integration.manifest.json)

Корень пакета: modules/Integrations/{Code}/integration.manifest.json. code = имя папки.

Обязательные поля

Поле Тип Описание
code string MyCrm = папка MyCrm
name string Каталог модулей
version string Semver

license

json
"license": {
  "required": true,
  "validator": "Modules\\Integrations\\MyCrm\\MyCrmLicenseValidator",
  "label": "Лицензионный ключ",
  "product_code": "platparts-my-crm",
  "recheck_hours": 24
}
Поле Описание
required false → всегда valid
validator ModuleLicenseValidatorInterface
product_code Опционально для WHMCS/вендора
recheck_hours Cron проверки (24 по умолчанию)

capabilities

Ключ Интерфейс / тип Назначение
hooks hooks.php PHP‑обработчики событий
inbound_webhook или inbound_webhook_handler IntegrationInboundWebhookHandlerInterface CRM → сайт
schedule_registrar IntegrationScheduleRegistrarInterface Cron модуля
instance_form IntegrationInstanceFormExtensionInterface Форма Подключения модулей
package_admin IntegrationPackageAdminExtensionInterface Действия на странице в Каталоге
order_header_actions IntegrationOrderHeaderActionsProviderInterface Кнопки в заказе
external_system string, напр. my_crm Bulk + запись в Интеграции

Пример manifest с external_system (сокращённо):

json
{
  "code": "MyCrm",
  "name": "Интеграция My CRM",
  "version": "1.2.0",
  "capabilities": {
    "hooks": true,
    "external_system": "my_crm",
    "inbound_webhook": "Modules\\Integrations\\MyCrm\\MyCrmInboundWebhookHandler",
    "schedule_registrar": "Modules\\Integrations\\MyCrm\\MyCrmScheduleRegistrar",
    "order_header_actions": "Modules\\Integrations\\MyCrm\\Filament\\MyCrmOrderHeaderActions",
    "package_admin": "Modules\\Integrations\\MyCrm\\Filament\\MyCrmPackageAdminExtension",
    "instance_form": "Modules\\Integrations\\MyCrm\\Filament\\MyCrmInstanceFormExtension"
  },
  "settings": {
    "default_export_mode": "both"
  }
}

settings и install

  • settings — значения по умолчанию (читает package_admin / форма).
  • install.package_lifecycle — хуки установки/удаления пакета.

Полный шаблон (минимальный CRM)

json
{
  "code": "MyCrm",
  "name": "Интеграция My CRM",
  "version": "1.0.0",
  "license": {
    "required": false,
    "validator": "Modules\\Integrations\\MyCrm\\MyCrmLicenseValidator",
    "label": "Лицензионный ключ",
    "recheck_hours": 24
  },
  "capabilities": {
    "hooks": true,
    "inbound_webhook": "Modules\\Integrations\\MyCrm\\MyCrmInboundWebhookHandler",
    "instance_form": "Modules\\Integrations\\MyCrm\\Filament\\MyCrmInstanceFormExtension",
    "external_system": "my_crm"
  }
}

Ошибки синхронизации

Ошибка Причина
Нет integration.manifest.json Файл отсутствует
Код ≠ папка code: Foo, папка Bar
Некорректный JSON Синтаксис

Папки _Template, .git, скрытые — пропускаются.

Legacy

Только {Name}IntegrationModule без manifest → is_legacy: true (МойСклад). Новые модули — только manifest.

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