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