Deutsch Demo shop Store

Form plugin for Shopware Building your own forms in Shopware 6

Shopware ships a contact form, and it works exactly as long as nobody wants an extra field. This page shows what the built-in tools carry, where they stop, and how the plugin builds a form from groups, rows and 23 field types.

View in the Shopware Store Open the demo shop

How a form comes about Fifteen examples to see

33 element types 12 operators 6 places in the shop

dein-shop.de/produkte/beratung
Request product advice
Salutation
Ms
First name *
Mira
Last name *
Smith
Customer type *
Company
Company
Example Ltd.
Quantity
250
Urgency
Preferred date
1 Jul 2026

We call back the same working day.

Message *

I agree to be contacted. *

Submit

What Shopware can do on its own

Shopping experiences have one form element. It knows three types, and in all three the fields are fixed.

Contact form

Salutation, first name, last name, email, phone, subject, message. Whether first name, last name and phone are mandatory is a basic setting. Which fields exist is nobody's decision.

Newsletter

Its own type with its own purpose: sign-up and sign-off. It leads into the newsletter recipient list, not into a mailbox.

The element itself has five settings: type, headline, recipient address, whether the shop address receives a copy, and the confirmation text. None of them touches a field.

Where that stops

Three points at which the built-in tools have nothing left to offer.

One more field

Order number, preferred date, quantity, an attachment: the element has no place for them. The way there leads through your own template.

One field depends on another

Company and VAT ID should only appear when somebody ticked "company". A fixed template does not know that difference.

Looking it up later

The core does not store the submission. It validates it, raises an event, a flow turns that into an email. After that it lives in the mailbox and nowhere else.

How you put a form together

Six steps, all in the administration, none in the source code. On the right, each step shows the same form one stage further along.

  1. 01

    Create a group

    A form starts as an empty section with a heading. The group asks nothing itself; it holds together what belongs together.

    Personal details

    no elements yet

  2. 02

    Put elements in

    Now the fields go in. Each gets a label, optionally a placeholder, and you decide whether it is mandatory. Stacked, they first take the full width.

    Personal details
    Salutation
    Ms
    First name *
    Mira
    Last name *
    Schmidt
  3. 03

    Split into rows

    Three fields side by side instead of stacked: within a row a twelve-column grid distributes the width. A third is four columns, a half is six.

    Personal details
    Salutation
    Ms
    First name *
    Mira
    Last name *
    Schmidt
  4. 04

    Push something in between

    Content elements fit between the rows: a subheading, a note, a divider. They ask nothing and do not show up in the submission later.

    Personal details
    Salutation
    Ms
    First name *
    Mira
    Last name *
    Schmidt

    We get back to you within one working day.

    Message
  5. 05

    Add conditions

    A field may listen to another. Twelve operators are available: "equals", "contains", "greater than", "is empty" and their counterparts. The company only appears once somebody picked "company".

    Personal details
    Salutation
    Ms
    First name *
    Mira
    Last name *
    Schmidt
    Customer type *
    Company
    Companyonly for "company"
    Muster GmbH
  6. 06

    Let it validate

    Finally the rules: mandatory, shortest and longest entry, smallest and largest value, earliest and latest date, permitted file types. The browser reports at once, and the server checks the same rule again.

    Personal details
    Salutation
    Ms
    First name *
    Mira
    Last name *at least 2 characters
    S

    Please enter at least 2 characters.

Every step in full

A tree, not a field list

Groups and rows are elements themselves. The indent says what something sits inside, and the width only applies within a row.

Elements

# Name Type Width
1 Product advice Group, Structure element --
1.1 Customer type row Row, Structure element --
1.1.1 Customer type Dropdown menu (select), Input element 1/2
1.1.2 Advice topic Single choice (radio), Input element 1/2
1.2 Company data row Row, Structure element --
1.2.1 Company Single-line text (text), Input element 1/2
1.2.2 VAT ID Single-line text (text), Input element 1/2
1.3 Project row Row, Structure element --
1.3.1 Quantity Number (number), Input element 1/3
1.3.2 Urgency Slider (range), Input element 1/3
1.3.3 Preferred date Date (date), Input element 1/3
1.4 Rush notice Warning message (yellow), Content element 1/1 - full row

Rebuild of the outline from the administration, with the values of the demo form "Request product advice".

  • Structure

    Group and row. In the storefront a group becomes a section with its own heading, a row divides up the width. Neither takes any input.

  • Content

    Eight output elements: heading, free text, line break, rule, and four message kinds in green, blue, yellow and red. The rush notice above is one of them.

  • Inputs

    The 23 field types. Only these are validated and stored. Two of them produce two inputs from one element: first name with last name, email with phone.

    All field types with their options

