Form
Which form was filled in. The internal name, as it appears in the form list.
The built-in route in Shopware ends in a mailbox: event, flow, email, done. Here the submission is stored - with the context it came from.
Every submitted request sits here, with the context it came from.
| Form | Context | Sales channel | Date |
|---|---|---|---|
| Request product advice | Product · SWDEMO10005 | Storefront | 21 June 2026 |
| Order query | Order · 10042 | Storefront | 21 June 2026 |
| Contact form | — | Storefront | 21 June 2026 |
Rebuild of the history. The list also carries the customer.
Which form was filled in. The internal name, as it appears in the form list.
Where the submission came from: a product with its number, an order with its number, or nothing when the form sat in a shopping experience.
Who sent it, if signed in, plus sales channel, language and time. These are attached to the submission, not to the form.
Not the form, but the values - with labels of their own.
| Type | Key | Label | Value |
|---|---|---|---|
| select | Kundentyp | Customer type | Company |
| text | Firma | Company | Example Ltd. |
| text | USt-ID | VAT ID | DE123456789 |
| range | Dringlichkeit | Urgency | 9 |
| textarea | Nachricht | Message | Please send us a quote at short notice. |
Four entries per item. Groups and rows do not appear - they ask for nothing.
Every submission carries its own label with it. That is why a field renamed later does not falsify an old submission: it still knows what the field was called back then.
The three double fields - salutation, first name with last name, email with phone - appear as two values, joined by a vertical bar.
What was invisible under the conditions is not written at all. The server evaluates the rules again before it builds the payload.
The columns come from the stored submissions, not from the current form definition.
Fourteen columns for id, form, context, customer, sales channel, language, domain and time. They are in every file, whichever forms are involved.
After that comes a column block for each form, headed "form name: field label". A row only fills the columns of its own block.
Submissions from a deleted form get a block of their own. They are grouped by the shape of the stored values, so two different deleted forms stay two different blocks.
The separator is a semicolon, and a UTF-8 marker precedes the first line. That way umlauts land correctly even in spreadsheet programs that would otherwise guess.
Both sit on the form, both are independent of the history.
After sending, only the form area is swapped, the page does not reload. The confirmation takes its place: either free text with HTML, or one of the four message kinds in green, blue, yellow or red.
Without your own message the default text from the snippets applies. It can be changed like any other snippet in the shop.
Thank you for your product enquiry. Our team is reviewing your details.
Per form you can store an address that receives an email after submission. One switch, one address, that is all.
The email is an addition, not a replacement. The submission is in the history even if nobody switched the notification on - and it is still there when the mail landed in spam.
File and image uploads are stored in the Shopware media, not as an attachment in the submission. The plugin configuration says which folder of the media manager that happens in.
That means the same permissions, folders and cleanup routes apply to the files as to any other media in the shop. Allowed extensions and maximum size are set on the field.
Groups, rows and the twelve-column grid.
All 23 field types and what they do.
Mandatory fields, limits, CAPTCHA.
Twelve operators and the OR rule.