Deutsch Demo shop Store

A revocation form with an order reference

Revocation has to be possible, and it should be traceable. Both get easier when the form sits where the order is already known.

The job

The situation

A customer wants to revoke. They find the form on a legal page, fill it in and type the order number from memory, or not at all.

Where the built-in tools stop

Shopware ships a revocation form as the third type of its form element. It sits on a page, its fields live in the template, and it knows nothing about the order in question.

This is what the form looks like

Revocation
Revocation concerns
  • the whole order
  • individual products
Which products?only for "individual products"
Premium T-shirt, size M
Reason
Do not like it
Received on
16 June 2026

I hereby revoke the contract concluded by me for the purchase of the goods named above. *

No field is needed for the order number: in the customer account it sits above the form ("Use this form for questions about order 10042."), and order number, order date, amount and currency travel invisibly with the submission. The reason is optional.

What matters here

your-shop.example/admin
FormsCancelSave
FormStructureElement
Elements
#NameTypeWidth
1RevocationGroup--
1.1Revocation concernsSingle choice (radio)1/1 - full row
1.2Which products?Single-line text (text)1/1 - full row
1.3Row 3Row--
1.3.1ReasonDropdown menu (select)1/2
1.3.2Received onDate (date)1/2
1.4ConsentConsent / agreement1/1 - full row

Create top-level element

  • The order is already known

    Through an order assignment the form appears in the customer account on every order. The submission then carries the order number as its context; nobody types it, nobody mistypes it.

  • A fixed choice plus a text field

    Choice options are fixed text and the same for every order; they do not know the line items of an order. So the form only asks "the whole order" or "individual products"; only for "individual products" does a condition reveal the text field where the customer names them. A comma separates options, so none of them contains one.

  • The declaration as a consent field

    The consent type is meant for exactly this and can be made mandatory. The text beside it is a label like any other, and so it is translatable.

This is a form, not legal advice. Which text belongs on a revocation form and what else is required is something to settle with somebody qualified; this page does not. The withdrawal function the law requires, with its "Revoke a contract" button, comes with Shopware itself: The withdrawal button in Shopware 6

  • Where it sits

    Order assignment, in the customer account on the order list and the order detail. The form on the legal page stays alongside it, for everyone who is not signed in.

    The three routes to the page

  • What comes back

    Context "order" with the number, plus scope, products, reason and date as columns of their own. That turns the history into a list you can sort by date and filter by order number.

    History, context and CSV