Quality Guidelines for extensions in the Community Store

Quality Guidelines for Community Store extensions

Changelog

17/04/21: Restructure of the quality guidelines. No new content added.
12/05/20: Add Extension Checklist for your Quality assurance.
22/04/20: SW6: Menu entries in the main menu of the administration are not allowed anymore because of Look & Feel.

Checklist for extension-testing

The way we test extensions

It's always a good idea to review the process of how we conduct tests prior to submitting your extension for review - this ensures the quickest way for your extensions to be published.

First sighting of the extension

Start Testing:: If successfull we test the extension 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 extension must not produce any error messages - neither in the backend nor in the frontend.

SW5: The extension is tested with PHP 7.2, Shopware 5.6.2 CE Version (including the activated and current versions of the Cookie Consent Tool for Shopware > 5.2.11), the Shopware security extension and with the current Shopware version without the security extension.

SW6: The extension is tested with PHP 7.4, the latest official Shopware 6 CE Version.

Template tests

  • Tests with Google's Structured Data Testing Tool: We test categories and product pages (available products, unavailable products, available products plus reviews, and products to be released in future). Testing tools: Google Structured Data Testing Tool and Google Lighthouse

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 store extensions – these will be reviewed by us in order to release your extension.

Every extension:

  1. If using external fonts (e.g. from Google Fonts) or external services, the extension store description must contain this information, and please be aware that you might have to edit your "data protection information". This info could be otherwise placed as a tooltip near to the font settings of the extension configuration.
  2. Extension store description: Mandatory number of characters set in short and long description. No blank spaces as filler are allowed (EN/DE).
  3. Extension store description: Does the description makes sense, and does it include step-by-step instructions on how to use and test your extension?
  4. Extension store description: Did you include enough screenshots showing the extension in action in the storefront AND administration (please add a screenshot of the extension in the Extension Manager settings).
  5. We want to improve the quality in the Shopware Community Store and offer as many different extensions as possible. We check for a functional comparison with other extensions already available in the Shopware Community Store: If there is an extension with exactly the same function, the extension can be rejected if your extension does not provide any added value, such as a function that the other extension does not contain.
  6. We pay attention to the automatic code review and look for security issues.
  7. Cookie check in the browser console: If the extension sets cookies in any way in the checkout, these cookies must be registered to the cookie configuration box in the frontend.
  8. Every external link in the adminstration or storefront must be marked as rel="noopener" AND target="_blank".
  9. We check for styling errors on every viewport.
  10. We check the complete functionality of the extension (including deinstallation & reinstallation procedure)

Theme extensions:

  1. There must be a preview image available in the Theme Manager.
  2. Links must include a title-tag and images must have an alt-tag.
  3. Use Google's Structured Data Testing Tool to check the homepage, categories, and various product detail pages (incl. products with no review, 1 review, 9 reviews with various ratings, out of stock products, or any other kind of product configuration). We check for any new bugs.
  4. We do a Lighthouse Audit to check the performance and quality of your frontend extension. There should not be any drastic change in performance or accessibility values when activating the extension.

Shopping Worlds/Storytelling elements:

  1. Links must include a title-tag and images must have an alt-tag.
  2. We test the frontend and the checkout with the Debug Console – we also pay attention to new JavaScript errors.
  3. Use Google's Structured Data Testing Tool to check the homepage, categories, and various product detail pages (incl. products with no review, 1 review, 9 reviews with various ratings, out of stock products, or any other kind of product configuration). We check for any new bugs.
  4. We do a Lighthouse Audit to check the performance and quality of your frontend extension. There should not be any drastic change in performance or accessibility values when activating the extension.

Frontend extensions:

  1. Links must include a title-tag and images must have an alt-tag.
  2. If you create custom controller URLs in the sales channel, please note that we check for SEO and a valid canonical-tag.
  3. Use Google's Structured Data Testing Tool to check the homepage, categories, and various product detail pages (incl. products with no review, 1 review, 9 reviews with various ratings, out of stock products, or any other kind of product configuration). We check for any new bugs.
  4. We check for new errors throughout the entire storefront using the Browser Debug Console. We also pay attention to new JavaScript errors.
  5. We do a Lighthouse Audit to check the performance and quality of your frontend extension. There should not be any drastic change in performance or accessibility values when activating the extension.

Backend extensions

  1. We check the complete functionality of the extension and test wherever the administration is impacted by the extension.

API/Payment extensions

  1. We check for an API test button. Apart from that, you can validate the required credentials while saving them in the extension settings. In this case, a status message must be displayed in the backend and Shopware log.
  2. The functionality of an extension will be tested together with the extension developer in a live session!

