Skip to main content

MageMe EU Withdrawal | Configuration Reference

Complete reference for every admin setting in Stores → Configuration → MageMe Extensions → EU Withdrawal.

The page is structured to mirror the admin form — the eight sections are laid out in lifecycle order: General module setup → what the customer sees pre-contract → what's eligible at all → when the clock runs → special digital waiver path → storefront UI → customer emails → after-the-fact retention.

For conceptual deep dives see Eligibility Rules, Digital Content Waiver, Email Templates, and Annex I Translations.

On this page

  1. General — master enable, request number prefix, contract type, URL prefix
  2. Pre-Contract Information — Art. 6(1)(h) disclosure
  3. Eligibility Rules — Article 16 exclusion presets + Detection subgroup
  4. Withdrawal Window — when the clock starts and how long it runs
  5. Digital Waiver — checkout step, confirmation email, per-locale texts
  6. Frontend — button labels, placements, return reasons, review step
  7. Customer Notifications — 6 emails + shared branding
  8. Privacy and Retention — PII and hash retention windows
  9. reCAPTCHA — pointer

1. General

Master switches that take effect across the entire module.

General configuration group

FieldTypeDefaultDescription
Enable ModuleYes/NoNoActivates the frontend flow and cron jobs. Complete the manual setup checklist (see Setup Checklist) before enabling.
Request Number PrefixText(blank)Optional prefix prepended to the withdrawal request ID in customer-facing UI. For example, RR- renders the request ID as RR-000000022. Leave blank to show the plain padded number.
Default Contract TypeSelectPhysical goodsDefault contract classification used when the module needs to pick a fallback. Options: Physical goods, Digital content (non-tangible), Digital service (SaaS / subscription), Financial services (Enterprise-tier only).
Frontend RouteTextwithdraw-contractURL prefix for the customer-facing withdrawal flow. withdraw-contract renders the landing page at /withdraw-contract/. Lowercase letters, digits, dashes, and underscores only. Changing the value after the module is live invalidates any URLs printed in already-sent emails.

2. Pre-Contract Information (Art. 6(1)(h))

Mandatory pre-contractual disclosure of the right of withdrawal, displayed on the checkout payment step. Every display is logged forensically (Art. 10 defence).

FieldTypeDefaultDescription
Enable Pre-Contract DisclosureYes/NoYesMaster kill-switch. When disabled, the block does not render and no display events are recorded. Disabling exposes the merchant to Art. 10 — the right of withdrawal extends by up to 12 months plus the standard 14-day period if pre-contract information was not disclosed.
Return AddressTextarea(blank, falls back to Stores → Configuration → General → General → Store Information → Store Contact Address)Where consumers send goods back. If blank, the Magento store contact address is used.
Display In CheckoutYes/NoYesOff renders no on-page block but still records display events server-side via a predispatch fallback. Use only for sandbox testing — production must display the block.

The actual period length (14, 30, 100 days) is set in Withdrawal Window, not here.

warning

The Annex I text rendered on this page (covering all 22 EU locales) is based on the EUR-Lex Directive text. Counsel review is recommended before overriding the text per locale — see Annex I Translations.

3. Eligibility Rules (Art. 16 Presets)

Per-category exclusions from the right of withdrawal. All four presets are off by default; the merchant opts items out by enabling the relevant preset and tagging the products. Detailed mechanics, seal-break semantics, and product-attribute setup in Eligibility Rules.

Eligibility Rules configuration group

FieldTypeDefaultRequired attributeDescription
Art. 16(c) Custom-Made GoodsYes/NoNois_custom_made = 1Excludes products made to consumer specifications.
Art. 16(d) Perishable GoodsYes/NoNois_perishable = 1Excludes goods that deteriorate or expire rapidly.
Art. 16(e) Sealed Hygiene / HealthYes/NoNois_sealed_hygiene = 1Excludes sealed hygiene or health items only if the seal has been broken after delivery.
Art. 16(i) Sealed Audio / Video / SoftwareYes/NoNois_sealed_av = 1Excludes sealed audio/video/software only if the seal has been broken after delivery.

Detection (Art. 16(m)) — nested subgroup

Decides what counts as digital content for eligibility purposes. The actual checkout-step waiver UI and email lives in the next section, Digital Waiver.