Width is a twelve-column grid and only applies within a row: 12 is the whole row, 6 a half, 4 a third, 3 a quarter. Outside a row the full width always applies.

Every input type at a glance

These are the 23 types a form is built from, each as it appears in the shop. From a single line of text to the field pair that asks for first and last name in one go.

Single-line text (text)
Mira
text
Multi-line text (textarea)
textarea
Dropdown menu (select)
Choice
select
Checkbox (checkbox)

Yes

checkbox
Date (date)
1 Jul 2026
date
Time (time)
09:30
time
Date + time (datetime-local)
1 Jul 2026 09:30
datetime-local
Number (number)
250
number
Slider (range)
range
Phone number (tel)
+49 30 123456
phone
Color picker (color)
#4c3fb5
color
URL (url)
https://beispiel.de
url
Email address (email)
mira@beispiel.de
email
Single choice (radio)
  • Yes
  • No
radio
Multiple choice (checkboxes)
  • A
  • B
checkbox-group
Image upload (file)

Choose an image

image
File upload (file)

Choose a file

file
Hidden field (hidden)

not visible

hidden
Country selection
Germany
country
Consent / agreement

I agree.

consent
Salutation
Ms
salutation
First name + Last name
Mira
Schmidt
firstname-lastname
Email address + Phone number
mira@…
+49 30 …
email-phone

Names and order come from the plugin, not from this page.

Read up on every type in the manual

What orders and explains the form

Not every element asks something. These structure the form or say something, and none of them shows up in the submission later.

Structure

Orders the form. These elements do not appear in the submission.

  • Group group
  • Row row

Content

Explains and separates. These elements do not end up in the payload either.

  • Heading title
  • Vertical line separator
  • Line break line-break
  • Free text content
  • Success message (green) alert-success
  • Info message (blue) alert-info
  • Warning message (yellow) alert-warning
  • Error message (red) alert-danger

Fields that listen to other fields

Every element can carry conditions, a row or a group included. It then takes everything inside it along.

Customer type: Private

Product advice
Customer type *
Private
Advice topic *
  • Selection help
  • Technical question
  • Quote
Message *
What would you like to know?

Customer type: Company

Product advice
Customer type *
Company
Advice topic *
  • Selection help
  • Technical question
  • Quote
Company *
Example Ltd.
VAT ID
GB123456789
Message *
What would you like to know?

The condition sits on the "company data" row, not on the two fields inside it. Without reloading the page.

  • Twelve operators

    Which ones are on offer depends on the field the condition looks at. Text fields know "contains", number fields "is greater than", checkboxes "is checked".

    All operators in the manual

  • Several conditions mean OR

    One satisfied rule is enough for an element to appear. The server evaluates the same rules again before validation, so a tampered form smuggles nothing through.

Planned quantity
250
Urgency 9
Preferred date
1 Jul 2026

For urgent requests we recommend adding a phone number.is greater than 7

The same mechanism with a number: the yellow message hangs on the rule "greater than 7".

Where the form appears

Three places, and at two of them an assignment decides which form it becomes.

Shopping experience

Hero section

Block "Form Manager" from the Form category, with the chosen form

Shopping experiences

As its own block and as an element, in the Form category. You put it into a section and pick the form. It brings its own place with it.

More on this

Product
Request
Below buy box
Product
Request
Below description
Product
Request
Own tab

Product page

Three positions to choose from: below the buy box, below the description, or in a tab of its own. Plus three ways to show it: visible right away, collapsed behind a button, or as a link.

More on this

Form Context Sales channel Date
Request product advice Product · SW10005 Storefront 21 June 2026
Order query Order · 10042 Storefront 21 June 2026
Contact form — Storefront 21 June 2026

Customer account

In the order list and in the order detail. The order number comes along by itself: afterwards it sits on the submission as its context, without anybody having typed it.

More on this

An assignment names the form, the products or a dynamic product group, optionally a rule from the rule builder, and a priority. If two assignments hit the same product, the higher number wins. A parent product covers the whole variant family.

What happens to the submissions

They sit in a history, with the context they came from.

Form Context Sales channel Date
Request product advice Product · SW10005 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, plus filters and the CSV export.

Only the actual values

What gets stored is what somebody entered: type, key, label, value. Groups and rows do not end up in it.

The export looks back

The CSV columns come from the stored submissions, not from today's form. A form changed or deleted later therefore does not make old submissions unreadable.

Reply and notification

