Documentation CRM & ERP – Intranet
1. Introduction
Ce document présente une vue fonctionnelle et technique complète des modules CRM et ERP. Il couvre l’architecture, la configuration, les principaux écrans, les API disponibles, la structure de données et les intégrations pour faciliter l’installation, l’exploitation et l’évolution de la plateforme.
2. Architecture générale
- Pile technologique : PHP 8+, MySQL/MariaDB, Bootstrap 5, Chart.js, Power BI Embedded, JavaScript vanilla.
- Organisation : deux sous-applications principales
crm/eterp/partagent la même configuration PDO (crm/config/database.php) et une base de données unique. - Ressources partagées : authentification utilisateur, tables communes (
users,companies) et uploads produits (assets/uploads/products/). - Séparation fonctionnelle : le CRM couvre la relation client (pipeline commercial & marketing) tandis que l’ERP gère l’opérationnel (RH, paie, stock, ventes, locations).
2.1 Structure des répertoires
crm/: dashboards, gestion contacts, campagnes, analytics, API REST et scripts d’installation.crm/assets/: styles et scripts (Chart.js, Power BI, analytics, campagnes).crm/api/: endpoints KPI, rapports, installateur, diagnostics, IA.crm/includes/: logique serveur (authentification, KPI, formulaires, envoi campagnes).erp/: dashboards RH/finance, gestion stock, ventes, locations, rapports.erp/api/: endpoints inventaire, ventes, stock, employés.erp/migrations/: scripts SQL d’initialisation et d’évolution.
3. Installation & configuration
3.1 Pré-requis
- PHP 8.1+ avec extensions PDO/MySQL, cURL, JSON.
- MySQL 5.7+ ou MariaDB 10+.
- Serveur HTTP configuré pour servir
/workspace. - Accès CLI pour exécuter les scripts PHP.
3.2 Paramétrage base de données
- Adapter les identifiants dans
crm/config/database.php(utilisés par CRM et ERP). - Attention : l’installateur CRM (
crm/api/install-db.php) cible par défaut la basewebitech. Harmoniser le nom (DB_NAME) avant exécution ou ajuster le script. - Créer la base au besoin :
CREATE DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3.3 Initialisation CRM
- Charger le schéma via l’API ou directement avec
crm/database/crm_schema.sql. - Utiliser la section « Diagnostic » du dashboard (
crm/index.php) pour vérifier la connectivité. - Tester l’API :
crm/api/test.phpdoit renvoyer{"status":"ok"}.
3.4 Initialisation ERP
- L’ERP utilise le même fichier PDO.
- Exécuter les migrations :
cd erp && php run_migrations.php. - Scripts
001_create_erp_tables.sqlà003_remove_customer_id.sqlpour créer/mettre à jour les tables.
3.5 Comptes & authentification
- Un compte admin par défaut (
admin@webitech.com) est créé par le schéma CRM. - Gestion de l’authentification dans
crm/includes/auth.php: vérification, login, permissions, journalisation.
4. Module CRM
4.1 Tableau de bord intelligent
- KPIs : revenus, clients actifs, taux de conversion, opportunités (calculés server-side).
- Section « Diagnostic » : configuration rapide, vérification BD, installation.
- Listes dynamiques : factures & missions (polling 30 s) via
api/invoices-list.phpetapi/missions-list.php. - Intégration Power BI (mode démo + plein écran).
4.2 Gestion relation client
- Contacts : création, import, suivi (
contacts.php,contacts-add.php,contacts-import.php). - Clients : base entreprises/personnes (
customers.php,customers-add.php,customers-import.php). - Leads : gestion prospects, scoring, conversion (
leads.php,leads-scoring.php).
4.3 Pipeline de vente & opportunités
opportunities.php: vue pipeline/kanban.- Prévisions et analytics (
opportunities-forecast.php,opportunities-analytics.php). - Factures via
generate_invoice.phpet suiviinvoices-list.php. - Mise à jour d’étape : POST
api/opportunity-update-stage.php.
4.4 Campagnes & automatisation
campaigns.php,campaigns-email.php: campagnes email (création, planification).- Automatisations :
campaigns-automation.php,automations-*.php,create_automation.php. - Cron marketing :
crm/cron/send-scheduled-campaigns.php.
4.5 Analytics, IA & Power BI
- Pages analytics (ventes, clients, entonnoir) alimentées par
api/sales-data.php,api/customer-analytics.php,api/funnel-analytics.php. - IA Insights :
ai-insights.php,api/ai/*.php. - Power BI : paramètres dans
config/database.php, endpointsapi/powerbi-credentials.phpetapi/powerbi-token.php.
4.6 API CRM principales
| Endpoint | Méthode | Description |
|---|---|---|
api/test.php | GET | Vérification de santé API. |
api/diagnostic.php | GET | Diagnostic complet. |
api/install-db.php | POST | Installation du schéma CRM. |
api/kpis.php | GET | KPIs temps réel du dashboard. |
api/recent-activities.php | GET | Activités récentes. |
api/sales-data.php, api/source-data.php | GET | Données pour graphiques. |
api/invoices-list.php, api/missions-list.php | GET | Liste des factures et missions. |
api/leads-scoring.php | POST | Calcul du score lead. |
api/opportunity-update-stage.php | POST | Changement d’étape pipeline. |
api/ai/insights.php | POST | Generation d’insights IA. |
4.7 Interface & assets
- Styles :
crm/assets/css/style.css. - Scripts :
crm/assets/js/dashboard.js,powerbi-integration.js,analytics-*.js. - Uploads partagés :
assets/uploads/products/.
5. Module ERP
5.1 Tableau de bord
- Vue synthétique : total employés, salaire moyen, fiches de paie, coût mensuel.
- Dernières embauches & fiches de paie.
- Actions rapides (génération automatique de paies).
5.2 Ressources humaines
employees.php: gestion, filtrage, export CSV, statuts.payroll.php: génération de fiches, calcul contributions.shifts.php: planification.
5.3 Produits, ventes & stock
products.php: catalogue, images, filtres, tri.sales.php: suivi ventes, création AJAX.- Stock : suivi via API & templates (
templates/inventory_row.php... ).
5.4 Locations & équipements
rentals.php: contrats de location, statuts.templates/rental_row.php: rendu des lignes.
5.5 Reporting & finances
reports.php: exports financiers.account.php,payments.php: suivi des règlements.chat.php: canal interne.
5.6 API ERP principales
| Endpoint | Méthode | Description |
|---|---|---|
api/employees.json.php | GET | Données employés. |
api/inventory.php | GET/POST | CRUD inventaire. |
api/stock.php | GET/POST | Gestion stock produits. |
api/sales.php | GET/POST | Ventes consolidées. |
5.7 Scripts & assets ERP
- Style :
erp/assets/css/style.css. - Scripts front :
erp/assets/js/products.js,sales.js,rentals.js,shifts.js,account.js. - Migrations :
erp/migrations/*.sql.
6. Base de données
6.1 Schéma CRM
crm/database/crm_schema.sql crée tables users, companies, contacts, opportunities, quotes, activities, emails, attachments, pipeline_stages, targets, powerbi_reports, analytics_metrics, activity_logs, system_settings, notifications. Inclut données par défaut (stades pipeline, paramètres, compte admin, rapports).
6.2 Schéma ERP
001_create_erp_tables.sql crée tables erp_companies, erp_employees, erp_payrolls, erp_shifts, erp_products, erp_rentals, erp_rental_items, erp_sales, erp_inventory, erp_stock. 002_seed_erp_data.sql ajoute des données démo, 003_remove_customer_id.sql nettoie les colonnes héritées.
6.3 Convergence CRM/ERP
- Tables CRM (
companies,products) peuvent servir de référentiel mais l’ERP dispose de tables préfixéeserp_. - Vérifier la cohérence des clés étrangères en cas de synchronisation inter-modules.
7. Automatismes & intégrations
- Cron marketing : exécuter
php crm/cron/send-scheduled-campaigns.php. - Power BI : config Azure AD dans
config/database.php, chargement vialoadPowerBIReport(). - Notifications & logs : fonction
logActivity(). - IA : endpoints
api/ai/intégrables avec un LLM externe.
8. Sécurité & bonnes pratiques
- Activer les vérifications d’authentification et restreindre l’accès aux pages sensibles.
- Configurer HTTPS et les en-têtes CORS.
- Désactiver l’affichage des erreurs en production.
- Éviter la création involontaire de bases (adapter
install-db.php). - Limiter les permissions sur
assets/uploads/et les fichiers de logs.
9. Tests & validation
- Smoke tests : connexion admin, dashboard CRM, Power BI.
- Fonctionnels : flux contact → opportunité → facture → campagne.
- ERP : ajout employé, paie, produit, vente, contrôle stock.
- API : tester
crm/api/diagnostic.php,crm/api/kpis.php,erp/api/inventory.php?action=fetch.
10. Pistes d’amélioration
- Mutualiser le schéma produit CRM/ERP, synchroniser le catalogue.
- Introduire un fichier
.envpour centraliser la configuration. - Ajouter des tests automatisés (PHPUnit, Cypress).
- Sécuriser les endpoints par jeton/API key et renforcer l’audit.
- Industrialiser le déploiement (Docker, CI/CD) et gérer les migrations avec un outil dédié.