
form for requests for the shopping experiences
Description
Highlights
- a own request form for the shopping experiences, in which the following fields are possible, also as required fields: salutation, first name, last name, street address, postal code, city, country, email, phone number, comment, date field and up to 4 fields for free inputs
- the form can either be sent by email to an email address and / or the data can be saved in the database, where the requests can be managed via the own administration module
- a start and end date can also be specified for the date field and dates that should not be selectable can be entered
- if necessary, a requested date can not be longer selected in the date field on the respective page, i.e. in the category, on the landing page or at the product where the form was placed via an shopping experience
- by hiding selected fields, the form can also only be used for general requests, so that it can be used as a normal contact form
About the Extension
Support
If you have any questions and if they have not already been answered in the area "Frequently Asked Questions", simply contact us via the email shopware-apps-support@telekom-mms.com and we will be happy to help you.
Description of the app
The app "Form for requests for the shopping experiences" adds a request form to the CMS, which can be placed in a Shopping Experience using the own CMS block of the same name or the own CMS element of the same name. The desired settings for the form are made at the CMS element and not on a category, a landing page or a product, because the form can also be displayed in places such as in a modal box without reference to a page.
The following fields can be displayed in the form and, if necessary, marked as required fields:- salutation
- first name
- last name
- street address
- postal code
- city
- country
- phone number
- comment
- date field
- data protection information
- up to 10 fields for free inputs (of the type select, input or textarea field).
At the date field, you can also specify a start and end date and enter dates that should not be selectable. Furthermore, the calendar can also be displayed permanently open or you can display 2 months side by side. The comment, the date field and the free inputs can also be displayed above the salutation if necessary.
Using the option "determine available, selectable data also from the requests" of the date field, it is possible that a period that has already been requested and confirmed by the shop owner can no longer be selected at the date field or calendar at the selected product, category or landing page, where the form was placed via a shopping experience, and is therefore blocked. So you have a kind of "booking calendar" that you could use for rentals, for example. It can also be specified within the extension configuration that a request does not have to be confirmed separately so that a period is blocked immediately.
If required, the required fields information can also be hidden and the text of the submit button can also be customized.
With the option "manually set the origin of the request based on the form" it is also possible that the same request form can be placed on different pages in the shop and the selected and confirmed periods are automatically deactivated on all pages. In this case, you specify values for "origin", "origin value" and "individual origin id" in the form. In addition, this function also makes it possible to place several different request forms on the same page, for example on an overview page.
Among other things, the title, an introductory text and a confirmation text can be specified for the form. Furthermore the form can either be sent by email to one or more email addresses or the requester and / or the data entered can be saved in the database.
Via the new menu item "requests" under "customer" you can manage the incoming requests and confirm a period request from a customer so that the requested date can not be longer selected in the date field on the respective page, i.e. in the category, on the landing page or at the product where the form was placed via a shopping experience. You can also specify within the extension configuration that the confirmed status of the requests should be ignored so that the requested data is already automatically deactivated.
Requests can also be added manually via the administration module.
By hiding selected fields, the form can also only be used for general requests, for example without a date selection, so that it can be used as a normal contact form.
The available snippets for customizing are:
- tmms.periodRequestForm.salutation.label: the default value of the label of the salutation
- tmms.periodRequestForm.salutation.placeholder: the default value of the placeholder of the salutation
- tmms.periodRequestForm.firstname.label: the default value of the label of the first name
- tmms.periodRequestForm.firstname.placeholder: the default value of the placeholder of the first name
- tmms.periodRequestForm.lastname.label: the default value of the label of the last name
- tmms.periodRequestForm.lastname.placeholder: the default value of the placeholder of the last name
- tmms.periodRequestForm.street.label: the default value of the label of the street address
- tmms.periodRequestForm.street.placeholder: the default value of the placeholder of the street address
- tmms.periodRequestForm.zipcode.label: the default value of the label of the postal code
- tmms.periodRequestForm.zipcode.placeholder: the default value of the placeholder of the postal code
- tmms.periodRequestForm.city.label: the default value of the label of the city
- tmms.periodRequestForm.city.placeholder: the default value of the placeholder of the city
- tmms.periodRequestForm.country.label: the default value of the label of the country
- tmms.periodRequestForm.country.placeholder: the default value of the placeholder of the country
- tmms.periodRequestForm.email.label: the default value of the label of the email address
- tmms.periodRequestForm.email.placeholder: the default value of the placeholder of the email address
- tmms.periodRequestForm.phone.label: the default value of the label of the phone number
- tmms.periodRequestForm.phone.placeholder: the default value of the placeholder of the phone number
- tmms.periodRequestForm.comment.label: the default value of the label of the comment
- tmms.periodRequestForm.comment.placeholder: the default value of the placeholder of the comment
- tmms.periodRequestForm.date.dateLabel: the default value of the label of the period
- tmms.periodRequestForm.date.datePlaceholder: the default value of the placeholder of the period
- tmms.periodRequestForm.date.dateRequiredErrorMessageLabel: the default value of the error message if the date field is required
- tmms.periodRequestForm.date.dateFormat: the default value of the date format of the calendar
- tmms.periodRequestForm.date.showWeeksNumbers: the default value for displaying the calendar weeks in the calendar
- tmms.periodRequestForm.freeinput.label: the default value of the label of the free input
- tmms.periodRequestForm.freeinput.placeholder: the default value of the placeholder of the free input
- tmms.periodRequestForm.freeinput.placeholderActionInput: the default value of the enter-placeholder of the free input
- tmms.periodRequestForm.freeinput.placeholderActionSelect: the default value of the select-placeholder of the free input
- tmms.periodRequestForm.origin.productLabel: the default value of the origin of the product
- tmms.periodRequestForm.origin.navigationLabel: the default value of the origin of the category
- tmms.periodRequestForm.origin.landingpageLabel: the default value of the origin of the landing page
- tmms.periodRequestForm.submitLabel: the default value of the send button
- tmms.periodRequestForm.inputMaxLength: the default value of the maxlength attribute for single-line input fields
- tmms.periodRequestForm.textareaMaxLength: the default value of the maxlength attribute for multi-line input fields
- tmms.periodRequestForm.textareaNumberRows: the default value of the number of rows for multi-line input fields
- tmms.periodRequestForm.confirmationText: the default value of the confirmation text after successfully submitting the form
- tmms.periodRequestForm.errorText: the default value of the confirmation text after unsuccessful submission of the form
The available variables to customize the email template "request form" are:
- periodRequestFormData.formTitle: title of the form
- periodRequestFormData.origin: the content of the field origin
- periodRequestFormData.originId: the internal id of the origin
- periodRequestFormData.originName: the content of the field origin name
- periodRequestFormData.salutation: the content of the field salutation
- periodRequestFormData.firstname: the content of the field first name
- periodRequestFormData.lastname: the content of the field last name
- periodRequestFormData.street: the content of the field street and house number
- periodRequestFormData.zipcode: the content of the field postal code
- periodRequestFormData.city: the content of the field city
- periodRequestFormData.country: the content of the field country
- periodRequestFormData.email: the content of the field email
- periodRequestFormData.phone: the content of the field phone
- periodRequestFormData.comment: the content of the field comment
- periodRequestFormData.date: the content of the field period
- periodRequestFormData.freeInputLabel: the content of the field for the label of the first free input
- periodRequestFormData.freeInput: the content of the field first free input
- periodRequestFormData.freeInput2Label: the content of the field for the label of the second free input
- periodRequestFormData.freeInput2: the content of the field second free input
- periodRequestFormData.freeInput3Label: the content of the field for the label of the third free input
- periodRequestFormData.freeInput3: the content of the field third free input
- periodRequestFormData.freeInput4Label: the content of the field for the label of the fourth free input
- periodRequestFormData.freeInput4: the content of the field fourth free input
- periodRequestFormData.freeInput5Label: the content of the field for the label of the fifth free input
- periodRequestFormData.freeInput5: the content of the field fifth free input
- periodRequestFormData.freeInput6Label: the content of the field for the label of the sixth free input
- periodRequestFormData.freeInput6: the content of the field sixth free input
- periodRequestFormData.freeInput7Label: the content of the field for the label of the seventh free input
- periodRequestFormData.freeInput7: the content of the field seventh free input
- periodRequestFormData.freeInput8Label: the content of the field for the label of the eighth free input
- periodRequestFormData.freeInput8: the content of the field eighth free input
- periodRequestFormData.freeInput9Label: the content of the field for the label of the ninth free input
- periodRequestFormData.freeInput9: the content of the field ninth free input
- periodRequestFormData.freeInput10Label: the content of the field for the label of the tenth free input
- periodRequestFormData.freeInput10: the content of the field tenth free input
Support
If you have any questions and if they have not already been answered in the area "Frequently Asked Questions", simply contact us via the email shopware-apps-support@telekom-mms.com and we will be happy to help you.
Description of the app
The app "Form for requests for the shopping experiences" adds a request form to the CMS, which can be placed in a Shopping Experience using the own CMS block of the same name or the own CMS element of the same name. The desired settings for the form are made at the CMS element and not on a category, a landing page or a product, because the form can also be displayed in places such as in a modal box without reference to a page.
The following fields can be displayed in the form and, if necessary, marked as required fields:- salutation
- first name
- last name
- street address
- postal code
- city
- country
- phone number
- comment
- date field
- data protection information
- up to 10 fields for free inputs (of the type select, input or textarea field).
At the date field, you can also specify a start and end date and enter dates that should not be selectable. Furthermore, the calendar can also be displayed permanently open or you can display 2 months side by side. The comment, the date field and the free inputs can also be displayed above the salutation if necessary.
Using the option "determine available, selectable data also from the requests" of the date field, it is possible that a period that has already been requested and confirmed by the shop owner can no longer be selected at the date field or calendar at the selected product, category or landing page, where the form was placed via a shopping experience, and is therefore blocked. So you have a kind of "booking calendar" that you could use for rentals, for example. It can also be specified within the extension configuration that a request does not have to be confirmed separately so that a period is blocked immediately.
If required, the required fields information can also be hidden and the text of the submit button can also be customized.
With the option "manually set the origin of the request based on the form" it is also possible that the same request form can be placed on different pages in the shop and the selected and confirmed periods are automatically deactivated on all pages. In this case, you specify values for "origin", "origin value" and "individual origin id" in the form. In addition, this function also makes it possible to place several different request forms on the same page, for example on an overview page.
Among other things, the title, an introductory text and a confirmation text can be specified for the form. Furthermore the form can either be sent by email to one or more email addresses or the requester and / or the data entered can be saved in the database.
Via the new menu item "requests" under "customer" you can manage the incoming requests and confirm a period request from a customer so that the requested date can not be longer selected in the date field on the respective page, i.e. in the category, on the landing page or at the product where the form was placed via a shopping experience. You can also specify within the extension configuration that the confirmed status of the requests should be ignored so that the requested data is already automatically deactivated.
Requests can also be added manually via the administration module.
By hiding selected fields, the form can also only be used for general requests, for example without a date selection, so that it can be used as a normal contact form.
The available snippets for customizing are:
- tmms.periodRequestForm.salutation.label: the default value of the label of the salutation
- tmms.periodRequestForm.salutation.placeholder: the default value of the placeholder of the salutation
- tmms.periodRequestForm.firstname.label: the default value of the label of the first name
- tmms.periodRequestForm.firstname.placeholder: the default value of the placeholder of the first name
- tmms.periodRequestForm.lastname.label: the default value of the label of the last name
- tmms.periodRequestForm.lastname.placeholder: the default value of the placeholder of the last name
- tmms.periodRequestForm.street.label: the default value of the label of the street address
- tmms.periodRequestForm.street.placeholder: the default value of the placeholder of the street address
- tmms.periodRequestForm.zipcode.label: the default value of the label of the postal code
- tmms.periodRequestForm.zipcode.placeholder: the default value of the placeholder of the postal code
- tmms.periodRequestForm.city.label: the default value of the label of the city
- tmms.periodRequestForm.city.placeholder: the default value of the placeholder of the city
- tmms.periodRequestForm.country.label: the default value of the label of the country
- tmms.periodRequestForm.country.placeholder: the default value of the placeholder of the country
- tmms.periodRequestForm.email.label: the default value of the label of the email address
- tmms.periodRequestForm.email.placeholder: the default value of the placeholder of the email address
- tmms.periodRequestForm.phone.label: the default value of the label of the phone number
- tmms.periodRequestForm.phone.placeholder: the default value of the placeholder of the phone number
- tmms.periodRequestForm.comment.label: the default value of the label of the comment
- tmms.periodRequestForm.comment.placeholder: the default value of the placeholder of the comment
- tmms.periodRequestForm.date.dateLabel: the default value of the label of the period
- tmms.periodRequestForm.date.datePlaceholder: the default value of the placeholder of the period
- tmms.periodRequestForm.date.dateRequiredErrorMessageLabel: the default value of the error message if the date field is required
- tmms.periodRequestForm.date.dateFormat: the default value of the date format of the calendar
- tmms.periodRequestForm.date.showWeeksNumbers: the default value for displaying the calendar weeks in the calendar
- tmms.periodRequestForm.freeinput.label: the default value of the label of the free input
- tmms.periodRequestForm.freeinput.placeholder: the default value of the placeholder of the free input
- tmms.periodRequestForm.freeinput.placeholderActionInput: the default value of the enter-placeholder of the free input
- tmms.periodRequestForm.freeinput.placeholderActionSelect: the default value of the select-placeholder of the free input
- tmms.periodRequestForm.origin.productLabel: the default value of the origin of the product
- tmms.periodRequestForm.origin.navigationLabel: the default value of the origin of the category
- tmms.periodRequestForm.origin.landingpageLabel: the default value of the origin of the landing page
- tmms.periodRequestForm.submitLabel: the default value of the send button
- tmms.periodRequestForm.inputMaxLength: the default value of the maxlength attribute for single-line input fields
- tmms.periodRequestForm.textareaMaxLength: the default value of the maxlength attribute for multi-line input fields
- tmms.periodRequestForm.textareaNumberRows: the default value of the number of rows for multi-line input fields
- tmms.periodRequestForm.confirmationText: the default value of the confirmation text after successfully submitting the form
- tmms.periodRequestForm.errorText: the default value of the confirmation text after unsuccessful submission of the form
The available variables to customize the email template "request form" are:
- periodRequestFormData.formTitle: title of the form
- periodRequestFormData.origin: the content of the field origin
- periodRequestFormData.originId: the internal id of the origin
- periodRequestFormData.originName: the content of the field origin name
- periodRequestFormData.salutation: the content of the field salutation
- periodRequestFormData.firstname: the content of the field first name
- periodRequestFormData.lastname: the content of the field last name
- periodRequestFormData.street: the content of the field street and house number
- periodRequestFormData.zipcode: the content of the field postal code
- periodRequestFormData.city: the content of the field city
- periodRequestFormData.country: the content of the field country
- periodRequestFormData.email: the content of the field email
- periodRequestFormData.phone: the content of the field phone
- periodRequestFormData.comment: the content of the field comment
- periodRequestFormData.date: the content of the field period
- periodRequestFormData.freeInputLabel: the content of the field for the label of the first free input
- periodRequestFormData.freeInput: the content of the field first free input
- periodRequestFormData.freeInput2Label: the content of the field for the label of the second free input
- periodRequestFormData.freeInput2: the content of the field second free input
- periodRequestFormData.freeInput3Label: the content of the field for the label of the third free input
- periodRequestFormData.freeInput3: the content of the field third free input
- periodRequestFormData.freeInput4Label: the content of the field for the label of the fourth free input
- periodRequestFormData.freeInput4: the content of the field fourth free input
- periodRequestFormData.freeInput5Label: the content of the field for the label of the fifth free input
- periodRequestFormData.freeInput5: the content of the field fifth free input
- periodRequestFormData.freeInput6Label: the content of the field for the label of the sixth free input
- periodRequestFormData.freeInput6: the content of the field sixth free input
- periodRequestFormData.freeInput7Label: the content of the field for the label of the seventh free input
- periodRequestFormData.freeInput7: the content of the field seventh free input
- periodRequestFormData.freeInput8Label: the content of the field for the label of the eighth free input
- periodRequestFormData.freeInput8: the content of the field eighth free input
- periodRequestFormData.freeInput9Label: the content of the field for the label of the ninth free input
- periodRequestFormData.freeInput9: the content of the field ninth free input
- periodRequestFormData.freeInput10Label: the content of the field for the label of the tenth free input
- periodRequestFormData.freeInput10: the content of the field tenth free input
Details
- Available: English, German
- Latest update: 9 September 2025
- Publication date: 11 January 2022
- Version: 1.3.1
- Category: Shopping Experiences
Resources
Reviews (18)
Average rating of 4.8 out of 5 stars
echter Mehrwert, gut programmiert und toller Support
Average rating of 5 out of 5 stars
Top Support für ein kostenloses Plugin!
Average rating of 5 out of 5 stars
Sehr flexibel, aber leicht zu konfigurieren
Average rating of 5 out of 5 stars
Vielen Dank ...
Average rating of 5 out of 5 stars
Top Support
Average rating of 5 out of 5 stars
Bis dahin Grüße mit der Brille in Magenta ;))
Einfach Klasse
Average rating of 5 out of 5 stars
Tolles Plugin
Average rating of 5 out of 5 stars
Super
Average rating of 5 out of 5 stars
Vielen Dank für die tolle Erweiterung zur komplexeren Kontaktanfrage innerhalb von Shopware.
Average rating of 5 out of 5 stars
Großartiges Formular
Average rating of 5 out of 5 stars
Vielen Dank für dieses großartige Formular.
About the Extension Partner

