Netcomm Forum 2024
1 minute to read

Shopware 6.6 RC is now available. What happened under the hood?

Shopware 6.6 RC is now available. What happened under the hood?

(This article was first published on November 13, 2023, and last updated on January 22, 2024.)

Shopware 6.6 RC is out now, and we want to inform you again about the most important technical changes. Prepare for the removal of deprecated code, library updates, and breaking changes. Have your extensions ready and available for release by familiarizing yourself with the upcoming changes early on. Moreover, we would be grateful if you could provide us with any feedback you may have to ensure the smoothest possible release of Shopware 6.6. We count on you so everybody can upgrade their systems in time.


Overview

  1. Timeline

  2. General changes

  3. Admin changes

  4. Core changes

  5. Storefront changes


Timeline

We published Shopware 6.6 today as a release candidate (RC). The RC phase will last for at least eight weeks, meaning we expect the final release to be published at the end of March.

As usual, with the release of the RC, we will split off an RC branch on GitHub. This branch will be feature-freezed, only bugs will be fixed in it.

Note that the release candidate must not be used for production or in live projects. It is only meant for testing and updating extensions; there will be no update path from the RC to 6.6 final!

General changes

Removal of announced deprecations

All parts of the code base marked as deprecated will be removed. If you are using deprecated functionality, now is the time to update your code. Please find more details in the UPGRADE-6.6.md on GitHub.

Removal of feature flags

Specific features already released under a feature flag will be active by default introducing breaking changes, requiring code updates in your projects and/or extensions. Here, you can find the affected lines of code.

Removal of experimental state

This is just for your information, no action needed: features stable with 6.6 have been freed from the "experimental" annotation, such as AsyncThemeCompilation, QuoteMangement, and others.

Admin changes

Vue.js 3 update

All extensions altering the administration panel via the plugin system must be tested. As Vue.js 2 will no longer be supported by the end of this year, we updated the administration component to the latest version of Vue.js, ensuring our customers receive up-to-date and compliant software. You will find a tutorial on how to update to Vue.js 3 in our documentation.

Webpack 5 update

Plugins that provide their own webpack config need to be migrated to webpack 5 API.

Node 20 as minimum version

As discussed, we upgraded the minimum version requirement for Node from 18 to 20 because it is the new LTS version with active support until the end of 2024, and maintenance support until mid-2026.

Configurable auto logout

This one you will love: A lot of people requested this feature for a long time. We can finally deliver this, stay tuned!

Core changes

Symfony 7 upgrade

Symfony 7.0 is to be released this month, and we want to swiftly upgrade to it as discussed. Best resource to read about breaks is Symfony's upgrade guide.

PHP 8.2 as minimum requirement

With the upcoming upgrade to Symfony 7, PHP 8.2 will become the new minimum required version. Refer to the release information by Symfony and check compatibility with your hosting provider.

Maria DB 10.11 minimum requirement

We upgraded the minimum version requirement for Maria DB from v10.3 to v10.11, as that is the latest LTS version. Additionally, this version supports the JSON_OVERLAPS function, that is needed by the "delete unused media" feature, and thus it will finally work in every setup. MySQL was already changed to minimum version 8.0.

Redis 7.0 minimum requirement

We upgraded the minimum version requirement for Redis from v6.2 to v7.0, as there are a lot of performance improvements, and it allows us to use the new redis function feature in the future.

Upgrading some 3rd party composer dependencies

We plan to upgrade some 3rd party composer dependencies such as lcobucci/jwt to v5 or higher and async-aws/simple-s3 to v2 or higher.

Stock API changes

We simplify the way Shopware stores stock data and make the system more extendable for developers. It will become easier to supplement the stock information with user-defined data and to send it to third-party systems. It is also now possible to completely disable Shopware's stock management. The new Stock API was introduced in 6.5.5 behind the STOCK_HANDLING feature flag; it now will become the default method in 6.6.

To keep the impact as low as possible, we kept the backwards compatibility for reading the stock. With this new method, it now becomes easier to write to stock handling. Please note that the feature multi-inventory is not compatible yet. If you are interested, you will find more details in the discussions, the changelog, and in our docs for extending the API.

Persistent media path storage

The path to media is now stored in the database instead of being generated on the fly. Please read more about this in discussions about this topic.

Improving the caching layer

A few refactoring and improvement changes on the caching layer will be set active by default by removing their feature flag. Read discussion #3299 and discussion #3171 for more information.

Unbundle AWS and Google Cloud adapters

We want to maintain a lean and fast core. For this reason, we will get rid of AWS and Google Cloud adapters. So far, we have delivered these adapters with a vanilla Shopware installation although it is unlikely that both services will be used at once. This is why we ask you to require the adapters for the storage you need in your project yourselves, we may make use of composer suggest for the necessary dependencies. See discussions for more information.

Use Symfony/scheduler instead of your own scheduled task implementation

As Symfony recently added a scheduler component, and we want to work as closely to the framework as possible, we will switch from our own scheduled task implementation to the new Symfony native component. This frees developer resources, as we do not have to maintain our own code. Also, no special Shopware knowledge is necessary - knowing Symfony is sufficient. Read more about it in discussions.

Multilingual ElasticSearch index

To improve the overall performance, we changed the method of indexing in ElasticSearch: from now on, we don't split index building by language any longer. Please be aware of this when providing your own properties in ElasticSearch. For more details, please read our architecture decision record.

Storefront changes

Async JavaScript plugin loading

By introducing asynchronous JS loading and allowing dynamic imports, we want to increase the storefront performance and smoothen the JS handling. Read the discussions for more details.

Improve CSS

For the same reason of increasing the performance, we will remove unnecessary CSS code by using Bootstrap's spacing utility. Please read more about it in our architecture decision record.

Further information

Additional information on how to prepare for the release candidate and some further explanation surrounding the timeline and release can be found in this video interview on YouTube:

Suggest blog topicShape

Newsletter

Never miss out - get all the latest news sent straight to your inbox.

To the newsletter manager