Entwickler-Übersicht
PrimoCRM ist modular und erweiterbar aufgebaut. Dieser Abschnitt dokumentiert die öffentlichen Hooks, die REST-API und die Register, die Sie verwenden, um Funktionen hinzuzufügen, ohne den Kern (Core) zu bearbeiten.
Architektur im Überblick
Abschnitt betitelt „Architektur im Überblick“- Admin-Benutzeroberfläche: Eine Single-Page-Anwendung in React, die mit PHP-REST-Controller kommuniziert. Es gibt eine Admin-Seite mit clientseitigem Routing.
- REST-Controller: Jedes Modul registriert seine Routen unter dem Namensraum
primocrm/v1beirest_api_init. Siehe REST-API. - Hintergrund-Engine: Alle zeitintensiven Prozesse (Kampagnenversand, Sequenz-Drips, Automatisierungsschritte, Importe) laufen über sich selbst neu einplanende, zeitbudgettierte Cron-Worker, niemals direkt im Seitenaufruf. Wenn Sie etwas hinzufügen, das eine externe API aufruft oder viele Zeilen verarbeitet, folgen Sie demselben Warteschlangen-Muster (Queue) anstelle eines blockierenden Aufrufs.
- Register und Filter: Auslöser (Triggers), Aktionen, Formulafelder, Migrationsquellen und E-Mail-Sender werden alle über WordPress-Filter zusammengeführt, sodass Add-ons sich ohne jegliche Kernänderungen darin registrieren können. Siehe PrimoCRM erweitern.
Free und Pro
Abschnitt betitelt „Free und Pro“PrimoCRM wird als zwei Plugins ausgeliefert. Das Free-Plugin stellt das vollständige CRM dar und funktioniert eigenständig. Das Pro-Add-on definiert eine Konstante, die Premium-Funktionen freischaltet, und registriert zusätzliche Auslöser, Aktionen und Sender über dieselben öffentlichen Filter, 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-Auslöser über primocrm_automation_triggers hinzufügen kann, können Sie das auch.
Das Datenmodell in Kürze
Abschnitt betitelt „Das Datenmodell in Kürze“- Kontakte besitzen Standardfelder sowie benutzerdefinierte Felder, die als Kontakt-Meta gespeichert sind, sowie einen Status, der die E-Mail-Zustellbarkeit steuert.
- Listen und Tags gruppieren Kontakte über Zwischentabellen (Pivot-Tabellen).
- Kampagnen, Sequenzen und Automatisierungen verwalten jeweils ihre eigenen 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.
Konventionen
Abschnitt betitelt „Konventionen“- Namensräume: 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 undprimocrm/v1für REST. - Berechtigungen (Capabilities): REST-Endpunkte prüfen eine Berechtigung in ihrem Berechtigungs-Callback (Permission Callback). Beachten Sie dasselbe Modell bei allem, was Sie hinzufügen.
- Nichts ist gesperrt: PrimoCRM hat keine Free/Paid-Whitelist. Was registriert ist, läuft. Wenn Ihr Auslöser oder Ihre Aktion ein Plugin benötigt, das nicht installiert ist, registrieren Sie es dennoch mit einer
requires_plugin-Zeichenkette, und PrimoCRM listet es als nicht verfügbar auf, anstatt es zu verstecken.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Aktionen und Filter: Die vollständige Hook-Referenz.
- REST-API: Namensraum, Authentifizierung und Endpunkte.
- PrimoCRM erweitern: Copy-Paste-Rezepte für Felder, Quellen, Auslöser und Sender.