Deutsche Telekom MMS GmbH
Partner Status
-
Shopware
Gold Partner -
Shopware
Extension Partner
Details
-
Ø-Rating:
4.9
Average rating of 4.9 out of 5 stars
- Partner since: 2021
- Extensions: 5
- Certifications: Certifications
Support
- Based in: Germany
- Speaks: German, English
- Response time: Very quickly
- Download the app from the store
- Log in into your Shopware 6 administration area and navigate to extensions -> my extensions
- Click on the right side on "Upload extension" and select the downloaded extension
- Use the menu on the right side of the extension to install and configurate the extension and the switch button on the left side to activate it
To display the form in a modal, the form must be placed in a new, empty layout. The ID of the layout, for example "01910068b8d67c32946fbe9f413e55dc", must then be inserted into the data-url attribute in the link to the modal box. The link must also have at least the CSS class "period-request-form-modal-btn". The link then has the following structure: < a class = "btn btn-primary link-light period-request-form-modal-btn mb-4" data-ajax-modal="true" data-url="/widgets/cms/01910068b8d67c32946fbe9f413e55dc" title="Question to the article?" data-origin="product" data-origin-name="{{ page.metaInformation.metaTitle }}" data-origin-id="{{ page.product.id }}" >Question to the article?< /a > .In order for the Twig variables to be evaluated, the link must either be placed in a Twig template in your own theme or inserted into a CMS element that supports Twig compilation (such as: https://store.shopware.com/en/moorl29420842994f/html-shopping-worlds-element-with-twig-compiler.html )
If the form has been placed multiple times on the page, the attribute data-form-element-id="0191d5fbb06477478fd743f87289613a" must also be added to the link, where "0191d5fbb06477478fd743f87289613a" stands for the ID of the CMS element, which can be found after clicking on the CMS element and using the browser function "Inspect" on the title of the form in the id attribute above the div element with the css class "sw-cms-el-period-request-form".
In the case that the email is no longer sent, which can be activated in the tab "Sending the data by email" via the switch "Sending the data by email to one or more recipients " and the entry of an email address under "mail receivers (separated by commas)", you should first switch to "Settings", "Shop", "Email templates" and "request form" and using the arrow button on the right-hand side to check whether a test mail can be sent. You should also check the correctness of the specified mailing settings under "Settings", "System" and "Mailer". If everything has been configured correctly, it is advisable to try a different recipient email address (preferably with a different domain).
- %id%
- %salutation%
- %firstname%
- %lastname%
- %street%
- %zipcode%
- %city%
- %country%
- %email%
- %phone%
- %comment%
- %date%
- %labelDate%
- %freeInputLabel%
- %freeInput%
- %freeInput2Label%
- %freeInput2%
- %freeInput3Label%
- %freeInput3%
- %freeInput4Label%
- %freeInput4%
- %freeInput5Label%
- %freeInput5%
- %freeInput6Label%
- %freeInput6%
- %freeInput7Label%
- %freeInput7%
- %freeInput8Label%
- %freeInput8%
- %freeInput9Label%
- %freeInput9%
- %freeInput10Label%
- %freeInput10%
- %origin%
- %originId%
- %originName%
If the app has already been installed and the app data was not deleted when uninstalling the app, the email template "request form" and the database table "periodrequestform" must be deleted first.
1.3.1
Fixed the problem where forms with required fields could be submitted without any input.
1.2.6
1.3.0
1.2.5
1.2.4
1.2.3
The origin, the origin value and the origin id are now also transferred to the hidden fields of the form if the form is displayed in a modal and the link to the modal has the CSS class period-request-form-modal-btn and the attributes data-origin, data-origin-name and data-origin-id with the corresponding values.
1.2.2
The confirmation text after successfully submitting the form is no longer maintained in the configuration of the form, but in the snippet with the name "tmms.periodRequestForm.confirmationText", where all entered data of the form is available.
The required field check of the date field has been improved.
The form is now sent directly via the form ajax submit function from Shopware 6.
1.2.1
1.2.0
1.1.7
1.1.6
1.1.5
1.1.4
You can now set the label of the period or date selection field.
1.1.3
minor bug fixes for shopware 6.5
1.1.2
Fixed the problem that the captcha "Google reCAPTCHA v3" was no longer loaded under Shopware 6.5.
1.1.1
1.1.0
Established the compatibility with Shopware from version 6.5.0.0.
You can now determine whether the data protection information should be shown.
You can now determine whether the data protection information is to be treated as a required field and a checkbox field should be shown.
You can now determine whether the required fields information should be shown.
You can now set the text of the submit button.
It is now also possible to have several captcha methods active at the same time.
1.0.12
The field "confirmation text" in the configuration of the CMS element is now also provided as a TinyMCE field, so that its content is delivered as HTML code in the frontend.
1.0.11
When data is sent by email, the customer email is now set as the reply address (Reply-To) for the recipients.
1.0.10
1.0.9
You can now determine whether the period request form text should be shown after the successful submission of the form.
You can now set and show up to 4 free inputs.
1.0.8
The field type of the comment field and the free input field has been changed to LONGTEXT so that both fields can hold more characters.
All single-line and multi-line input fields now have the maxlength attribute.
1.0.7
established the compatibility with Shopware from version 6.4.14.0
1.0.6
The annotations of the controller have been replaced with Route defaults.
1.0.5
the captcha "Google reCAPTCHA v3", which is triggered when the privacy checkbox is clicked, is now possible at the request form.
1.0.4
You can now also send the email to several email receivers, which are separated by commas.
You can now also send the email to the requester.
1.0.3
established the compatibility with Shopware from version 6.4.10.0
1.0.2
You can now select the type of the free input, for example "select field", "input field" or "textarea field".
You can now also manually set the origin, the origin value and the origin id of the request in the form if necessary.
The code specifically for the validation of the captcha "basic captcha" has been optimized.
1.0.1
The captcha "basic captcha" is now possible at the request form
1.0.0
Initial release of the app