Обзор для разработчиков
PrimoCRM спроектирована с расчетом на расширение. В этом разделе описываются публичные хуки, REST API и реестры, которые вы используете для добавления функциональности без изменения ядра.
Краткий обзори архитектуры
Заголовок раздела «Краткий обзори архитектуры»- Админ-интерфейс (Admin UI): одностраничное приложение на React, которое взаимодействует с PHP REST контроллерами. Имеется одна страница администратора с клиентской маршрутизацией.
- REST контроллеры: каждый модуль регистрирует свои маршруты в пространстве имен
primocrm/v1при срабатыванииrest_api_init. См. REST API. - Фоновый движок: вся ресурсоемкая работа (отправка кампаний, цепочки писем, шаги автоматизации, импорт) выполняется через самопланируемые крон-воркеры с ограничением по времени, но никогда в рамках запроса страницы. Когда вы добавляете что-то, что обращается к внешнему API или обрабатывает много строк, используйте тот же шаблон очереди вместо блокирующего вызова.
- Реестры и фильтры: триггеры, действия, поля форм, источники миграции и отправители писем собираются через фильтры WordPress, поэтому аддоны регистрируются в них без каких-либо изменений ядра. См. Расширение PrimoCRM.
Free и Pro
Заголовок раздела «Free и Pro»PrimoCRM поставляется в виде двух плагинов. Бесплатный плагин представляет собой полноценную CRM и работает автономно. Pro аддон определяет константу, которая разблокирует премиум-возможности и регистрирует дополнительные триггеры, действия и отправители через те же публичные фильтры, которые использует ваш собственный код.
Поскольку Pro использует публичные точки расширения, шаблоны из этого раздела в точности повторяют то, как создаются собственные функции Pro. Если Pro может добавить триггер WooCommerce через primocrm_automation_triggers, то сможете и вы.
Модель данных вкратце
Заголовок раздела «Модель данных вкратце»- Контакты содержат стандартные поля, а также пользовательские поля, которые сохраняются как метаданные контакта, и статус, управляющий возможностью отправки писем.
- Списки и теги группируют контакты через сводные таблицы.
- Кампании, цепочки и автоматизации имеют собственные таблицы и управляются фоновым движком.
Значения пользовательских полей доступны для чтения в письмах как {{contact.meta.KEY}} и для записи автоматизациями. Это точка интеграции, которую использует Pro действие с искусственным интеллектом. См. Персонализация и смарт-коды.
Соглашения
Заголовок раздела «Соглашения»- Пространство имен: используйте префиксы для ваших хуков, опций и ключей, чтобы они не пересекались. PrimoCRM использует префикс
primocrm_для PHP хуков иprimocrm/v1для REST. - Права доступа (Capabilities): REST эндпоинты проверяют права доступа в функции обратного вызова для проверки разрешений. Соблюдайте ту же модель во всем, что вы добавляете.
- Безопасность по умолчанию (Fail closed): все, что не входит в белый список версии Free, считается Pro. Если вы регистрируете новый триггер или действие, осознанно решите, должно ли оно быть бесплатным, отфильтровав
primocrm_free_triggersилиprimocrm_free_actions.
Куда двигаться дальше
Заголовок раздела «Куда двигаться дальше»- Действия и фильтры: полный справочник хуков.
- REST API: пространство имен, авторизация и эндпоинты.
- Расширение PrimoCRM: готовые рецепты для полей, источников, триггеров и отправителей.