When do you need an extension at all?
Shopware can do returns - it depends on which edition you run and on who files the case. The moment the customer is meant to file it, the built-in tools stop.
What Shopware does by itself
A delivery knows the states "Returned" and "Returned (partially)", and payments can be refunded. That lets you record that something came back - but there is no case, no reason, no page for the customer. The return happens in your inbox.
What Shopware Commercial brings
The paid plans carry a returns module with its own entities, statuses, documents and refund calculation. It is built towards the administration: there are admin endpoints and exactly one customer route, POST /store-api/order/{orderId}/return, behind a licence check. It does not ship a storefront controller - the customer account gains a status column, but no form. Anyone who wants the customer to file the return builds that front end.
Where this extension starts
It starts with the customer: finished pages in the account and for guests, a reason and a desired procedure per line, a comment field, a closing page with status and document. What appears in the admin follows from that, rather than the other way round. It runs on every Shopware edition.
Four routes side by side
The rows follow the process: who files the return at the top, what it costs to run at the bottom.
| Without an extension | Shopware Commercial | Third-party plugin | This extension | |
|---|---|---|---|---|
| Who can file a return | ||||
| The customer files the return | no: no customer route | no: store API only | yes: yes | yes: a storefront page of its own |
| Ready-made storefront pages | no: none | no: the route only | yes: yes | yes: six pages |
| Guests without an account | no: no returns at all | partly: the store API allows guests | yes: yes | yes: search by name, e-mail, postcode |
| Guests see the status without an account | no: no returns at all | no: no view for it | yes: yes | yes: through the same search |
| What the customer states | ||||
| A reason list you maintain yourself | no: no returns at all | yes: own list, translatable | yes: yes | yes: own list, translatable |
| A reason per line, not per return | no: no returns at all | yes: per line | yes: yes | yes: per line |
| A requested procedure per line | no: no returns at all | no: the reason only | no: no | yes: own list, can be switched off |
| A comment per line | no: no returns at all | no: internal only | no: no | yes: from the customer, per line |
| The unit price in the return form | no: no returns at all | no: no | yes: yes | no: not in the form |
| A checklist before filing | no: no returns at all | no: no | no: no | yes: required ticks in a modal |
| What you can restrict | ||||
| Deadline from the delivery status | no: no returns at all | no: no | yes: yes | yes: days or a fixed date |
| Excluding single products | no: no returns at all | no: no | no: no | yes: a Twig condition per line |
| Label and document | ||||
| Return document as a PDF | no: no | yes: partial cancellation slip | yes: yes | yes: a return slip of its own |
| DHL label and QR code | no: no | no: no | yes: yes | yes: label and QR code |
| UPS label | no: no | no: no | no: no | yes: within Germany only |
| Selling the label for a fee | no: no | no: no | no: no | yes: a product in the cart, per country |
| Working through it in the admin | ||||
| Statuses of your own | no: no | yes: state machine | no: no | yes: own list, translatable |
| Posting to inventory at the press of a button | no: no | yes: quantity per line | no: no | yes: per line, once |
| A public answer to the customer | no: no | no: internal only | yes: yes | yes: public and internal kept apart |
| Running it, and what it costs | ||||
| Needs a paid Shopware plan | no | yes | no | no |
| Rent per month | none | part of the plan | 29.00 € | 49.00 € |
The two columns on the left and the one for this extension are checked against the source code. The third-party column comes from the store listing and the documentation of a returns extension for Shopware 6, read on 6 September 2026.
When you do not need it
You have five returns a month and know every customer by name. Then an email is faster than any form.
Your returns already run through a service provider with a portal of its own. Then you do not want a second place where cases appear.
What you mainly need is the refund calculation and the accounting side. That is the strength of the Commercial module, not of this extension.