Shop: Legal requirements
1. Adjustments regarding the German Accessibility Improvement Act (BFSG)
Since 25 June 2025, the German Accessibility Improvement Act (BFSG) has come into effect. This serves to realise the European Accessibility Act in Germany.
This act brings with it a number of requirements for online sellers with regard to the design of their shops.
Online shops must be designed in such a way that they can also be used by people with visual, motor, or auditory impairments.
The following chapters provide an overview of the measures you need to implement for your shop so that it meets the upcoming requirements.
1.1. Conditions
Who is affected by this law?
The BFSG currently only applies to the B2C sector. The requirements of the BFSG do not apply to B2B shops. It should be noted that the B2B shop must be clearly designed and designated as such. However, if consumers have the option of using the service, it is an e-commerce service to consumers and the BFSG applies.
Who is not affected by this law?
Micro-enterprises (i.e. companies with fewer than ten employees and an annual turnover or annual balance sheet total of no more than EUR 2 million that offer or provide services) are not covered by the BFSG in accordance with Section 3 (3) BFSG.
Disclaimer:
The information provided does not constitute legal advice and is no substitute for individual legal advice from a suitably qualified professional. All content is for general information purposes only. No liability is assumed for the accuracy, completeness and topicality of the content. If you have specific legal questions or concerns, contact a licensed lawyer.
1.2. WAVE Accessibility Plugin
To check whether your shop has potential for improving accessibility, we recommend using the WAVE Web Accessibility Evaluation Tool. You can install WAVE as a browser extension and use it to check whether alternative texts are missing from images or whether text is difficult to read due to a lack of contrast with the background.
1.3. High contrast colours
In order to provide users who are visually impaired with a fully functional shopping experience in you shop, it is necessary for text and background colours to have a high contrast ratio.
The EU Accessibility Act is based on the recommendations of the Web Content Accessibility Guidelines.
To meet the requirements of the German Accessibility Improvement Act, texts and background colours should have a contrast ratio of at least 4.5:1. For larger text and embedded graphics, a contrast ratio of 3:1 is sufficient.
To check the contrast ratios of the colours you use in your shop, you can use external tools such as WebAim. Enter a hexadecimal code for your text colour in the left Foreground field and a hexadecimal code for your background colour in the Background field to the right. The contrast ratio (Contrast Ratio) is then displayed below.
In the area below, you can see analyses of the WCAG (Web Content Accessibility Guidelines) grade your contrast ratio would receive: AA is sufficient to meet the requirements of the BFSG; AAA exceeds these requirements.
1.4. Alternative texts
In order to make the visual content of your shop usable for people with visual impairments via tools such as screen readers, the German Accessibility Improvement Act requires that you provide images in your shop with alternative texts. These texts should be short and concise and not be longer than 80 to 100 characters.
You have to maintain alternative texts in two different places for your shop: For item images in the new Item UI and for static content, such as banners or logos, in the File Manager. There are 3 different methods available for adding alternative texts for item images: manually, item import or via API.
Adding alternative texts to item images:
-
Go to Item » Items.
-
Open the item for which you want to create alternative text.
-
Click Images in the side navigation to expand the image settings.
-
Click Translations.
-
Select a Language from the drop-down list.
-
Enter the text you want to use as alternative text in the Alternative text input field.
-
Repeat this process for other images of this item or for other languages.
-
Click Save (save).
You can also use the item import to avoid manually adding an alternative text to each image.
Proceed as follows to add alternative texts to images that are not item images:
Adding alternative texts for images in the file manager:
-
Go to Shop » File manager.
-
In the list of files, click on the image file for which you want to store an alternative text.
→ A preview image opens on the right-hand side. -
Enter the text you want to use as alternative text for this image in the Alternative text input field below the preview image.
-
Click Save (save).
Every PlentyONE system comes with a dedicated File Manager that allows you to store files online in your system. Additionally, all files stored in a File Manager receive a File URL which can be used to make each file available to other users and applications online. You can manage the File Manager of your system in the Shop » File Manager menu.
WARNING: Usage of the File Manager may incur additional costs. The exact terms of use of the File Manager are outlined in your contract with PlentyONE.
1.4.1. Adding alternative texts for item images via API
To handle a large amount of alternative texts, you can use the API to set the image names and alternative texts.
The route for this is:
/rest/items/{id}/images/{imageId}/names
{
"imageId": 1000,
"lang": "en",
"name": "Image name",
"alternate": "Alternative text"
}
1.5. Accessibility statement
As part of the new BFSG requirements, a static page will be added to the shop to display the Accessibility Statement.
The accessibility statement contains comprehensive and accessible information about which content on the website is accessible and which is not yet accessible.
It also contains contact details so that users know who to contact if they encounter barriers that have not been idetnified and labelled.
A new entry will be created for the shop in the Setup » Shop » [Select client] » Legal menu.
Adding the accessibility statement:
-
Go to Setup » Shop » [Select client] » Legal.
-
Expand the Accessibility statement section.
-
Enter the text of your accessibility statement.
-
If you want to enter your accessibility statement as HTML instead, make sure that HTML is selected as Output type above and that the code (code view) is activated in the editor.
-
Click Save (save).
1.5.1. Creating a page for plentyShop LTS
If you use a plentyShop LTS, you will need to create a separate ShopBuilder page to display the accessibility statement. Proceed as follows:
Creating a ShopBuilder page for the accessibility statement:
-
Go to Shop » ShopBuilder.
-
Click New main category.
-
In the general settings, select the type Content.
-
Enter a name for the category.
-
Click Save (save).
-
In the navigation on the left-hand side, click Global settings.
-
Click in the input field Category for /declaration-of-accessibility.
-
Select the newly created category and click Select.
-
Click Save (save).
-
In the navigation on the left-hand side, click Categories.
-
Open the newly created category.
-
Click Add content.
-
Select the type Content.
-
Enter a name for the content.
-
Select the template Accessibility statement (plentyShop LTS).
-
Activate the content by activating the toggle in the Active column.
The template Accessibility statement contains a widget which shows the text that you saved in the Setup » Shop » [Select client] » Legal menu. You can customise the content in ShopBuilder to suit your needs.
1.6. Third party themes
If you are using a third-party theme, the adherence to the German Accessibility Improvement Act is the responsibility of the respective provider.
Contact your theme provider if you have any questions about the accessibility of your theme.
1.7. Implemented accessibility improvements
In addition to the aspects detailed above, further accessibility improvements have already been implemented for the shop:
-
The shop can be fully operated via keyboard inputs.
-
Input fields for users are labelled so that screen readers can recognise them.
-
Shop uses ARIA-Labels to improve accessibility.
2. Electronic withdrawal function for distance contracts
| This chapter is currently being revised and will be expanded continuously over the next few days. |
On 19 June 2026, the amendment to section 356a of the German Civil Code (BGB) (German only) comes into force. This legislative amendment implements EU Directive 2023/2673 (Consumer Rights Directive) into German law.
The directive modernises consumer protection for distance contracts. It obliges online sellers and providers of financial services to offer an easily accessible electronic withdrawal function (withdrawal button) to make it easier for consumers to withdraw from online contracts.
The following chapters provide an overview of the measures you need to implement for your shop so that it meets the upcoming requirements.
2.1. Conditions
Who is affected by this law?
The law applies to online shops in the B2C sector, provided that:
-
the contract is concluded with consumers via an online user interface (e.g. website or app)
-
the goods or services offered are subject to a statutory right of withdrawal
-
German law applies to the contract
Important: The regulations also apply to micro-enterprises.
Who is not affected by this law?
Pure B2B shops and providers of products that are exempt from the statutory right of withdrawal (e.g. custom-made products or perishable food) are not affected. Distance contracts concluded by telephone, email exchange, order form or fax are also excluded.
Disclaimer:
The information provided does not constitute legal advice and is no substitute for individual legal advice from a suitably qualified professional. All content is for general information purposes only. No liability is assumed for the accuracy, completeness and topicality of the content. If you have specific legal questions or concerns, contact a licensed lawyer.
2.2. Withdrawal function
The law requires a two-step process for the electronic withdrawal function in order to prevent withdrawal declarations from being submitted accidentally.
-
Step 1: Electronic withdrawal function
-
Throughout the entire withdrawal period, a clearly legible, prominently placed and easily accessible button or link must be provided, for example in the header or footer of the shop.
-
The withdrawal function must be labelled “withdraw from contract here” or with another equally unambiguous wording.
-
-
Step 2: Confirmation function
-
After clicking the withdrawal function, consumers must be taken to a page where they can submit a withdrawal declaration to the trader.
-
Consumers should be able to provide the following information:
-
Consumer’s name
-
Information for identifying the contract (e.g. order number)
-
Preferred communication method for the confirmation of receipt (e.g. email address)
-
-
The withdrawal declaration and the information provided must be submitted via a confirmation function.
-
The confirmation function must also be clearly legible and labelled “confirm withdrawal” or with another equally unambiguous wording.
-
-
Confirmation of receipt
-
Consumers must immediately receive a confirmation of receipt on a durable medium (e.g. by email).
-
The confirmation of receipt must include the content as well as the date and time of the withdrawal declaration.
-
|
Review and update your legal texts
With the implementation of the electronic withdrawal function (in accordance with Section 356a German Civil Code (BGB)), you must update the withdrawal policy on your website. In addition, review your privacy policy and update it if necessary. |
2.3. Adding the withdrawal function to the shop (PWA)
If you use the shop (PWA), first install the latest shop version (at least version 2.29.0) and redeploy the plugin set and your content. Then carry out the following steps:
-
Set up Cloudflare Turnstile to protect the withdrawal form against misuse.
-
Provide the withdrawal button.
Note: This step is only required if you are not already using your own withdrawal button in your shop. From shop version 2.29.0 onwards, a withdrawal button is already included in the standard footer. -
Enter the email address for receiving withdrawal declarations.
-
Optional: Adjust the withdrawal form.
-
Set up the email template for the automatic confirmation of receipt.
-
Set up the automatic email dispatch for the confirmation of receipt.
2.3.1. Providing the withdrawal button
Only carry out this step if you are not already using a withdrawal button in your shop.
If you use the standard footer from shop version 2.29.0 onwards, the withdrawal button is already included. In this case, continue with entering the email address for receiving withdrawal declarations.
If you use a custom footer or want to add the withdrawal button yourself, proceed as follows.
|
The following instructions refer to shop version 2.30.0. In this version, the shop editor has been revised. If you use an older shop version, some menu items, settings or elements may be located elsewhere. |
Providing the withdrawal button:
-
Go to Shop » Shop Management.
-
Click design_services Open editor in the line of the shop you want to edit.
Important: You can only open the editor if the preview mode is activated. To activate the preview mode, click play_circle Activate preview mode in the shop line.
→ The editor opens in a new tab. -
Navigate to the footer of your page.
-
Hover over the footer block and click the pencil button edit.
→ The footer settings open. -
Click add Add Element.
→ The Add block window opens. -
Click Content.
-
Click Rich Text.
→ The settings for the text block open. -
In the BUTTON section, enter a clear label for the withdrawal button in the Label input field, e.g. Withdraw from contract here.
-
In the Link target input field, enter the path
/cancellation-form.
Important: Only use the path/cancellation-form, as the withdrawal form is accessed via this path. -
Optional: Adjust additional settings in the TEXT section or remove the placeholder text, for example.
-
Close (close) the settings for the text block.
-
Optional: Click remove_red_eye Preview to review your settings in the preview.
-
Save (save) the settings.
2.3.2. Adding the email address for receiving withdrawal declarations
Now enter the email address for receiving withdrawal declarations.
Adding the email address for receiving withdrawal declarations:
-
Go to Shop » Shop Management.
-
Click design_services Open editor in the line of the shop you want to edit.
Important: You can only open the editor if the preview mode is activated. To activate the preview mode, click play_circle Activate preview mode in the shop line.
→ The editor opens in a new tab. -
Click settings General settings in the toolbar on the left.
-
Click Contact Form.
-
Click Cancellation Form.
→ The settings for the withdrawal form are expanded. -
Under Cancellation Form Email, enter the email address to which you want to receive the withdrawal declarations.
-
Save (save) the settings.
2.3.3. Optional: Adjusting the withdrawal form
After clicking the withdrawal button in the footer, you should now be redirected to the withdrawal form page (path /cancellation-form at the end of your shop URL).
Check the following:
-
Is the email address for receiving withdrawal declarations entered?
-
Is Cloudflare Turnstile set up correctly?
You can add text above the form, adjust the displayed text or remove it.
Editing the text above the withdrawal form:
-
Go to Setup » Shop » [Select client] » Legal.
-
Click Cancellation form.
→ The free text input field is expanded. -
Enter the desired text or adjust the existing text.
-
Save (save) the settings.
| After setting up the withdrawal function, now set up the legally required confirmation of receipt. |
2.4. Adding the withdrawal function to plentyShop LTS
If you use plentyShop LTS, first install the latest version of plentyShop LTS (at least version 5.0.81) and redeploy the plugin set and your content.
|
Third party themes
If you are using a third-party theme, the theme provider may have to make adjustments to ensure the withdrawal function works correctly in your shop. Contact your theme provider if you have any questions about the withdrawal function in your shop. Adjustments are necessary if the following files are overwritten by the theme: |
2.4.1. Setting up a category for the withdrawal form page
If you are not already using the withdrawal form, first set up a category for the withdrawal form page. If you are already using the withdrawal form, continue with adjusting the withdrawal form page.
Setting up a category for the withdrawal form page:
-
Go to Shop » ShopBuilder.
→ The content manager view of the ShopBuilder opens. -
Click add NEW MAIN CATEGORY at the bottom of the category tree.
→ The Create new category window opens. -
Select the type Content.
-
Activate the category for the desired client.
-
Enter Withdrawal form as the name.
-
Enter withdrawal-form as the URL name.
-
Save (save) the settings.
Now link the category to the route for the withdrawal form.
Linking the category to the withdrawal form route:
-
Go to Shop » ShopBuilder » Tab: Global settings.
→ The interface for linking categories opens. -
Navigate to the Category for cancellation form.
-
Click in the category input field and select Withdrawal form.
-
Click Select (check) at the lower end of the category selection.
→ The category picker collapses. -
Save (save) the settings.
2.4.2. Adjusting the withdrawal form page
Now adjust the withdrawal form page. Consumers must be able to enter all required information on this page and submit the withdrawal declaration via the confirmation function.
You have two options for the withdrawal form page:
-
Option 1: Using the existing withdrawal form preset (recommended)
-
Option 2: Creating the withdrawal form yourself
2.4.2.1. Option 1: Using the withdrawal form preset (recommended)
The withdrawal form preset already contains all required widgets and settings for the form fields and confirmation function. Add the preset as content to your withdrawal form category and enter the email address for receiving withdrawal declarations.
Using and adjusting the withdrawal form preset:
-
Go to Shop » ShopBuilder.
→ The content manager view of the ShopBuilder opens. -
In the category tree, click the category for your withdrawal form.
-
Click add ADD CONTENT.
→ The content type selection opens. -
Select the content type Content.
→ The Create new Content content window opens. -
Enter a name for the content.
-
Select the preset Cancellation form (plentyShop LTS).
-
Click CREATE.
→ The newly created content is displayed in the overview. -
Click on the newly created content.
→ The editor view of the ShopBuilder opens. -
Next to the note Check settings: No recipient has been stored for this form., click Settings (settings).
Note: If the note is not displayed, click Settings (settings) in the widget containing the form fields instead.
→ The settings for the Email form widget open. -
Under Recipient email address, enter the email address to which you want to receive the withdrawal declarations.
-
Make sure that the option Contract Withdrawal Form is selected under Form type.
-
Save (save) the settings.
To display your content in the plentyShop, you must then activate it.
2.4.2.2. Option 2: Creating the withdrawal form yourself
|
We recommend using the withdrawal form preset. |
If you do not want to use the withdrawal form preset, you can create the form yourself. To do so, use the Email form widget and add the required form fields within this widget.
Important: Only use the form fields and identifiers listed here. To ensure the withdrawal declaration can be processed correctly, the identifiers must be used exactly as specified. Additional form fields are not supported.
First, create a content for the withdrawal form category.
Creating a content for the withdrawal form:
-
Go to Shop » ShopBuilder.
→ The content manager view of the ShopBuilder opens. -
In the category tree, click the category for your withdrawal form.
-
Click add ADD CONTENT.
→ The content type selection opens. -
Select the content type Content.
→ The Create new Content content window opens. -
Enter a name for the content.
-
Click CREATE.
→ The newly created content is displayed in the overview. -
Click on the newly created content.
→ The editor view of the ShopBuilder opens. -
Select a theme for the content and click Load and edit content.
→ The content and the available widgets are loaded.
Next, add the Email form widget.
Setting up the Email form:
-
Click Form in the widget selection on the left.
-
Drag and drop the Email form widget to the desired position on the page.
-
Click Settings (settings) in the inserted email form.
→ The widget settings open. -
Under Button label, enter a clear label, for example Confirm withdrawal.
-
Under Recipient email address, enter the email address to which you want to receive the withdrawal declarations.
-
Under Form type, select the option Contract Withdrawal Form.
-
Click Save (save).
Next, add the required form fields within the Email form widget. Follow the same procedure for each form field. The table below shows the required widgets, identifiers and mandatory field settings.
| Field | Widget | Identifier | Mandatory field |
|---|---|---|---|
Full name |
Text input (single line) |
name |
Yes |
Order number |
Text input (single line) |
order |
Yes |
Contact email |
Email input |
Yes |
|
Withdrawal reason (optional) |
Text input (multiple lines) |
reason |
No |
Adding form fields:
-
To add a field for entering a full name, drag and drop the Text field (single line) widget into the Email form section.
-
Click Settings (settings) in the inserted text field.
→ The widget settings open. -
Carry out the following settings:
-
Enter name as the Identifier in the email template (optional).
-
Enter a clear Label, for example Full name.
-
Activate (check_box) the option Mandatory field.
-
-
Click Close settings (close).
-
Add the remaining form fields according to the table, using the specified widgets and identifiers. Also activate the Mandatory field option for the Order number and Contact email fields. The Withdrawal reason field is not a mandatory field.
-
Optional: Adjust additional texts and content on the page as needed.
-
Click Save (save).
→ The settings are saved.
To display your content in the plentyShop, you must then activate it.
2.4.3. Providing the withdrawal button
Next, provide the withdrawal button in the footer of your plentyShop. Two options are available for this purpose:
-
Option 1: Activating the withdrawal form options in the Legal information widget
-
Option 2: Adding your own text link in the footer and designing it yourself in accordance with the legal requirements
2.4.3.1. Option 1: Activating the withdrawal form options in the Legal information widget
The Legal information widget provides a list with links to your legal information, which you can display in the footer of your online shop. If you use this widget and do not want to design and position the withdrawal button yourself, you can activate the link to the withdrawal form in the widget settings and display it as a button.
Activating the withdrawal form options in the Legal information widget:
-
Go to Shop » ShopBuilder.
→ The content manager view of the ShopBuilder opens. -
In the category tree, click the category for your withdrawal form.
-
Click the content for the withdrawal form.
→ The editor view of the ShopBuilder opens. -
Click Settings (settings) in the Legal Information widget in the footer.
→ The widget settings open. -
Activate (check_box) the following options in the Cancellation form section:
-
Show cancellation form
-
Style link as button (recommended)
-
-
Save (save) the settings.
| After setting up the withdrawal function, now set up the legally required confirmation of receipt. |
2.5. Setting up the confirmation of receipt (shop and plentyShop LTS)
The following steps apply to both shop (PWA) and plentyShop LTS.
2.5.1. Setting up the email template for the confirmation of receipt
Next, set up the email template for the confirmation of receipt. The confirmation of receipt must include the content as well as the date and time of the withdrawal declaration.
You have two options for creating the email template:
-
Option 1: Using the existing email template for the confirmation of receipt (recommended)
-
Option 2: Creating the email template yourself
2.5.1.1. Option 1: Using the template for the confirmation of receipt (recommended)
For the confirmation of receipt, you can use the new default template Bestätigung des Vertragswiderrufs (confirmation of contract withdrawal). You can retrieve the template in the EmailBuilder and adjust the content for your shop.
Using and adjusting the email template for the confirmation of receipt:
-
Go to CRM » EmailBuilder.
-
In the bottom left, click add Add.
-
Click swap_horizontal_circle Create all default templates again.
→ The standard templates are recreated and updated. -
Open the folder Neue Vorlagen (new templates).
-
Click the template Bestätigung des Vertragswiderrufs (confirmation of contract withdrawal).
→ The template opens. -
In the Content and subject section, click Edit (edit).
-
Carry out the desired adjustments.
Note: For more information on editing email templates and a description of the available functions and widgets, refer to the EmailBuilder page. -
Save (save) the settings.
2.5.2. Setting up the automatic email dispatch
Finally, set up the automatic email dispatch for the confirmation of receipt so that your customers receive the legally required confirmation that their withdrawal declaration has been received.
Setting up the automatic email despatch:
-
Go to Setup » Client » Settings » Email accounts.
-
Click the email account that you want to use for sending confirmations of receipt.
-
In the Automatic dispatch section, select the email template that you have set up for the confirmation of receipt (e.g. Bestätigung des Vertragswiderrufs) from the drop-down list Send the customer a confirmation of receipt of the contract withdrawal.
-
Save (save) the settings.