TEMPLATE_EMAIL_USAGE
Guide d'utilisation des Templates d'Emails
Installation
- Exécutez la migration :
php artisan migrate
- Chargez les templates par défaut :
php artisan email-templates:seed
Ou via le seeder principal :
php artisan db:seed
Utilisation simple
Dans vos contrôleurs
Au lieu d'utiliser les classes Mailable directement, utilisez EmailHelper :
use App\Helpers\EmailHelper;
// Email de bienvenue
EmailHelper::sendWelcome($user);
// Confirmation de réservation au client
EmailHelper::sendReservationConfirmationClient($reservation);
// Notification au gérant
EmailHelper::sendReservationConfirmationGerant($reservation);
// Rappel de rendez-vous
EmailHelper::sendReservationReminder($reservation, 24); // 24h avant
// Paiement reçu
EmailHelper::sendPaymentReceived($reservation);
// Nouveau message
EmailHelper::sendNewMessage($message, $conversation);
// Annulation de réservation
EmailHelper::sendReservationCancelledClient($reservation, 'client'); // ou 'gerant'
// Rapport hebdomadaire
EmailHelper::sendWeeklyReport($user, $entreprise, $stats);
Personnalisation des templates
Depuis l'interface admin
- Connectez-vous en tant qu'administrateur
- Allez dans
/admin/email-templates - Cliquez sur "Modifier" pour éditer un template
- Modifiez le sujet et le corps du message
- Utilisez les variables disponibles (ex:
{nom_client},{nom_entreprise}) - Cliquez sur "Enregistrer"
Variables disponibles
Tous les templates supportent des variables dynamiques entre accolades :
{nom_client}- Nom du client{nom_entreprise}- Nom de l'entreprise{nom_gerant}- Nom du gérant{nom_service}- Nom du service{date_reservation}- Date et heure formatée{prix}- Prix formaté{duree}- Durée en minutes{url_dashboard}- Lien vers le dashboard{url_reservation}- Lien vers une réservation- Et bien d'autres selon le type de template
Variables HTML conditionnelles
Certaines variables sont remplacées par du HTML conditionnel :
{lieu_html}- Affiche le lieu si disponible, sinon vide{membre_html}- Affiche le membre si assigné, sinon vide{notes_html}- Affiche les notes si présentes, sinon vide{remboursement_html}- Message de remboursement si applicable
Exemple de template personnalisé
<h1>Bonjour {nom_client} !</h1>
<p>Votre réservation chez <strong>{nom_entreprise}</strong> est confirmée.</p>
<p>Date : {date_reservation}</p>
<p>Service : {nom_service}</p>
<p>Prix : {prix} €</p>
{lieu_html}
{membre_html}
<a href="{url_reservation}">Voir ma réservation</a>
Création d'un nouveau type de template
- Créez le template en base de données :
use App\Services\EmailTemplateService;
EmailTemplateService::createOrUpdate('mon_type', [
'name' => 'Mon template personnalisé',
'subject' => 'Sujet avec {variable}',
'body' => '<p>Corps avec {variable}</p>',
'variables' => ['variable'],
'is_active' => true,
'description' => 'Description',
]);
- Utilisez-le :
EmailTemplateService::send('mon_type', 'email@example.com', [
'variable' => 'Valeur',
]);
Avantages du système de templates
✅ Gestion centralisée - Tous les emails au même endroit
✅ Modification facile - Pas besoin de modifier le code
✅ Personnalisation - Chaque entreprise peut avoir ses propres templates
✅ Variables dynamiques - Remplacement automatique des données
✅ Prévisualisation - Voir le rendu avant d'envoyer
✅ Versionning - Historique des modifications en base de données