Best Practices for Withdrawal Button Setup
Looking for Withdrawal Button? View the full Withdrawal Button page to explore features, configuration options, and pricing.
These are the recommended ways to set up and manage the Withdrawal Button for Magento 2. Since this is a compliance module, getting it right matters — both legally and operationally. This guide covers what the EU directive actually requires from your webshop, how to set up an efficient workflow for your team, and the most common mistakes we see stores make when implementing withdrawal rights.
Recommended configurations and patterns for Withdrawal Button.
EU Compliance Checklist
Do's
✅ Offer withdrawal on all store views serving EU customers — it's not optional
✅ Make the withdrawal process as easy as placing an order (that's the core requirement of EU Directive 2023/2673)
✅ Keep the magic link enabled — a one-click path from the order email is the simplest way to comply
✅ Show the footer link — regulators expect withdrawal to be easily discoverable
✅ Send confirmation emails with a reference code and timestamp — you need proof of when the withdrawal was received
✅ Keep withdrawal records for your administration — they're part of your legal obligations
Don'ts
❌ Don't set the withdrawal period below 14 days (EU minimum)
❌ Don't exclude product types without a legal basis — the exceptions are specifically defined in EU law
❌ Don't make customers jump through extra hoops (requiring phone calls, postal mail, etc.) alongside the button
❌ Don't delay processing — the directive requires acknowledgment without undue delay
Legal Exemptions
Not all products are subject to withdrawal rights. The EU directive defines specific exceptions. Common ones:
- Digital content delivered immediately (with consumer consent) — virtual and downloadable products are excluded by default
- Sealed goods that are unsealed after delivery (hygiene, health)
- Personalized/custom-made products
- Perishable goods with a short shelf life
- Sealed audio/video recordings that were unsealed
Configure exclusions only for products that genuinely fall under these legal exceptions. When in doubt, allow withdrawal — it's safer from a compliance perspective.
Operational Workflow
Choosing Your After-action Mode
| Mode | Best for | Trade-off |
|---|---|---|
| Registration Only | Stores that want full manual control, complex product catalogs, or stores just getting started | Every withdrawal needs manual action |
| Semi-automatic | Most stores — balances oversight with efficiency | Still requires manual processing, but you get notified |
| Full Automatic | High-volume stores with straightforward order types (single shipment, standard refund process) | Less control over individual cases |
Processing Withdrawals Efficiently
- Check the grid daily — Sales → Withdrawal Requests shows all pending withdrawals
- Use mass actions for batch processing when you have multiple straightforward cases
- Review before rejecting — rejecting a valid withdrawal can lead to disputes or regulatory complaints
- Monitor
action_taken = nonein Full Automatic mode — these are cases the module couldn't process automatically and need manual attention
When to Reject a Withdrawal
Valid reasons to reject:
- The withdrawal period has expired (the module prevents this automatically, but edge cases exist)
- The product falls under a legal exemption and the customer acknowledged this at purchase
- The customer already received a full refund through another channel
Invalid reasons to reject:
- The product was on sale or discounted
- The customer opened the package (unless it's a sealed/hygiene product)
- You don't want to process the refund
Email Template Tips
The default email templates work out of the box, but customizing them improves the customer experience:
- Customer confirmation email — Add your return instructions (where to ship the product, what to include). The withdrawal right and the return logistics are separate steps.
- Admin notification email — The default includes a direct link to the withdrawal in the admin. Keep this — it saves your team time.
- Order confirmation email — The magic link (``) is injected automatically. If you use a custom template, make sure it's not stripped out.
Common Mistakes
Mistake: Treating withdrawal as a return process
Why it's wrong: Withdrawal (herroeping) is a legal right to cancel a distance purchase. It's not the same as a return/RMA process. The customer doesn't need a reason, and you can't impose conditions beyond what the law allows. Correct approach: Process the withdrawal as cancellation of the purchase agreement. Handle the physical return of goods separately.
Mistake: Only offering withdrawal to logged-in customers
Why it's wrong: Guest customers have the same withdrawal rights. If your checkout allows guest orders, those customers must be able to withdraw too. Correct approach: Keep the magic link and guest lookup page enabled. These are the two paths for non-logged-in customers.
Mistake: Not monitoring withdrawals in Full Automatic mode
Why it's wrong: Full Automatic handles the common cases, but falls back silently on edge cases (partially shipped orders, orders that can't be canceled or refunded). These end up with action_taken = none.
Correct approach: Regularly filter the withdrawal grid on action_taken = none and process those manually.
Mistake: Configuring Delivery Date without tracking actual deliveries
Why it's wrong: Without a reliable delivery date, the module falls back to order date. This could mean the withdrawal period starts earlier than intended, giving customers less time. Correct approach: Use Shipment Date unless you have carrier integration that reliably tracks delivery. Order Date is the safest fallback.
Need More Help?
Documentation:
- All Help Articles - Complete documentation overview
Support:
- Contact Support - Get help from our team
For a complete overview of features and configuration options, see Withdrawal Button.