Summary
Drupal Commerce should provide a standardized "withdraw from contract" button that allows customers to easily exercise their statutory right of withdrawal for online purchases, in order to support compliance with EU consumer protection rules.
Problem / Background
EU legislation increasingly requires that consumers can exercise their right of withdrawal through a simple digital mechanism directly in the online interface. Directive (EU) 2023/2673 introduces the concept of a mandatory electronic withdrawal button for distance contracts, ensuring that withdrawing from a contract is at least as easy as concluding it.
Starting 19 June 2026, online traders offering contracts through websites or apps must provide a clearly visible and easily accessible withdrawal function that allows consumers to submit a withdrawal request electronically.
Currently, Drupal Commerce does not provide a built-in mechanism to support this requirement, leaving site builders to implement their own solutions.
Proposed solution
Drupal Commerce should include a standardized "Withdraw from contract" button and workflow that allows authenticated users to submit a withdrawal request for eligible orders.
The feature could integrate with the order entity and provide a simple UI that enables users to trigger the withdrawal process directly from their order page.
Requirements
Based on the requirements introduced by Directive (EU) 2023/2673:
- Provide a clear and easily accessible "withdraw from contract" button in the user interface.
- The button should allow users to submit a withdrawal declaration electronically without requiring manual communication (e.g. email or paper forms).
- The function must be available during the entire statutory withdrawal period.
- The system should provide confirmation of the withdrawal request on a durable medium (for example by email).
- The process should be simple, transparent, and traceable to demonstrate that the withdrawal request was received and processed.
Reference
Directive (EU) 2023/2673: https://eur-lex.europa.eu/eli/dir/2023/2673/oj/eng
| Comment | File | Size | Author |
|---|---|---|---|
| OJ_L_202302673_EN_TXT.pdf | 674 KB | electric.larry |
Comments
Comment #2
rszrama commentedYou mean I could place an order and then go view my order history and withdraw even if you've begun fulfillment? Or if I were served a digital good? This is an odd one.
In any event, it's most likely best situated in a contributed module where it can evolve on its own timeline vs. being tied to release of Commerce Core itself.
Comment #3
electric.larry commentedThanks for the feedback, Ryan.
To clarify: the withdrawal button doesn't expand the right of withdrawal itself - existing legal exceptions (digital goods fully performed with prior consent, personalized items, etc.) still apply. The button is simply the mandated channel for submitting the declaration where the right already exists.
On contrib vs. core: that may well be the right call. Our main concern is the deadline - compliance is required by 19 June 2026. Whether this lands in contrib or core, it would help to align on the expected workflow early so implementations don't diverge.
We wrote up a short overview of the directive's specific requirements (two-step process, confirmation email, restricted form fields) here: https://www.lowfidelity.at/en/blog/one-click-contract-withdrawal-new-rul...