The form says what the sender sees afterwards: free text or one of the four message kinds. On top of that you can store an address that receives an email.

History, context, CSV and email in detail

What a submission holds

The CSV export starts with 14 fixed columns. They are there for every submission, whatever the form looks like. The form's own fields follow.

01ID 02Form 03Context type 04Context ID 05Context reference 06Context data 07Customer 08Customer ID 09Customer number 10Email 11Sales channel 12Language 13Domain 14Created at … then the form's own fields

The export looks back: it takes the labels that applied when the submission arrived. Renaming a field later does not change an old row.

What can be configured

The plugin configuration as it appears in the administration. Few switches: most of it you decide on the form itself.

Default

  • Folder for file uploads In which folder in the media manager should file uploads of forms be saved?

CAPTCHA

  • Activate CAPTCHA If enabled, the forms validate the CAPTCHA selected in Settings > Shop > Basic Information. Supported are Honeypot, Basic CAPTCHA and Google reCAPTCHA v3.

Product detail page

  • Activate product forms Global switch for all product detail page form assignments. If disabled, no product forms are displayed, regardless of the individual assignments.
  • Position Controls where assigned product forms are displayed on product detail pages.
  • Display mode Controls whether the form is visible directly or opened first by the customer.

Order detail page

  • Activate order forms Global switch for all order detail page form assignments. If disabled, no order forms are displayed, regardless of the individual assignments.
  • Display mode Controls how assigned order forms are displayed in the customer account order area.

Every setting in the manual

Fifteen forms from practice

Each starts from a situation shops really have and ends with a form that resolves it. The fields are the ones the plugin offers.

A contact form that asks for the order number

Requests come in about everything: delivery time, invoice, a product question, a complaint.

See the form

Advice right at the product

A machine, a material, a made-to-measure piece of furniture: customers ask before buying whether it fits.

See the form

A volume enquiry for business customers

A reseller wants 500 units, delivered to Austria, by the end of the quarter. They write a three-line email, and sales then asks back three times.

See the form

An appointment request with fixed time slots

Advice, a fitting, a workshop slot, a pickup: the customer should propose a time.

See the form

Uploading artwork

Printed textiles, signs, business cards: the customer supplies the artwork. So far by mail, with the subject "attached" and no order reference.

See the form

A query about an order

The product arrived damaged, a device needs a repair, the invoice is missing, one line item should go back.

See the form

An application through the careers page

The shop is hiring. The careers page has an address for applications, and the documents arrive in every conceivable shape.

See the form

Registering for an event

A handful of dates, limited places, catering included. The kitchen needs the number of people and the dietary requirements, and it needs them beforehand.

See the form

A revocation form with an order reference

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.

See the form

Marc's complaint form takes photos and already knows the order

Marc sells espresso machines and grinders. Complaints used to arrive by email: "machine is dripping", without an order number, a photo or a serial number.

See the form

At Birgit's nursery, customers request the catalogue through a form

Birgit runs a perennials nursery with mail order. Catalogue requests used to arrive by email and phone, and the addresses were typed up, sometimes with a postcode, sometimes without.

See the form

Lena checks every dealer inquiry before there is a dealer account

Lena sells wooden toys to families and to dealers. Dealer inquiries arrived by email, sometimes with a business licence attached, sometimes with a link, sometimes with nothing.

See the form

Tom's buyback form shows the camera before it is shipped

Buyback requests used to arrive by email: "I still have a camera, what will you pay?" No model, no condition, no picture.

See the form

Sophie asks after every delivery how satisfied her customers are

So far Sophie only heard back when something went wrong, as an email to customer service.

See the form

At Kai's shop, customers request a callback right on the product

Kai sells saunas and infrared cabins. Before the purchase it is about dimensions, the power supply and delivery into the basement, and that gets sorted out on the phone.

See the form

What the plugin costs

The plugin itself is free and lets you build one form. What you add on lifts the limits and unlocks the history and the assignments.

Free

To try it out: one form with a few fields, placed in the shop through any Shopping Experience.

0 €

permanently, no term

up to 1
form
up to 5
elements per form

Included

  • Forms with groups, rows, texts and fields
  • Show and hide fields depending on the input
  • As an element in any Shopping Experience
  • Email notification to chosen recipients
  • Spam protection with the captcha from the settings
  • File and image upload into a media folder

Starter

For small shops: as many fields as needed in one form and every submission kept in the history.

99 € a year 9.90 € a month

that is € 8.25 a month, plus VAT€ 19.80 saved cancel monthly, plus VAT

up to 1
form
unlimited
elements per form

