diff --git a/apps/ops/src/modules/campaigns/pages/TemplateEditorPage.vue b/apps/ops/src/modules/campaigns/pages/TemplateEditorPage.vue index 31fdc7c..aa578e5 100644 --- a/apps/ops/src/modules/campaigns/pages/TemplateEditorPage.vue +++ b/apps/ops/src/modules/campaigns/pages/TemplateEditorPage.vue @@ -10,6 +10,13 @@ Sauvegardé · {{ lastSavedLabel }} + + + 9 variables disponibles (Client / Offre / Système). + Insertion : clic dans un texte → barre flottante → icône {} Merge Tags. + Marche aussi dans les champs URL (boutons, images, mailto). + + Voir le HTML rendu (substitué) tel que reçu par le destinataire @@ -116,17 +123,38 @@ const editorOptions = { tools: { dock: 'left' }, }, }, - mergeTags: { - firstname: { name: 'Prénom', value: '{{firstname}}' }, - lastname: { name: 'Nom', value: '{{lastname}}' }, - email: { name: 'Courriel', value: '{{email}}' }, - amount: { name: 'Montant', value: '{{amount}}' }, - gift_url: { name: 'Lien cadeau', value: '{{gift_url}}' }, - description: { name: 'Adresse service', value: '{{description}}' }, - expiry: { name: "Date d'expiry", value: '{{expiry}}' }, - commitment_months: { name: 'Engagement (mois)', value: '{{commitment_months}}' }, - year: { name: 'Année', value: '{{year}}' }, - }, + // Merge tags organized by category — Unlayer shows these in a dropdown + // when editing a text block (click into text → toolbar → {} icon) and + // ALSO in URL fields (Button "Action URL", Image "Source", mailto links). + // The `sample` field is what Unlayer shows as a preview (so the user sees + // realistic content while editing); on send, the hub's Mustache renderer + // substitutes the actual value. + mergeTags: [ + { + name: 'Client', + mergeTags: [ + { name: 'Prénom', value: '{{firstname}}', sample: 'Louis' }, + { name: 'Nom de famille', value: '{{lastname}}', sample: 'Tremblay' }, + { name: 'Courriel', value: '{{email}}', sample: 'louis@targo.ca' }, + { name: 'Adresse service', value: '{{description}}', sample: '123 Rue de la Rivière, Ste-Clotilde' }, + ], + }, + { + name: 'Offre', + mergeTags: [ + { name: 'Montant', value: '{{amount}}', sample: '60 $' }, + { name: 'Lien cadeau (URL)', value: '{{gift_url}}', sample: 'https://gft.link/abc' }, + { name: "Date d'expiration", value: '{{expiry}}', sample: '31 décembre 2026' }, + { name: 'Engagement (mois)', value: '{{commitment_months}}', sample: '3' }, + ], + }, + { + name: 'Système', + mergeTags: [ + { name: 'Année courante', value: '{{year}}', sample: '2026' }, + ], + }, + ], // Display mode: 'email' (default, with mobile preview), 'web' for landing pages displayMode: 'email', // Locale for built-in strings