Перейти к содержимому

Обзор для разработчиков

PrimoCRM спроектирована с расчетом на расширение. В этом разделе описываются публичные хуки, REST API и реестры, которые вы используете для добавления функциональности без изменения ядра.

  • Админ-интерфейс (Admin UI): одностраничное приложение на React, которое взаимодействует с PHP REST контроллерами. Имеется одна страница администратора с клиентской маршрутизацией.
  • REST контроллеры: каждый модуль регистрирует свои маршруты в пространстве имен primocrm/v1 при срабатывании rest_api_init. См. REST API.
  • Фоновый движок: вся ресурсоемкая работа (отправка кампаний, цепочки писем, шаги автоматизации, импорт) выполняется через самопланируемые крон-воркеры с ограничением по времени, но никогда в рамках запроса страницы. Когда вы добавляете что-то, что обращается к внешнему API или обрабатывает много строк, используйте тот же шаблон очереди вместо блокирующего вызова.
  • Реестры и фильтры: триггеры, действия, поля форм, источники миграции и отправители писем собираются через фильтры WordPress, поэтому аддоны регистрируются в них без каких-либо изменений ядра. См. Расширение PrimoCRM.

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.