Zum Inhalt springen

Entwickler-Übersicht

PrimoCRM ist modular aufgebaut und lässt sich flexibel erweitern. Dieser Abschnitt dokumentiert die öffentlichen Hooks, die REST-API und die Registries, die Sie verwenden, um Funktionen hinzuzufügen, ohne den Core zu bearbeiten.

  • Admin-UI: eine React-Single-Page-Anwendung, die mit PHP-REST-Controllern kommuniziert. Es gibt eine Admin-Seite mit clientseitigem Routing.
  • REST-Controller: Jedes Modul registriert seine Routen unter dem Namensraum primocrm/v1 bei rest_api_init. Siehe REST-API.
  • Hintergrund-Engine: Alle zeitlich aufwändigen Prozesse (Kampagnenversand, Sequenz-Drips, Automatisierungsschritte, Importe) laufen über sich selbst neu einplanende, zeitbudgierte Cron-Worker und niemals im Seitenaufruf. Wenn Sie Funktionen hinzufügen, die eine externe API aufrufen oder viele Zeilen verarbeiten, folgen Sie demselben Warteschlangen-Muster anstelle eines blockierenden Aufrufs.
  • Registries und Filter: Trigger, Aktionen, Formulardemfelder, Migrationsquellen und E-Mail-Sender werden alle über WordPress-Filter erfasst, sodass Add-ons sich ohne Core-Änderungen darin registrieren können. Siehe PrimoCRM erweitern.

PrimoCRM wird als zwei Plugins ausgeliefert. Das Free-Plugin ist das vollständige CRM und funktioniert eigenständig. Das Pro-Add-on definiert eine Konstante, die Premium-Funktionen freischaltet und zusätzliche Trigger, Aktionen und Sender über dieselben öffentlichen Filter registriert, die auch Ihr eigener Code verwenden würde.

Da Pro die öffentlichen Erweiterungspunkte nutzt, entsprechen die Muster in diesem Abschnitt exakt der Art und Weise, wie First-Party-Pro-Funktionen entwickelt werden. Wenn Pro einen WooCommerce-Trigger über primocrm_automation_triggers hinzufügen kann, können Sie das auch.

  • Kontakte enthalten Standardfelder sowie benutzerdefinierte Felder, die als Kontakt-Meta gespeichert sind, und einen Status, der die Empfangbarkeit von E-Mails steuert.
  • Listen und Tags gruppieren Kontakte über Zwischentabellen (Pivot-Tabellen).
  • Kampagnen, Sequenzen und Automatisierungen verwalten jeweils eigene Tabellen und werden von der Hintergrund-Engine gesteuert.

Werte benutzerdefinierter Felder sind in E-Mails als {{contact.meta.KEY}} lesbar und von Automatisierungen beschreibbar, was die Schnittstelle darstellt, die die Pro-KI-Aktion nutzt. Siehe Personalisierung und Smart Codes.

  • Namensraum: Stellen Sie Ihren Hooks, Optionen und Schlüsseln ein Präfix voran, damit sie nicht kollidieren. PrimoCRM verwendet das Präfix primocrm_ für PHP-Hooks und primocrm/v1 für REST.
  • Berechtigungen: REST-Endpunkte prüfen eine Berechtigung in ihrem Berechtigungs-Callback. Respektieren Sie dasselbe Modell in allem, was Sie hinzufügen.
  • Sicherheitsstandard (Fail closed): Alles, was nicht auf der Free-Whitelist steht, wird als Pro behandelt. Wenn Sie einen neuen Trigger oder eine neue Aktion registrieren, entscheiden Sie bewusst durch das Filtern von primocrm_free_triggers oder primocrm_free_actions, ob diese kostenlos sein sollen.