Developer Overview
PrimoCRM est conçu pour être étendu. Cette section documente les hooks publics, l’API REST et les registres que vous utilisez pour ajouter des fonctionnalités sans modifier le noyau.
Architecture en un coup d’œil
Section intitulée « Architecture en un coup d’œil »- Interface d’administration : une application monopage React qui communique avec les contrôleurs REST PHP. Il y a une seule page d’administration avec un routage côté client.
- Contrôleurs REST : chaque module enregistre ses routes sous l’espace de noms
primocrm/v1surrest_api_init. Voir API REST. - Moteur d’arrière-plan : tout le travail de longue haleine (envois de campagnes, diffusions de séquences, étapes d’automatisation, importations) s’exécute via des processus cron auto-reprogrammés et budgétisés en temps, jamais dans la requête de page. Lorsque vous ajoutez un élément qui appelle une API externe ou traite de nombreuses lignes, suivez le même modèle de file d’attente plutôt qu’un appel bloquant.
- Registres et filtres : les déclencheurs, actions, champs de formulaire, sources de migration et expéditeurs d’e-mails sont tous collectés via des filtres WordPress, de sorte que les modules complémentaires s’y enregistrent sans aucune modification du noyau. Voir Extension de PrimoCRM.
Gratuit et Pro
Section intitulée « Gratuit et Pro »PrimoCRM est distribué sous forme de deux extensions. L’extension gratuite constitue l’ensemble du CRM et fonctionne de manière autonome. Le module complémentaire Pro définit une constante qui débloque les fonctionnalités premium et enregistre des déclencheurs, actions et expéditeurs supplémentaires via les mêmes filtres publics que votre propre code utiliserait.
Puisque Pro utilise les points d’extension publics, les modèles de cette section correspondent exactement à la manière dont les fonctionnalités Pro officielles sont conçues. Si Pro peut ajouter un déclencheur WooCommerce via primocrm_automation_triggers, vous le pouvez aussi.
Modèle de données, en bref
Section intitulée « Modèle de données, en bref »- Contacts : possèdent des champs standard ainsi que des champs personnalisés stockés en tant que méta-données de contact, et un statut qui contrôle l’éligibilité aux e-mails.
- Listes et étiquettes : regroupent les contacts par le biais de tables de liaison.
- Campagnes, séquences et automations : possèdent chacune leurs propres tables et sont pilotées par le moteur d’arrière-plan.
Les valeurs des champs personnalisés sont lisibles dans les e-mails sous la forme {{contact.meta.KEY}} et modifiables par les automations, ce qui constitue le point de jonction utilisé par l’action IA de Pro. Voir Personnalisation et codes intelligents.
Conventions
Section intitulée « Conventions »- Espaces de noms : préfixez vos hooks, options et clés pour éviter les conflits. PrimoCRM utilise le préfixe
primocrm_pour les hooks PHP etprimocrm/v1pour l’API REST. - Capacités : les points de terminaison REST vérifient une capacité dans leur fonction de rappel d’autorisation. Respectez le même modèle dans tout ce que vous ajoutez.
- Rien n’est verrouillé : PrimoCRM ne comporte aucune liste blanche gratuite ou payante. Tout ce qui est enregistré s’exécute. Si votre déclencheur ou action nécessite une extension qui n’est pas installée, enregistrez-la tout de même avec une chaîne
requires_plugin, et PrimoCRM l’affichera comme non disponible au lieu de la masquer.
Prochaines étapes
Section intitulée « Prochaines étapes »- Actions et filtres : la référence complète des hooks.
- API REST : espace de noms, authentification et points de terminaison.
- Extension de PrimoCRM : exemples prêts à l’emploi pour les champs, sources, déclencheurs et expéditeurs.