28/10/21: Added Safe your app ide and get a preview in the store
06/08/21: Added Useful links and tutorials for creating an app
08/06/21: Added URL and infos rearding our docker envirnoment we use for testing SW6 apps.
07/06/21: Template Tests: Now using Scheme.org Structured Data Testing Tool. instead of Google Structered Testing Tool.
07/06/21: Account app description: Subprocesseor and/or Further subprocessors informations maybe required four your app.
17/04/21: Restructure of the quality guidelines. No new content added.
12/05/20: Add app Checklist for your Quality assurance.
22/04/20: Menu entries in the main menu of the administration are not allowed anymore because of Look & Feel.
You already have an idea and don't want it to be snatched away? Then make sure you get it by creating a preview in your account. You can apply for this if you have maintained images, description and release month without uploading anything already.
Please note that this checklist may be edited at any time. Be sure you are using the most recent testing checklist from Shopware, and not from any other provider. We also ask that you pay attention to every single point in the Quality Guide for apps based on the app system these will be reviewed by us in order to release your app.
It's always a good idea to review the process of how we conduct tests prior to submitting your app for review - this ensures the quickest way for your app to be published.
Start Testing: If successfull we test the app once again with the most current Shopware version. The Shopware installation is located in a subfolder and has a language subshop with a virtual URL as well as an independent subsshop with its own URL, which is also located in a subfolder. E.g. myshop.com/subfolder/backend oder myshop.com/pulic/admin.
The app must not produce any error messages - neither in the backend nor in the frontend.
The app is tested with the latest official Shopware 6 CE Version.
Our testing environment are built of following components: Nginx Webserver, PHP 7.4 as FPM, MariaDB latest, Shopware installed in Subfolder /shop/public, Default Shopware Language Netherland.
The environment is built using Docker and is published on Docker Hub. You can use the following command to run it on your system:
docker run --rm -p 80:80 -e VIRTUAL_HOST=localhost shopware/testenv:6.4.0
The shop will be accessible at http://localhost/shop/public
Admin-User and Admin-Password: demo
Note: We always test with the actual SW6 version. So set 6.x.x. in docker run --rm -p 80:80 -e VIRTUAL_HOST=localhost shopware/testenv:6.x.x always to the actual SW6 version. E.g. shopware/testenv:6.4.1.
When start testing we always test with the app`s highest supported shopware version.
Progressive Web App: If your app is PWA compatible and you would like the PWA flag, please contact us at firstname.lastname@example.org.
Base guide: https://developer.shopware.com/docs/guides/plugins/apps/app-base-guide
Note: iframes, external scripts or tracking pixels are not allowed in the source code of the descriptions, profiles, and instructions. Custom styles may not overwrite the original Shopware styles. External sources must be included via https.
Short description: Min. 150 - max. 185 characters.
Description: Min. 200 characters.
Inline styles will be stripped.The following HTML tags are allowed:
<a> <p> <br> <b> <strong> <i> <ul> <ol> <li> <h2> <h3> <h4> <h5>
In addition, you should include descriptive images that represent the app functionality. Show the app "in action" in both the storefront and admin.
Note: You are no longer able to advertise your Shopware certificates within the app description, in your app images, or in your manufacturer profile. The manufacturer/partner certificates are dynamically loaded at the end of each app description and published by us.
As an app is to be released in both stores (German and International), the content must be accurately translated 1:1 from/to German/English.
A complete manufacturer profile in German and English is mandatory. The English or German text must be translated 1:1. You can find the manufacturer profile in your account under Shopware Account > Extension Administration > Manufacturer profile.
Please enter the valid license you set in your shopware account. You have to identify this license in the manifest.xml as well.
Note: The choosen license can not be changed after adding your app to your account. If you want to change the licence afterwards, you have to add a new apps based on the app system (with a new technical name) and upload the extension again with the new technical name.
If your app requires other apps to run properly, you have to check that these apps are installed. For example: If your app only works with an activated base app, you have to check the installation of the base app.
The installation is not always in English or German.So make sure that your app works in other languages as well.
An example: The customer has his installation in Spanish, your app is not yet available in this language.
So you should use the English translation as fallback. Our Test-Environment includes Netherland as Standard language.
If your app is available in more than one language (e.g. English and German), these can be defined using the option "Translations into the following languages are available" (located in the “Description & images” section of your Extension management).
You have to upload a valid favicon named plugin.png (png / 40 x 40 px) for the app. This favicon will make it easier to identify your app in the Extension Manager module in the backend. The favicon has to be stored under src/Resources/config/
Error/informational messages can only be recorded in the event-log of Shopware's log folder ( /var/log/ ). You have to develop you own logging-service / app-specific logger. Never write app exceptions into the Shopware-Default-log or outside the Shopware System-Log folder. This ensures that the log file can never be accessed via URL
Avoid 400/500 errors at any time, unless the 400 errors are related to an API call!
The Debug Console controls the reinstallation, uninstallation, installation and deletion of the app. No 400 errors or exceptions are allowed to appear.
Apps may not load other files during and after the installation in the Extension Manager.
If the app creates its own pages that are set to "index,follow" and the URLs are accessible via the frontend, then these "app URLs" must also appear in the sitemap.xml. In addition, these pages must include their own "Meta description" and "Title tag", which can be entered individually via the backend or as a text snippet.
We expect that every cookie set from the store-URL is registered in our Cookie Consent Manager. We differentiate between "Technically required", "Comfort functions" and "Statistics & Tracking". All cookies have to appear in cookie configuration box in the frontend.
Shopping Worlds elements must include an element icon. If the app is deleted, Shopping Worlds should continue to work flawlessly in the frontend.
Menu entries in the main menu of the administration are not allowed because of Look & Feel.
Our most current code review configurations that we use when uploading apps via the Shopware Acccount can be found on GitHub.
There are Cypress tests for 6 on GitHub. The project is driven by the Friends of Shopware group. You can contribute at any time:
The bootstrap cannot be found. Either the folder structure in the ZIP file is incorrect or there is a typo/case sensitive error in the app source (e.g. in the technical name).
Be sure you set cookies as secure. Don`t forget to register your to Cookie to the Coookie Consent Manager.
Not allowed folders and files:
.gitignore,.DS_Store, Thumbs.db, .git, __MACOSX, .zip, .tar, .tar.gz, .phar
You have now read the complete list of requirements for developing and releasing apps based on our app system in the Shopware Community Store.
If your app is a software app/interface with downstream costs, transaction fees, or service fees for the customer, we need to complete a technology partner agreement in order activate your apps.
If you have any questions regarding the technology partner agreement, please contact our sales team by writing an email to email@example.com or calling +44 (0) 203 095 2445 (UK) / 00 800 746 7626 0 (worldwide) / +49 (0) 25 55 / 928 85-0 (Germany).