Skip to main content

MageMe EU Withdrawal | Email Templates and Branding

This page covers every email the module sends, how to customise the templates, the shared branding settings, retry mechanics for the legally-required receipt, and the opt-in withdrawal-CTA variants of Magento's order and shipment emails.

For the regulatory background on the receipt and waiver-confirmation emails (Art. 11a(4)), see Legal & Compliance. For per-locale waiver text overrides, see Digital Content Waiver.

Customer-facing emails

The module sends seven emails to customers and one admin alert. Six of the customer emails are configured under Customer Notifications; the seventh — the digital-waiver confirmation — sits with the rest of the digital-waiver settings.

Six lifecycle emails

Configured under Stores → Configuration → MageMe Extensions → EU Withdrawal → Customer Notifications.

#EmailWhen the customer receives it
1Submission ConfirmationRight after they confirm the withdrawal on the storefront
2ApprovalWhen you approve their request in admin
3DenialWhen you deny their request in admin
4Cancellation (Admin-Initiated)When you cancel on their behalf
5Cancellation (Customer Self-Cancel)When they cancel their own pending request
6Receipt — Durable MediumImmediately after they confirm — this is the legally-required proof under Art. 11a(4)

Digital-waiver confirmation email

Configured under Stores → Configuration → MageMe Extensions → EU Withdrawal → Digital Waiver (Art. 16(m)) → Confirmation Email (Art. 11a(4)). Lives next to the other digital-waiver settings so all waiver configuration sits together.

EmailWhen the customer receives it
Digital Waiver ConfirmationRight after they place an order containing a digital item — required by Art. 11a(4) to make the Art. 16(m) waiver effective
warning

The Receipt email and the Digital Waiver Confirmation email are the durable-medium proofs required by Article 11a(4). The on/off toggle in admin only stops the sender — the records are still generated and stored. Disabling either is a compliance violation unless you deliver the durable medium through another counsel-reviewed channel.

Customising a template

Magento's standard email-template workflow applies — there is nothing module-specific about it.

  1. Navigate to Marketing → Communications → Email Templates.

  2. Click Add New Template.

  3. Load default template — choose the one matching the email you want to change (e.g. MageMe EU Withdrawal — Receipt).

  4. Edit the subject, content, and CSS.

  5. Save.

  6. Assign your custom template in the matching admin field — either Stores → Configuration → MageMe Extensions → EU Withdrawal → Customer Notifications → <email> → Email Template (lifecycle emails) or Stores → Configuration → MageMe Extensions → EU Withdrawal → Digital Waiver (Art. 16(m)) → Confirmation Email → Email Template (waiver email).

  7. Flush cache:

    php bin/magento cache:flush

The next email of that type uses your custom template.

Available variables

When you load a default template, the @vars block at the top lists every placeholder Magento will substitute when sending — customer name, order number, refund total, withdrawal number, view URL, and the shared branded header and footer. Keep the variable names exactly as shown in the loaded template; rename them and Magento renders the placeholder verbatim.

BCC the merchant

The BCC Merchant field on each email group accepts one address (or a comma-separated list). Every send of that email type blind-copies the address — useful for compliance archives or for putting customer-service in the loop. Leave blank to skip.

Receipt and DLQ

The receipt email (Email #6) is the legally-required durable-medium proof under Art. 11a(4). It is the only email with retry and dead-letter-queue mechanics.

SettingDefaultWhat it does
Delivery Retry Attempts3How many times the module retries a failed send before giving up. Range: 1–10.
DLQ Alert Recipient(blank, falls back to your General Contact email)Address that receives the alert when retries are exhausted.

The module retries failed receipt sends automatically — a cron job runs every minute and reattempts delivery. After the configured number of retries, the alert email goes to the address above, the request remains valid, and the Resend receipt button on the request detail page lets you trigger one more attempt once you've fixed the underlying issue (SMTP, recipient mailbox, etc.).

A successfully delivered receipt looks like this in the customer's inbox:

Receipt email rendered in Mailpit

Magento cron

Make sure Magento's standard cron is running on your server:

* * * * * php /var/www/html/bin/magento cron:run

Without it, retries, abandoned-request cleanup, and other background jobs do not fire.

Email branding

All seven customer-facing emails (six lifecycle + waiver confirmation) share a branding wrapper rendered into email_header_html and email_footer_html. Configure under Stores → Configuration → MageMe Extensions → EU Withdrawal → Customer Notifications → Branding.

Store identity (read from Magento)

The following fields are not module settings — the branding wrapper reads them from the standard Magento configuration:

WhatWhere Magento reads it from
Brand wordmark / nameStores → Configuration → General → General → Store Information → Store Name
LogoContent → Design → Configuration → <store> → Transactional Emails → Logo Image
Support emailStores → Configuration → General → Store Email Addresses → General Contact → Sender Email
Store addressStores → Configuration → General → General → Store Information → Store Contact Address

Get these right in Magento and they propagate to every EU Withdrawal email automatically. No module configuration needed.

USP strip (3 slots)

Three optional "USP" rows render above the email body — common uses are Free delivery / EU orders above €50, Return for free / Within 14 days, Secure checkout / SSL encrypted. For each slot:

FieldPurpose
IconPicks an SVG icon from the module-bundled icon set (truck, return, shield, lock, etc.)
TitleShort header line (e.g. Free delivery)
SubtitleSupporting line (e.g. EU orders above €50)

Empty title and subtitle hide the slot.

Four optional social URLs render as round monogram badges in the email footer:

FieldRenders if
Instagram URLURL is set
X / Twitter URLURL is set
Facebook URLURL is set
YouTube URLURL is set

Leave blank to hide the badge.

Add a withdrawal CTA to order and shipment emails

The module ships four alternate versions of Magento's standard order-confirmation and shipment-notification emails. Each adds a "Start withdrawal" call-to-action with the deadline, on top of the regular email content. The shipment variants are the most useful placement — the 14-day clock starts at delivery, so the customer sees the CTA in the same email that tells them their parcel has shipped.

To turn this on:

  1. Go to Marketing → Communications → Email Templates → Add New Template.
  2. Load one of the MageMe variants: MageMe EU Withdrawal — Order Confirmation (with withdrawal link) (or the guest / shipment / shipment-guest equivalents).
  3. Save without edits (or customise the wording first).
  4. Assign your saved template under Stores → Configuration → Sales → Sales Emails → Order / Shipment.

Troubleshooting

SymptomWhat to check
Customer says they did not receive the receiptOpen the request in admin → check the audit log for delivery attempts and any error message → click Resend receipt after fixing the underlying SMTP / mailbox issue.
Custom template is set in admin but emails use the defaultFlush cache (php bin/magento cache:flush), then trigger a test email.
Branding header is blankThe wrapper reads store name, logo, support email, and address from your standard Magento config — make sure those are populated for the active store view.
Receipt arrives without the "Verify this receipt" buttonThat button is a Pro feature. The free-tier template hides it automatically when the verify URL is not available.
The sales / shipment email shows Magento's default content with no withdrawal rowConfirm the template you assigned under Sales Emails is one of the MageMe variants from the table above — Magento's own default templates do not include the row.