Schéma fonctionnel — vue d'ensemble
Ce schéma illustre le principe de fonctionnement de l'application : qui fait quoi, comment les données circulent, et quels sont les composants en jeu. Mis à jour le 2026-04-20 après clarification du modèle par Fabien.
Rappel du modèle : ML Solutions loue la solution aux Fournisseurs (ex : un vendeur de boissons). Le Fournisseur gère son catalogue, ouvre son compte Stripe et encaisse directement les paiements. Le CSE partenaire reçoit un lien unique (logo + remise) à diffuser à ses salariés — il ne touche à aucun argent. Le salarié paie directement le Fournisseur via Stripe.
1. Les 4 acteurs
🛠️
Admin ML Solutions
Super-admin — Laurent / Fabien
- Créer / gérer les Fournisseurs clients
- Superviser l'activité globale de la plateforme
- Accès aux audit logs
- Paramètres plateforme (version, monitoring)
- Facturation licence Fournisseur (hors app)
🏭
Admin Fournisseur
Client payant de ML Solutions (ex : vendeur de boissons)
- Saisir ses clés Stripe (wizard BYOS)
- Gérer son catalogue produits
- Gérer sa liste de CSE partenaires (logo, remise, lien unique)
- Créer et clôturer des campagnes
- Suivre commandes et déclencher remboursements
- Exporter récaps CSV / PDF
🏢
CSE partenaire
Canal de distribution — sans flux financier
- Reçoit un lien unique personnalisé (logo CSE + remise négociée)
- Diffuse ce lien à ses salariés par ses propres canaux
- Optionnel : accès lecture seule aux commandes de ses salariés (à arbitrer)
- Ne touche à aucun argent — pas de compte Stripe, pas de facturation
👤
Salarié (acheteur final)
Utilisateur final — paie le Fournisseur directement
- Accède à la page de commande via le lien unique du CSE
- Choisit ses produits, saisit les bénéficiaires par ligne si cadeau
- Paie sa part individuellement (Stripe du Fournisseur)
- Reçoit confirmation + facture émise par le Fournisseur
- Consulte éventuellement son historique (magic link / compte / OTP)
2. Flux de vie d'une campagne
1
Admin Fournisseur crée la campagne
Produits sélectionnés, CSE partenaires ciblés, remise par CSE, dates optionnelles
→
2
Lien unique par CSE envoyé
Email au CSE partenaire avec son lien personnalisé à diffuser à ses salariés
→
3
Salarié choisit et paie
Page de commande (logo CSE) → panier → paiement Stripe sur le compte du Fournisseur
→
4
Confirmation automatique
Webhook Stripe → facture émise par le Fournisseur + email de confirmation au salarié
→
5
Fournisseur livre + clôture
Livraison directement au salarié ou groupée au CSE (selon choix). Récap exportable.
3. Arborescence par espace
🛠️ Espace Admin ML Solutions
- Dashboard global
- Fournisseurs clients
- Liste
- Création / édition
- Activation / suspension
- Audit & logs
- Paramètres plateforme
🏭 Espace Admin Fournisseur
- Tableau de bord
- Configuration
- Identité du Fournisseur
- Clés Stripe (wizard BYOS)
- Admins du Fournisseur
- CSE partenaires
- Liste / ajout / édition
- Logo, email, remise négociée
- Lien unique généré
- Catalogue produits
- Campagnes
- Création / clôture / duplication
- Ciblage CSE + produits
- Récap + exports
- Commandes & remboursements
🏢 Espace CSE partenaire (optionnel)
- Lien unique pour ses salariés
- Si accès activé :
- Consultation commandes de ses salariés (lecture seule)
- Personnalisation logo / couleurs
👤 Espace Salarié
- Page de commande (via lien unique du CSE)
- Sélection produits + panier + bénéficiaires par ligne
- Paiement Stripe (compte Fournisseur)
- Confirmation + facture PDF du Fournisseur
- Historique (magic link / compte / OTP selon choix)
4. Composants transverses
AuthMagic link salarié · mot de passe + 2FA optionnel admins Fournisseur et ML
Stripe BYOS1 compte Stripe par Fournisseur · webhook dédié par Fournisseur · clés chiffrées (Laravel
encrypted)BrevoEmails transactionnels — compte central ML ou par Fournisseur (à arbitrer)
Audit logsActions sensibles tracées (refund, modif clés Stripe, connexions admin)
QueuesJobs asynchrones (emails, webhooks) via Supervisor
ExportsCSV commandes · PDF récap de campagne (côté admin Fournisseur)
Multi-tenantIsolation par Fournisseur (scope global middleware) · CSE comme entité fille
Facturation B2CFacture au nom du Fournisseur (via Stripe Invoices)
5. Architecture technique (niveau haut)
Client (navigateur)
Admin ML Solutions
Filament (panel /admin)
Filament (panel /admin)
Admin Fournisseur
Filament (panel dédié)
Filament (panel dédié)
CSE partenaire
Filament (lecture) ou rien
Filament (lecture) ou rien
Salarié
Blade / Livewire public
Blade / Livewire public
▼ HTTPS
Laravel 13 (PHP 8.4) — VPS Contabo + Virtualmin (prod) / LXC Proxmox (préprod)
Controllers / Actions
Models Eloquent (Supplier, CePartner, Campaign, Order…)
Middleware multi-tenant (scope Fournisseur)
Queues (Supervisor)
▼
Infra & services externes
MariaDB 10.11
Données applicatives
Données applicatives
Redis (optionnel)
Cache, sessions, queues
Cache, sessions, queues
Stripe API
Par Fournisseur (BYOS)
Par Fournisseur (BYOS)
Brevo API
Emails
Emails
Avancement global
0 / 0 tâches terminées