1. Accès & rôles
Le back-office Codinfy est accessible via /admin et protégé par plusieurs couches de sécurité cumulatives.
Authentification
- Connexion via
/connexion avec email + mot de passe.
- Si 2FA activé : challenge TOTP obligatoire après login.
- La politique 2FA admin est configurable dans Sécurité.
RBAC — Rôles
- super-admin : accès total, toutes permissions.
- admin : accès complet sauf gestion des rôles.
- support : tickets, clients (lecture), licences (lecture).
- finance : paiements, factures, remboursements.
- marketing : coupons, affiliés, notifications.
Restriction IP
- Allowlist IP/CIDR optionnelle pour
/admin.
- Configurable dans Admin > Sécurité > Restriction IP.
- Ajouter les IP de bureau et VPN avant activation.
- Les blocages sont audités automatiquement.
Activez la restriction IP uniquement après avoir ajouté toutes vos IP légitimes. Un verrouillage accidentel nécessite un accès direct au fichier .env pour désactiver.
2. Tableau de bord KPIs
Le dashboard admin affiche les métriques temps réel et l'état de santé de la plateforme.
KPIs financiers
- MRR (Monthly Recurring Revenue)
- Revenus du jour / 7 jours / 30 jours
- Transactions en attente
- Taux de conversion du checkout
KPIs produit
- Licences actives / expirées / suspendues
- Nouvelles activations du jour
- Tickets support ouverts / hors SLA
- Score NPS prédit (CRM)
Santé système
- État des intégrations API (vert / rouge)
- Dernier cron exécuté
- Webhooks en erreur
- Alertes sécurité actives
3. Produits & versions
Créer ou modifier un produit
1Admin > Produits > Nouveau produit (ou éditer un existant).
2Renseigner : titre, slug, version actuelle, description courte et longue, prix Standard / Extended / Agency en XOF (ou devise configurée).
3Définir la distribution : codinfy_only, codecanyon_only ou both. Si CodeCanyon, renseigner l'item_id Envato.
4Uploader le ZIP dans storage/app/products/ et renseigner le chemin. Les fichiers ZIP ne sont jamais exposés dans public/.
5Renseigner les URLs de démo et de preview, les requirements, le changelog et le nombre de mois de support par défaut.
6Publier le produit (statut active). Il apparaît immédiatement dans la boutique publique.
Publier une nouvelle version
1Admin > Produits > Versions > Nouvelle version.
2Renseigner le numéro de version (semver recommandé : 2.1.0), le changelog, les release notes et indiquer si la version est breaking.
3Uploader le nouveau ZIP. L'ancienne version reste disponible pour rollback client.
4Lancer codinfy:send-update-notifications pour notifier tous les détenteurs de licence actifs.
Modération avis & questions
Avis clients
Modérer les avis depuis Admin > Produits > Avis. Actions : approuver, rejeter ou signaler un avis inapproprié. Les avis approuvés sont visibles sur la fiche produit publique.
Questions Q&A
Répondre aux questions techniques depuis Admin > Produits > Questions. Les réponses sont visibles sur la fiche produit et indexées par Awa pour le support.
4. Console licences
Actions disponibles sur une licence
| Action | Effet | Usage |
| Modifier statut | active / grace / suspended / expired | Suspension suite à litige ou non-paiement. |
| Changer domaine principal | Met à jour le domaine autorisé | Migration serveur côté client. |
| Étendre le support | Ajoute N mois à support_expires_at | Geste commercial ou renouvellement. |
| Ajouter un domaine | Autorise un nouveau domaine (licence Agency) | Client multi-sites. |
| Révoquer un domaine | Désactive un domaine de la liste | Transfert ou revente de site. |
Console anomalies
Admin > Licences > Anomalies liste les alertes générées automatiquement :
- Alerte Trop d'IPs uniques pour une licence (> 5).
- Alerte Vérifications invalides répétées (> 8/h).
- Critique Débordement de domaines autorisés.
- Critique Vérifications invalides massives (> 20/h).
Action recommandée : vérifier manuellement, contacter le client, puis suspendre ou blacklister si fraude avérée.
Les logs de vérification (license_checks) sont conservés et purgés automatiquement par codinfy:cleanup-license-checks. Consulter ces logs avant toute suspension pour éviter les faux positifs.
5. Gestion clients
Profil client
Modifier depuis Admin > Clients > Éditer :
- Statut (
active / suspended / banned)
- Niveau fidélité (bronze / silver / gold / platinum)
- Langue et devise préférées
- Société, numéro TVA
Gestion wallet
Ajuster le solde wallet depuis Admin > Clients > Wallet :
- Crédit : ajouter un crédit avec motif (bonus, remboursement, geste).
- Débit : déduire un montant avec justification.
- Chaque ajustement crée automatiquement une transaction wallet tracée.
Score CRM client
| Grade | Score | Signification | Action recommandée |
| A | 80–100 | Client premium, très engagé | Upsell Agency, accès anticipé, programme VIP. |
| B | 60–79 | Client actif | Proposer upgrade Extended, newsletter produit. |
| C | 40–59 | Engagement variable | Campagne réactivation, coupon fidélité. |
| D | 0–39 | Client à risque de churn | Contact support proactif, offre personnalisée. |
6. Paiements & factures
Workflow facture standard
1Admin > Paiements → repérer les factures en pending depuis plus de 24h.
2Cliquer Vérifier : Codinfy interroge la gateway pour récupérer le statut réel.
3Si confirmé payé : Marquer payée avec la référence de transaction gateway.
4La licence est activée automatiquement, un email de confirmation est envoyé au client, la facture PDF est générée.
Remboursement
1Admin > Paiements > Rembourser → saisir le motif.
2La facture passe en refunded, la licence associée est suspendue.
3Option : créditer le wallet client plutôt qu'un remboursement gateway (plus rapide).
Litige / Chargeback
1Ouvrir un litige depuis la facture concernée.
2Suspendre la licence par précaution pendant l'instruction.
3Résoudre le litige en won (réactiver licence) / lost (rembourser) / closed (clore sans action).
Relances automatiques
# Relancer les factures pending âgées
php artisan codinfy:send-invoice-reminders
# Synchroniser le statut gateway des pending
php artisan codinfy:sync-pending-invoices
7. Support & SLA
Workflow ticket
- Réception du ticket → assignation agent.
- Triage : priorité, catégorie, liaison licence.
- Réponse ou note interne.
- Basculer vers
pending, waiting_customer ou resolved.
- Si escalade : note interne + tag Awa pour résumé.
- Clôture après confirmation client ou délai.
Macros & réponses types
Préparer des réponses types dans Admin > Support pour les cas fréquents :
- Activation de licence
- Changement de domaine
- Téléchargement non disponible
- Remboursement refusé
- Question technique générique
Base de connaissances (FAQ admin)
Créer et gérer des articles depuis Admin > Support > Base de connaissances. Les articles sont :
- Visibles sur
/faq publiquement.
- Indexés par Awa pour les réponses automatiques de niveau 1.
- Tagués et catégorisés pour la recherche.
Awa peut générer automatiquement des suggestions d'articles FAQ à partir des tickets résolus (Smart FAQ Builder). Activer cette fonctionnalité dans Admin > AI/Awa > Paramètres.
8. CMS & Pages légales
Pages CMS
Créer ou modifier des pages depuis Admin > CMS. Chaque page possède :
- Un slug unique (
/legal/cgu, /a-propos…)
- Un contenu JSON (blocs éditables)
- Des métadonnées SEO (title, description, OG)
- Un statut (brouillon / publié)
Versioning légal
Chaque modification d'une page légale crée une nouvelle version avec :
- Numéro de version incrémental
- Résumé des changements
- Date de publication
- Auteur de la modification
L'historique complet est consultable dans Admin > CMS > Versions légales.
Pages légales standard à maintenir
| Page | Slug | Fréquence de révision |
| Conditions Générales d'Utilisation | /legal/cgu | Annuelle ou lors de changements majeurs |
| Politique de Confidentialité | /legal/confidentialite | Annuelle ou changements RGPD |
| Politique de Remboursement | /legal/remboursement | Selon la politique commerciale |
| Politique Cookies | /legal/cookies | Annuelle |
9. AI / Awa — Configuration & utilisation
Activation
Admin > AI/Awa > Paramètres :
- Activer / désactiver Awa (feature flag)
- Choisir le modèle OpenAI (
gpt-4 recommandé)
- Régler le ton : professionnel / décontracté / formel
- Configurer la clé OpenAI depuis Admin > Paramètres > APIs
System Prompt
Personnaliser le comportement d'Awa avec un system prompt adapté à Codinfy :
- Rôle et nom de l'assistante
- Langue par défaut
- Sources de connaissances autorisées
- Règles d'escalade humain
Test & validation
Tester Awa directement depuis l'interface admin :
- Simuler une question client
- Vérifier la cohérence de la réponse
- Valider le tone of voice
- Tester l'escalade humain
Niveaux d'Awa
| Niveau | Capacités | Activation |
| N1 Support | FAQ, contexte licence, résumé + tags auto tickets | Par défaut dès activation |
| N2 Productivité | Onboarding produit, Smart FAQ Builder, aide éditeur CMS | Feature flag awa_level_2 |
| N3 Business | Upsell contextuel, Proposal Builder PDF, Rapport CEO, Marketing | Feature flag awa_level_3 |
| N4 Sécurité | Score anti-fraude licences, modération contenu | Feature flag awa_level_4 |
Gestion des conversations
Admin > AI/Awa > Conversations permet de :
- Voir toutes les conversations actives et historiques.
- Consulter les scores de satisfaction (feedback 👍👎 des clients).
- Marquer une conversation comme résolue ou escaladée.
- Voir les tokens consommés et la latence par message.
10. CRM avancé
Scoring A/B/C/D
Le CRM calcule un score 0–100 sur 8 dimensions pondérées :
- Connexions récentes (login activity)
- Nombre de tickets support
- Tickets résolus positivement
- Achats et factures
- Licences actives
- Engagement wallet/affiliation
- Ancienneté et fidélité
- NPS prédit
Prédictions IA
- Churn risk : probabilité de non-renouvellement. Seuil alerte : 70%.
- Upsell probability : probabilité d'achat additionnel. Cibler les > 75%.
- Recalcul nightly via
codinfy:compute-crm-scores.
- Cohortes hebdomadaires via
codinfy:compute-cohorts.
Créer une campagne CRM
1Admin > CRM > Campagnes > Nouvelle campagne.
2Choisir le segment cible (grade D, churn > 70%, segment RFM, etc.).
3Choisir le canal : email, push notification, Awa, ou WhatsApp B2B.
4Rédiger le message ou utiliser Awa (niveau 3) pour générer le contenu.
5Planifier ou envoyer immédiatement. Suivre les métriques dans le tableau campagnes.
Journaliser un événement CRM
Tout événement significatif peut être journalisé manuellement ou automatiquement :
// Via l'API admin ou automatiquement lors d'actions clés :
// purchase, login, support_ticket, license_activated, wallet_credit,
// affiliate_click, page_view, email_opened, coupon_used…
11. Marketing
Coupons
- Type : pourcentage ou montant fixe.
- Limiter à un produit, une catégorie, un utilisateur ou un pays.
- Définir une date d'expiration et un nombre d'utilisations max.
- Applicable au checkout avant paiement.
Cartes-cadeaux
- Créer des codes à montant fixe.
- Le client les échange depuis son espace → crédit wallet.
- Le wallet peut couvrir tout ou partie d'une commande.
Flash Deals
- Offre limitée dans le temps sur un produit.
- Affichage automatique sur la fiche produit avec countdown.
- Expiration automatique à la date configurée.
Bundles
- Regrouper plusieurs produits à prix réduit.
- Le bundle génère une licence par produit inclus.
- Affiché sur
/bundles/{slug}.
Programme affiliation
- L'affilié reçoit un lien de référence unique.
- Commission configurable par affilié (%).
- Suivi clics, conversions et gains dans l'espace client.
- Payout depuis Admin > Marketing > Affiliés.
Notifications broadcast
- Envoyer une notification in-app à tous les clients ou un segment.
- Types : info, succès, alerte, mise à jour produit.
- Visibles dans le centre de notifications client.
Webhooks sortants
Configurez des webhooks sortants pour notifier vos systèmes externes :
- Événements disponibles :
invoice.paid, license.activated, ticket.created, user.registered…
- Chaque webhook possède un secret HMAC pour validation côté récepteur.
- Les livraisons échouées sont rejouées automatiquement par
codinfy:retry-failed-webhooks.
12. Sécurité & RBAC
Audit logs
Toutes les actions admin significatives sont journalisées avec :
- Utilisateur, action, modèle concerné
- Anciennes et nouvelles valeurs (diff)
- IP et user-agent
- Horodatage
Consultable dans Admin > Sécurité > Audit.
Sessions actives
Admin > Sécurité > Sessions :
- Voir toutes les sessions admin actives (device, IP, dernière activité).
- Révoquer une session ciblée.
- Révoquer toutes les sessions d'un utilisateur.
Blacklist
Blacklister une entité suspecte :
- Types : IP, domaine, email, purchase_code
- Raison obligatoire pour traçabilité
- Effet immédiat sur les appels API de validation
Alertes système
Créer des alertes depuis Admin > Sécurité > Alertes pour :
- Incidents sécurité en cours
- Anomalies licences critiques
- Problèmes d'intégration
Chaque alerte peut être assignée et marquée résolue.
Politique 2FA admin
| Mode | Comportement |
optional | Le 2FA est proposé mais non obligatoire. Mode bootstrap lors du premier accès. |
required | Tous les comptes admin doivent activer le 2FA pour accéder au back-office. |
Basculer en mode required uniquement après que tous les admins actifs ont activé leur TOTP. Sinon, certains comptes seront bloqués.
Demandes de confidentialité (RGPD)
Admin > Sécurité > Demandes de confidentialité liste les requêtes RGPD des clients :
access : le client veut accéder à ses données.
delete : le client veut supprimer son compte.
portability : le client veut exporter ses données.
Délai légal : 30 jours. Lancer codinfy:monitor-privacy-requests pour surveiller les délais.
13. Paramètres globaux
Plateforme
- Nom du site, titre, email officiel
- URL de la plateforme
- Devises acceptées
- Langues disponibles
- Feature flags (wallet, affiliation, Awa, PWA, CRM…)
APIs & intégrations
- Clés passerelles paiement
- Clé OpenAI (Awa)
- Paramètres SMTP
- Clé reCAPTCHA
- Configuration S3/stockage
Diagnostic & maintenance
- Lancer le diagnostic API (vérifie toutes les clés)
- Envoyer un email de test SMTP
- Générer un rapport opérationnel
- Gérer les packs de traduction JSON (créer, éditer, exporter)
Principe clé Codinfy : toutes les clés API et configurations sensibles sont stockées dans tbl_config (BDD), modifiables en temps réel depuis l'admin sans redéploiement ni accès serveur. Seul le .env contient les paramètres d'infrastructure de base (DB, APP_KEY, APP_URL).