Quality Guidelines for Shopware 6 Extensions

Extension master data / license

Please enter the valid license you set in your shopware account. You have to identify this license in the composer.json as well.

Note: The choosen license can not be changed after adding your extension to your account. If you want to change the licence afterwards, you have to add a new extension (with a new technical name) and upload the extion again with the new technical name.

Extension dependencies

If your extension requires other extensions to run properly, you have to check that these extension are installed. For example: If your extension only works with an activated base extension, you have to check the installation of the base extension.

Info:Requiring extensions

Fallback language

The installation is not always in English or German.
So make sure that your extension works in other languages as well.
An example: The customer has his installation in Spanish, your extension is not yet available in this language.
So you should use the English translation as fallback.

Translations

If your extension is available in more than one language (e.g. English and German), these can be defined using the option "My extension is translated into the following languages" (located in the “Description & images” section of your extension management). The translations / text snippets must be maintained in the json files.

Valid extension favicon for the Shopware backend

You have to upload a valid favicon named plugin.png (png / 40 x 40 px) for the extension. This favicon will make it easier to identify your extension in the Extension Manager module in the backend. The favicon has to be stored under src/Resources/config/

Error messages must be entered in the extension log

Error/informational messages can only be recorded in the extension-log of Shopware's log folder ( /var/log/ ). You have to develop you own logging-service / extension-specific logger. Never write extension 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 500 errors at any time!

Untrusted content should not be included

See Untrusted content should not be included in SonarQube Rules.

With "Install/Uninstall" the user must decide whether the data/tables are to be deleted or not

When clicking on the "Install / Uninstall" option in the Extension Manager, the user must be presented with the options "completely delete" or "keep the extension data, text snippets and table adjustments".

It is not allowed to extend the Extension Manager

The Extension Manager must not be extended or overwritten.

Extension Manager

The Debug Console controls the reinstallation, uninstallation, installation and deletion of the extension. No 400 errors or exceptions are allowed to appear.
If the extension requires special PHP options, these must be queried during installation. If the query is negative, a growl message must appear in the backend.

Reloading of files not allowed

Extensions may not load other files during and after the installation in the Extension Manager.

Extension pages with their own URL must appear in the sitemap.xml

If the extension creates its own pages that are set to "index,follow" and the URLs are accessible via the frontend, then these "extension 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.

Info:Registering cookies in the Cookie Consent Manager for Shopware 6

Shopping Worlds / Shopping Experiences

Shopping Worlds elements must include an element icon. If the extension is deleted, Shopping Worlds should continue to work flawlessly in the frontend.

Payment extensions

We check if the "pluginlogger" service is used for the debug/error.log and that logs are written in the directory /var/log/. Log files must use this folder in every circumstance. Another solution is to store them into the database.

Every extension accessing external API services

A test button for optional API access data must be available. If the API data is incorrect, an entry must appear in the extension log file in the Shopware folder /var/log/ respectively in the database.

Apart from that, you can validate the required credentials while saving them in the extension settings. In this case, a status message must be displayed in the backend and Shopware log.

Github:Example extension for implementing a API Test Button into the System Config form

Menu entries in the main menu of the administration are not allowed because of Look & Feel.

Automatic code reviews with PhpStan and SonarQube

Our most current code review configurations that we use when uploading extensions via the Shopware Acccount can be found on GitHub.

Automated code tests with Cypress

There are Cypress tests for 6 on GitHub. The project is driven by the Friends of Shopware group. You can contribute at any time:

Helpful tools for extension developers

Description entered in the Shopware Account

  • The extensions short description must have at least 150 characters.
  • The extension description must contain at least 200 characters and should clearly represent the extensions functions in detail.
  • Include several screenshots from the frontend and backend. They must show the extension "in action" and show its configuration options and how to use the extension.
  • Be sure that the extension is assigned to the appropriate categories.
  • If you provide a demo shop, the link must be valid (the URL cannot contain http:or https:).
  • The description must be a 1:1 translation.
  • Your extension manufacturer profile must contain accurate English and German descriptions as well as a manufacturer logo.

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.

  • Tip: Use the short description wisely as the text will be used to tease your extension in the overview along with the "Customers also bought" and "Customers also viewed" recommendations. The short description is also published as the meta-description. This description should be a minimum of 155 characters long and unique.

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>
  • Tip: When it comes to increasing your extension sales, it's important that potential customers feel completely informed about your products and services. To this end, you should provide a description that is meaningful, detailed and easy to understand - when possible, even make it understandable for people with very little technical knowledge. Explain step by step how your extension works and how to use it to achieve the desired result. Of course, your extension description should be accompanied by clean HTML source code.
  • Tip: Video content increases awareness, trust, and has proven to convert potential customers better than other content types. Help your customers better understand your extension or service with explainer videos, product demos, tutorials, etc. You can embed max. 2 YouTube videos in your extension description.

