EMAIL_TEMPLATES_GUIDE
Guide des Templates d'Emails
Vue d'ensemble
Le système de templates d'emails permet de gérer facilement tous les emails envoyés par l'application. Les templates sont stockés en base de données et peuvent être modifiés depuis l'interface d'administration.
Variables disponibles
Les templates utilisent des variables dynamiques entre accolades {variable} qui sont remplacées automatiquement lors de l'envoi.
Variables communes
{nom_client}- Nom du client{nom_entreprise}- Nom de l'entreprise{url_dashboard}- Lien vers le dashboard{url_reservation}- Lien vers une réservation{url_messagerie}- Lien vers la messagerie{url_entreprise}- Lien vers la page publique de l'entreprise
Variables spécifiques aux réservations
{nom_service}- Nom du service{date_reservation}- Date et heure de la réservation{duree}- Durée en minutes{prix}- Prix formaté{lieu}- Lieu de la réservation{membre}- Nom du membre assigné{telephone}- Téléphone du client{notes}- Notes de la réservation
Variables HTML conditionnelles
Certaines variables sont remplacées par du HTML conditionnel :
{lieu_html}- Paragraphe avec le lieu (vide si pas de lieu){membre_html}- Paragraphe avec le membre (vide si pas de membre){notes_html}- Paragraphe avec les notes (vide si pas de notes){remboursement_html}- Message de remboursement si applicable
Types de templates
welcome
Email de bienvenue envoyé lors de l'inscription.
Variables : nom_client, url_dashboard
reservation_confirmation_client
Confirmation de réservation envoyée au client.
Variables : nom_client, nom_entreprise, nom_service, date_reservation, duree, prix, lieu_html, membre_html, notes_html, url_reservation
reservation_confirmation_gerant
Notification de nouvelle réservation envoyée au gérant.
Variables : nom_client, nom_entreprise, nom_service, date_reservation, duree, prix, telephone, lieu_html, notes_html, url_reservation
reservation_reminder
Rappel de rendez-vous.
Variables : nom_client, nom_entreprise, nom_service, date_reservation, duree, heures_avant, contact_entreprise, lieu_html, membre_html, url_reservation
payment_received
Confirmation de paiement reçu.
Variables : nom_client, nom_entreprise, nom_service, date_reservation, montant, date_paiement, url_reservation
new_message
Notification de nouveau message.
Variables : nom_client, nom_entreprise, contenu_message, url_messagerie
reservation_cancelled_client
Notification d'annulation de réservation (client).
Variables : nom_client, nom_entreprise, nom_service, date_reservation, prix, message_annulation, remboursement_html, url_entreprise
weekly_report
Rapport hebdomadaire pour les gérants.
Variables : nom_gerant, nom_entreprise, total_reservations, reservations_confirmees, reservations_en_attente, revenu_total, revenu_paye, url_dashboard
Utilisation dans le code
Méthode simple avec EmailHelper
use App\Helpers\EmailHelper;
// Email de bienvenue
EmailHelper::sendWelcome($user);
// Confirmation de réservation
EmailHelper::sendReservationConfirmationClient($reservation);
// Rappel
EmailHelper::sendReservationReminder($reservation, 24); // 24 heures avant
Méthode avancée avec EmailTemplateService
use App\Services\EmailTemplateService;
EmailTemplateService::send('welcome', $user->email, [
'nom_client' => $user->name,
'url_dashboard' => route('dashboard'),
], [
'cc' => 'admin@example.com', // Optionnel
'attachments' => ['/path/to/file.pdf'], // Optionnel
]);
Gestion des templates
Depuis l'interface admin
- Accédez à
/admin/email-templates - Cliquez sur "Modifier" pour éditer un template
- Utilisez "Prévisualiser" pour voir le rendu avec des données d'exemple
Depuis le code
use App\Services\EmailTemplateService;
// Créer ou mettre à jour un template
EmailTemplateService::createOrUpdate('custom_type', [
'name' => 'Mon template personnalisé',
'subject' => 'Sujet avec {variable}',
'body' => '<p>Corps avec {variable}</p>',
'variables' => ['variable'],
'is_active' => true,
'description' => 'Description du template',
]);
Installation
Pour installer les templates par défaut, exécutez :
php artisan migrate
php artisan db:seed --class=EmailTemplateSeeder
Personnalisation
Tous les templates utilisent le layout emails.layout qui peut être personnalisé dans resources/views/emails/layout.blade.php.
Les templates peuvent contenir du HTML complet avec les classes CSS définies dans le layout.