Everything from Free, plus:

  • History of every submission
  • Export submissions as CSV, filtered
Recommended

Business

For most shops: several forms, also right on the product pages next to the matching product.

199 € a year 19.90 € a month

that is € 16.58 a month, plus VAT€ 39.80 saved cancel monthly, plus VAT

up to 5
forms
unlimited
elements per form

Everything from Starter, plus:

  • Forms on the product pages
  • In the buy box, the description or a tab of its own

Enterprise

For large shops: unlimited forms, and questions after the purchase in the customer’s order details.

399 € a year 39.90 € a month

that is € 33.25 a month, plus VAT€ 79.80 saved cancel monthly, plus VAT

unlimited
forms
unlimited
elements per form

Everything from Business, plus:

  • Forms in the order details of the customer account
  • Unlimited forms

Prices, limits and features as the plugin itself shows them. What counts for the purchase is the store.

Frequently asked questions

Do I need a plugin for custom forms in Shopware?

As soon as one more field is needed, yes, at least below the Evolve plan. The shopping experiences in Shopware ship one form element with three types and fixed fields; every extra field means a template of your own. A form builder of its own comes from Shopware only with Evolve; the Shopware documentation says: “For creating your own form, you need the extension "CMS extensions". This is part of the Shopware Evolve plan of Shopware 6.” With the plugin you put together forms, conditions and placement in the administration, without writing code. All sources are on shop-formulare.de/en/comparison/.

Do I need to touch any code?

No. Forms, conditions and placement are all set up in the administration. What is stored is what somebody entered.

Which forms can I build with it?

Anything the 23 field types can ask for. Before the purchase, a product inquiry, a quote request form with quantity and preferred date, a callback request form with phone number and time, or a catalogue request form with address and country selection. Alongside the shop, a dealer inquiry form with company and VAT ID, a buyback form with photos and the condition as a choice, or a contest entry form with consent to the terms of participation.

Which forms fit after the purchase?

In the customer account the form sits on the order and brings the order number and order date along by itself. That suits a complaint form with photos, a form for warranty claims, a repair request form with a fault description, or a service request form. For a feedback form or a short customer survey, single choice, slider and a text field are enough; the answers sit in the history and the CSV export.

Does this replace the built-in contact form?

It does not have to. The built-in element stays where it is; this one is for the cases the fixed fields do not cover. Whoever wants to customize forms in Shopware 6 builds their own with it.

Where do the submissions end up?

In a history in the administration, with form, context, customer, sales channel and date, plus a CSV export. Optionally an email goes out on top of that.

What happens to old submissions when I change the form?

They stay readable. A submission stores its own labels and values, and the CSV export builds its columns from the stored submissions rather than from the current definition.

Can one product show a different form than another?

Yes. An assignment names products or a dynamic product group and carries a priority; the higher number wins. A parent product covers its whole variant family.

Does it bring its own CAPTCHA?

No, and that is on purpose. For spam protection it validates the CAPTCHA from the basic settings: honeypot, basic CAPTCHA or Google reCAPTCHA v3. A CAPTCHA outside those three is skipped.

How many field types are there?

23 input types, 8 content elements and 2 structure elements, so 33 in total. Two of the input types produce two inputs from one element.

Can a field depend on another one?

Yes, that is what conditions are for. Twelve operators, and which of them are on offer depends on the type of the field the condition looks at. A condition on a whole row takes everything inside it along.

What happens to uploaded files?

They go into the Shopware media manager, in the folder set in the plugin configuration. The submission holds the reference, not the file. Allowed extensions and maximum size are set on the field.

Is the form translated?

Labels, placeholders and option lists are maintained per language, like any other translatable content in Shopware.

Does it work with the paid Shopware plans?

Yes. The plugin needs no particular Shopware plan; it runs when the shop is self-hosted or runs in PaaS, not in Shopware SaaS. From the Evolve plan on, Shopware brings a form builder of its own with the extension “CMS extensions”; file upload, fields that depend on others and a store of the submissions do not appear in Shopware's guide for it. The CAPTCHA the paid plans add, Friendly Captcha, is not validated by this form.

What does it cost?

The plugin is free and lets you build one form with up to five elements. The plans lift those limits and unlock the history and the assignments; they start at 8.25 € a month, paid yearly, plus VAT.

Can I try it out first?

Yes. The Free plan is the trial: install it, build a form, place it. The demo shop shows the finished result without installing anything.

Does it store personal data?

It stores what the sender entered, plus the sales channel, the language, the time and, if signed in, the customer. Nothing is passed to a third party.