In addition, you should include descriptive images that represent the extensions functionality. Show the extension "in action" in both the frontend and backend.

Note: You are no longer able to advertise your Shopware certificates within the extension description, in your extension images, or in your manufacturer profile. The manufacturer/partner certificates are dynamically loaded at the end of each extension description and published by us.

A extension is to be released in both stores (German and International), the content must be accurately translated 1:1 from/to German/English.​​​

Extension manufacturer profile

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 > Extension manufacturer profile.

Note on Shopware Technology Partner contract for interfaces

You have now read the complete list of requirements for developing and releasing extensions in the Shopware Community Store.

If your extension is a software extension/interface with downstream costs, transaction fees, or service fees for the customer, we need to complete a technology partner agreement in order activate your extensions.

If you have any questions regarding the technology partner agreement, please contact our sales team by writing an email to sales@shopware.com or calling +44 (0) 203 095 2445 (UK) / 00 800 746 7626 0 (worldwide) / +49 (0) 25 55 / 928 85-0 (Germany).

When do I need a SW5 SDK-License?

  1. Extension will be sold and uses extJS

When do I NOT need a SW5 SDK-License?

  1. Extension will be sold and uses no extJS
  2. Extension is for free and uses extJS
  3. Extension is for free and uses no extJS

If you need a license, please write an email to ecosystem@shopware.com.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Quality Guidelines for Shopware 5 Extensions

Extension master data / license

Please enter the valid license you set in your shopware account. You have to identify this license in the plugin.xml as well.

Note: The choosen license can not be changed after adding your extension to your account. If you want to change the licence afterwards, you have to add a new extension (with a new technical name) and upload the extion again with the new technical name.

plugin.xml - Extension metadata

All extensions must contain the following metadata:


<?xml version="1.0" encoding="utf-8"?>
<plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../engine/Shopware/Components/Plugin/schema/plugin.xsd">
<label>My Extensionname</label>
<label lang="de">Name of the extension (German translation)</label>
<version>1.0.0</version>
<copyright>extension supplier</copyright>
<license>license set in the account. e.g. MIT, proprietary, etc.</license>
<link>optional</link>
<author>Author of the extension</author>
<compatibility minVersion="5.2.0" />
<changelog version="1.0.0">
   <changes>
        <![CDATA[
        First release Shopware Community Store
        ]]>
   </changes>
   <changes lang="de">
        <![CDATA[
        Erstveröffentlichung Shopware Community Store
        ]]>
   </changes>
</changelog>
<description>
   <![CDATA[
   <b>My extension</b>
   <p>CSS,INLINE-Styles,BASE64-IMAGES OR SCRIPTS NOT ALLOWED! Describes Extension and contains a Link to manual/description in the community-store.</p>
   ]]>
</description>
<description lang="de">
   <![CDATA[
   <b>Meine Erweiterung</b>
   <p>CSS,INLINE-Styles,BASE64-IMAGES NICHT ERLAUBT! Beschreibt Erweiterung und enthält einen Link zur Anleitung/Beschreibung im Community Store und Erweiterung Anleitung.</p>
   ]]>
</description>
</plugin>

Note: The changelog must contain a minimum of 20 characters. Please note that the minVersion must be the same version as you have stored for the extension in your account.

Note: Pay attention to the fallback language. Use e.g. instead of

plugin.xml - Extension dependencies

If your extension requires other extensions to run properly, you have to check that these extension are installed. For example: If your extension only works with an activated base extension, you have to check the installation of the base extension in the plugin.xml:


    <requiredPlugins>
        <requiredPlugin pluginName="BasePlugin" minVersion="1.0.0" />
    </requiredPlugin> 

Fallback language

The installation is not always in English or German.
So make sure that your extension works in other languages as well.
An example: The customer has his installation in Spanish, your extension is not yet available in this language.
So you should use the English translation as fallback.

Translations

If your extension is available in more than one language (e.g. English and German), these can be defined using the option "My extension is translated into the following languages" (located in the “Description & images” section of your extension management). The translations / text snippets must be maintained in the respective XML and TPL files.

Valid extension favicon for the Shopware backend

You have to upload a valid favicon (16 x 16 px) for the extension. This favicon will make it easier to identify your extension in the Extension Manager module in the backend.

Error messages must be entered in the extension log