FieldTypeDefaultDescription
Enable Digital Content DetectionYes/NoNoMaster switch. When off, no product is recognised as digital, no waiver step is required, and the Art. 16(m) preset always allows withdrawal.
Detection StrategiesMulti-selectDownloadable, VirtualHeuristics: Downloadable products, Virtual products, Bundles containing digital children, Custom attribute flag.
Custom Attribute CodeTextis_digital_contentEAV attribute code, read only when Custom attribute flag is in the strategies list.

4. Withdrawal Window

Defines when the 14-day withdrawal right starts running (Art. 9(2)(b)) and how long it lasts (Art. 9(2)). Together these control the period each order's withdrawal is open.

FieldTypeDefaultRangeDescription
Withdrawal Period (Days)Number1414–3650Period length per Art. 9(2). Extension allowed (30, 100 days, etc.) and common as a customer-trust feature. Reduction below 14 is illegal and the field rejects values outside this range.
Delivery Confirmation StatusesMulti-select(none)One or more Magento order statuses whose transition marks the moment the customer received the goods. The clock starts at the earliest transition into any of the selected statuses. Multi-select supports merchants with several delivered-type statuses (complete, delivered, delivered_partial).
warning

Delivery Confirmation Statuses is the only mandatory field with no sensible default. Until you select at least one status, the storefront flow throws a configuration error. For a standard Magento workflow, select Complete.

5. Digital Waiver (Art. 16(m))

The checkout-step waiver UX and durable-medium confirmation email under Article 16(m). For digital products to be excluded from withdrawal, both this section and Eligibility Rules → Detection above must be on.

FieldTypeDefaultDescription
Enable Checkout Waiver StepYes/NoNoRender the 2-checkbox waiver UI at checkout when a detected digital item is in the cart. Has no effect unless Eligibility Rules → Detection → Enable Digital Content Detection is also on.
Mark Virtual-Only Items as Performance-Started on ConfirmationYes/NoNoVirtual products have no download trigger. When on, the dispatch of the confirmation email counts as performance-start for virtual-only items. Off by default — turn on only if your virtual products are services that begin immediately on purchase.

Confirmation Email (Art. 11a(4)) — nested subgroup

Durable-medium copy of the customer's Art. 16(m) waiver, sent immediately after checkout when a digital item is in cart. Required by Art. 11a(4) Directive 2011/83/EU.

FieldTypeDefaultDescription
EnabledYes/NoYesDisable only if you deliver the durable-medium confirmation through a different channel.
Email TemplateSelectMageMe EU Withdrawal — Digital Waiver ConfirmationChoose a custom template you created under Marketing → Email Templates.
Email IdentitySelectGeneral ContactWhich Magento sender identity sends the email.
BCC MerchantText(blank)Comma-separated audit address(es). Blind-copies every waiver confirmation.

Per-Locale Waiver Text Overrides — nested subgroup

Per-locale Consent Text and Right-Loss Acknowledgment Text overrides for 17 explicit locales (the others fall through to the bundled translation). Empty fields fall through to the locale baseline.

→ Detail: Digital Content Waiver.

6. Frontend

Customer-facing UX for the withdrawal flow.

Buttons

FieldTypeDefaultDescription
Step 1 Button LabelTextWithdraw from contract herePrimary CTA. Default is Art. 11a(2) verbatim wording. Per-locale translations are counsel-default. Overrides are audit-logged.
Step 2 Button Label (Confirmation)TextConfirm withdrawalFinal confirmation button. Overrides audit-logged.
warning

Do not override the button labels unless you have received written advice from qualified consumer-law counsel in the target jurisdiction. Article 11a(2) accepts the Directive's verbatim text or a corresponding unambiguous formulation; what counts as unambiguous is a legal question.

Placements

FieldTypeDefaultDescription
Show Footer LinkYes/NoYesA Withdraw from contract link in the storefront footer.
Show in My AccountYes/NoYesThe sidebar link plus eligibility badges on My Orders and a withdrawal block on the order view page.

Return Reasons

The dropdown shown to the customer per item on Step 1.

FieldTypeDefaultDescription
ReasonsArrayChanged my mind, Wrong size or fit, Defective or damaged, Not as describedCode/Label pairs. Code is lowercase, snake_case, max 32 characters. Label is the visible text. An empty grid hides the dropdown entirely.
Enable "Other" with Free TextYes/NoYesWhen on, an Other option in the dropdown reveals a free-text field (max 500 characters).

