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.