Error/informational messages can only be recorded in the extension-log of Shopware's log folder ( /var/log/ ). The service "pluginlogger" from the DI container has to be used for this. As of Shopware 5.6, you can also create your own extension-specific logger. Never write extension exceptions into the Shopware core.log or outside the Shopware System-Log folder. This ensures that the log file can never be accessed via URL.
Error messages had to be written into the original plugin.log of shopware.

Avoid 500 errors at any time.

Changes to the database and data records must not be removed with "Reinstall"

If a user clicks on "Reinstall", be sure that any stored data remains intact.

With "Install/Uninstall" the user must decide whether the data/tables are to be deleted or not

When clicking on the "Install / Uninstall" option in the Extension Manager, the user must be presented with the options "completely delete" or "keep the extension data, text snippets and table adjustments".

Standard prefix for your own database tables

The prefix for your unique database table is s_plugin_. If you use your own tables, the structure should be as follows: s_plugin_my_plugin_name

Untrusted content should not be included

See Untrusted content should not be included in SonarQube Rules.

Email templates

Extension email templates must be stored in the folder "User emails". All email templates must be deleted after the extension is uninstalled.

Using attributes

Attributes created by the extension may not be deleted via the free text administration in the backend.

It is not allowed to extend the Extension Manager

The Extension Manager must not be extended or overwritten.

Extension Manager

The Debug Console controls the reinstallation, uninstallation, installation and deletion of the extension. No 400 errors or exceptions are allowed to appear.
If the extension requires special PHP options, these must be queried during installation. If the query is negative, a growl message must appear in the backend.

Reloading of files not allowed

Extensions may not load other files during and after the installation in the Extension Manager.

Extension pages with their own URL must appear in the sitemap.xml

If the extension creates its own pages that are set to "index,follow" and the URLs are accessible via the frontend, then these "extension 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.

Info:Extend the sitemap.xml with Shopware 5 extensions.

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.

Info:Registering cookies in the Cookie Consent Manager

Clear only the necessary caches when installing or uninstalling a extension.

Do not empty the template-/http-Cache or recompile the theme when installing the extension. Also please consider which caches actually need to be cleared for your extension to work, since regenerating caches may cause a high load on the server. Clear only the necessary caches when the activate-method is called.

Info:

Shopware Extension Guidelines

Shopping Worlds / Shopping Experiences

Shopping Worlds elements must include an element icon. If the extension is deleted, Shopping Worlds should continue to work flawlessly in the frontend.

Payment extensions

We check if the "pluginlogger" service is used for the debug/error.log and that logs are written in the directory /var/log/. Log files must use this folder in every circumstance. Another solution is to store them into the database.

Every extension accessing external API services

A test button for optional API access data must be available. If the API data is incorrect, an entry must appear in the extension log file in the Shopware folder /var/log/ respectively in the database.

Apart from that, you can validate the required credentials while saving them in the extension settings. In this case, a status message must be displayed in the backend and Shopware log.

Github: Example extension for implementing a API Test Button into the System Config form

Automatic code reviews with PhpStan and SonarQube

Our most current code review configurations that we use when uploading extensions via the Shopware Acccount can be found on GitHub.

Automated code tests with Cypress

There are Cypress tests for Shopware 5 and 6 on GitHub. The project is driven by the Friends of Shopware group. You can contribute at any time:

Helpful tools for extension developers

Description entered in the Shopware Account

  • The extensions short description must have at least 150 characters.
  • The extension description must contain at least 200 characters and should clearly represent the extensions functions in detail.
  • Include several screenshots from the frontend and backend. They must show the extension "in action" and show its configuration options and how to use the extension.
  • Be sure that the extension is assigned to the appropriate categories.
  • If you provide a demo shop, the link must be valid (the URL cannot contain http:or https:).
  • The description must be a 1:1 translation.
  • Your extension manufacturer profile must contain accurate English and German descriptions as well as a manufacturer logo.

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.

  • Tip: Use the short description wisely as the text will be used to tease your extension in the overview along with the "Customers also bought" and "Customers also viewed" recommendations. The short description is also published as the meta-description. This description should be a minimum of 155 characters long and unique.

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>
  • Tip: When it comes to increasing your extension sales, it's important that potential customers feel completely informed about your products and services. To this end, you should provide a description that is meaningful, detailed and easy to understand - when possible, even make it understandable for people with very little technical knowledge. Explain step by step how your extension works and how to use it to achieve the desired result. Of course, your extension description should be accompanied by clean HTML source code.
  • Tip: Video content increases awareness, trust, and has proven to convert potential customers better than other content types. Help your customers better understand your extension or service with explainer videos, product demos, tutorials, etc. You can embed max. 2 YouTube videos in your extension description.