Review Step

FieldTypeDefaultDescription
Return Shipping NoticeTextareaYou'll receive a prepaid shipping label in the confirmation email.Text shown on the Review step. Leave blank to hide the row.
Return Policy URLTextreturn-policyOptional link rendered next to the shipping notice. Accepts absolute URLs or relative paths.

7. Customer Notifications and Branding

Six customer email types, each with Enabled / Email Template / BCC Merchant fields, plus a shared Branding subgroup with the USP strip and social links.

This group is documented in detail on its own page: Email Templates — variables, retry/DLQ mechanics, branding fields.

note

The digital-waiver confirmation email (sent on checkout when a digital item is detected) is not in this section — it lives under Digital Waiver → Confirmation Email so all digital-waiver settings sit together.

8. Privacy and Retention

Withdrawal records carry two kinds of data with different mandatory retention periods: personally identifiable fields (customer name, email, IP, user agent, denial reason, admin notes) and the content hash that is the Art. 11a(4) durable-medium proof. These settings define how long each is meant to be kept.

note

In the current free-tier release these are policy settings, not an automated job. The module stores your intended retention windows but does not yet run a background task that nullifies PII or deletes aged-out records — age withdrawal data out through your existing GDPR data-retention process until automated enforcement ships. The anonymised request status is reserved for that future tooling.

FieldTypeDefaultRangeDescription
PII Retention (days)Number730 (2 years)730–3650How long personally identifiable fields are intended to be kept before they are nullified. The withdrawal record itself is meant to stay — only PII fields are wiped.
Hash Retention (days)Number2190 (6 years)2190–3650How long the content hash (Art. 11a(4) durable-medium proof) is intended to be retained. After PII is wiped, the record keeps only the hash and timestamps until this window expires; then the record is deleted entirely. Must be ≥ PII Retention.

reCAPTCHA

The module integrates with Magento's standard reCAPTCHA configuration when Magento_ReCaptchaUi and Magento_ReCaptchaFrontendUi are installed.

note

To protect the guest order-lookup form, navigate to Stores → Configuration → Security → Google reCAPTCHA Storefront and set a reCAPTCHA type for Enable for EU Withdrawal Lookup Form. Configuration follows Magento's standard reCAPTCHA workflow — there is no module-specific setting.

Default values reference

Click to expand — etc/config.xml defaults verbatim, useful for diffing against a configured store.
<mageme_eu_withdrawal>
<general>
<enabled>0</enabled>
<increment_prefix></increment_prefix>
<default_contract_type>physical_goods</default_contract_type>
<frontend_route>withdraw-contract</frontend_route>
</general>
<precontract>
<enabled>1</enabled>
<return_address></return_address>
<display_in_checkout>1</display_in_checkout>
</precontract>
<eligibility>
<preset_custom>0</preset_custom>
<preset_perishable>0</preset_perishable>
<preset_sealed_hygiene>0</preset_sealed_hygiene>
<preset_sealed_av>0</preset_sealed_av>
<digital>
<enabled>0</enabled>
<detect_product_types>downloadable,virtual</detect_product_types>
<custom_attribute_code>is_digital_content</custom_attribute_code>
</digital>
</eligibility>
<withdrawal_window>
<period_days>14</period_days>
<delivery_status_code></delivery_status_code>
</withdrawal_window>
<digital_waiver>
<enabled>0</enabled>
<virtual_timer_enabled>0</virtual_timer_enabled>
<email>
<enabled>1</enabled>
<identity>general</identity>
<template>mageme_eu_withdrawal_digital_waiver_email_template</template>
<bcc_merchant></bcc_merchant>
</email>
</digital_waiver>
<frontend>
<buttons>
<button_label_step1>Withdraw from contract here</button_label_step1>
<button_label_step2>Confirm withdrawal</button_label_step2>
</buttons>
<placements>
<footer_link>1</footer_link>
<my_account_link>1</my_account_link>
</placements>
</frontend>
<retention>
<pii_retention_days>730</pii_retention_days>
<hash_retention_days>2190</hash_retention_days>
</retention>
</mageme_eu_withdrawal>

Defaults for the Customer Notifications and Branding subgroups are on Email Templates.