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