In addition, you should include descriptive images that represent the extensions functionality. Show the extension "in action" in both the frontend and backend.

Note: You are no longer able to advertise your Shopware certificates within the extension description, in your extension images, or in your manufacturer profile. The manufacturer/partner certificates are dynamically loaded at the end of each extension description and published by us.

A extension is to be released in both stores (German and International), the content must be accurately translated 1:1 from/to German/English.​​​

Extension manufacturer profile

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 > Extension manufacturer profile.

Note on Shopware Technology Partner contract for interfaces

You have now read the complete list of requirements for developing and releasing extensions in the Shopware Community Store.

If your extension is a software extension/interface with downstream costs, transaction fees, or service fees for the customer, we need to complete a technology partner agreement in order activate your extensions.

If you have any questions regarding the technology partner agreement, please contact our sales team by writing an email to sales@shopware.com or calling +44 (0) 203 095 2445 (UK) / 00 800 746 7626 0 (worldwide) / +49 (0) 25 55 / 928 85-0 (Germany).

Shopware 5.0 SDK License

The Shopware 5 backend is completely based on Ext JS framework by Sencha (www.sencha.com). If you are developing Shopware 5 extensions which build upon or alter the Shopware/ExtJS layer and wish to offer them with a proprietary license (extensions that are not licensed under the GNU Affero General Public License version 3 or a compatible license), you require a Shopware SDK license.

Thanks to an OEM agreement with Sencha, Shopware is able to offer this license on a per developer basis, allowing the license holder to make use of this framework for their own extensions.

When do I need a SW5 SDK-License?

  1. Extension will be sold and uses extJS

When do I NOT need a SW5 SDK-License?

  1. Extension will be sold and uses no extJS
  2. Extension is for free and uses extJS
  3. Extension is for free and uses no extJS

If you need a license, please write an email to ecosystem@shopware.com.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Automatic code review - Errors

"The required composer.json file was not found."

Cause: Error in composer.json
One possible cause is that the technical extension name from the Community Store or account does not match the technical name entered in composer.json or the extension is incorrectly zipped.
The technical extension name had to be stored in the last part of the composer.json: composore.json > extra > shopware-plugin-class. So take a look at the bootstrap class. Most of the error were caused by the wrong technical name. For example "Swag\\MyPlugin\\SwagMyPluginSW6" instead of "Swag\\MyPlugin\\SwagMyPlugin".

Here is an example of a valid composer.json.
See "Plugin-Base Class" for more information. 

"Make sure this cross-domain message is being sent to the intended domain."

"No bootstrapping file found. Expecting bootstrapping in..."

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 extension source (e.g. in the technical name).

"Warning: ExtJS was detected in your extension."

(SW5 related only)
The extension manufacturer needs an SDK license for a commercial extension which uses ExtJS. For more information, please write an email to ecosystem@shopware.com.
See Shopware 5 SDK License for more information.

"Class Shopware\Storefront\* not found."

Missing requirements in the composer.json (e.g. "require": {"shopware/frontend": "*"},)
See "Shopware Extension Development: Extension Meta Information - Explanation of the properties" for more information.

Be sure you set cookies as secure. Don`t forget to register your to Cookie to the Coookie Consent Manager.

"Call to static method jsonEncode() on an unknown class......"

Shopware always uses json_Encode exclusively - there is no other fallback.

"The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them."

The composer.lock in the extension archive has to be deleted.

"Class Shopware\Core\System\Snippet\Files\SnippetFileInterface not found and could not be autoloaded."

In the Shopware 6 Early Access version, the mentioned class did not exist, therefore, the code review failed.
The reason for the problem is the following specification in the composer.json:


"require": {
    "shopware/core": "*",
    "shopware/storefront": "*"
},

Composer resolves this to "Whatever is the latest from these repositories" and then installs the Early Access version instead of the current Release Candidate. This happens because an EA is not known by composer as a stability level (like stable or RC) and is therefore ultimately considered "stable".
The solution is to amend the requirement as follows:


"require": {
    "shopware/core": "^6.1",
    "shopware/storefront": "^6.1"
},
"minimum-stability": "RC"

This ensures that at least version Shopware 6.1 is installed, even if it is a Release Candidate. It will be preferred as soon as the final 6.1 is released.

Unauthorized file formats or folders detected in the extension. Please remove the following files/folders:

Not allowed folders and files:


.gitignore, .DS_Store, Thumbs.db, .git, __MACOSX, .zip, .tar, .tar.gz, .phar

Was this article helpful?

Version

5.5.0 or newer

Contents