Skip to content

Release notes Shopware


Release notes Shopware


This minor release comes with a lot of improvements, such as staging mode, a new HTML element in CMS, media cleanup as well as S3 speed improvements. Additionally, ~80 bugs were fixed.

System requirements

  • tested on PHP 8.2 and 8.3
  • tested on MySQL 8 and MariaDB 10.11


Staging Mode

We added a staging mode to Shopware, which helps you to mark an instance as a staging environment. This is useful for development and testing purposes. It allows to change the sales channel domain url, shows a banner in the Administration or Storefront and much more. For more information, check out the docs for staging mode.

HTML code element

The HTML code element is a new element in Shopping Experiences. This element allows you to add custom HTML code to Shopping Experience without conflicting with the HTML sanitization.

Improved Elasticsearch/Opensearch logging

We changed the log_level to error for Elasticsearch/Opensearch logging. This will reduce the amount of log entries in the log file in production mode.

HTML sanitization optimization

The mail header and footer are not sanitized anymore. This allows you now to use any HTML tags in the mail header and footer.

The HTML sanitization now also supports all HTML5 tags and attributes.

user:list command

We added a new command user:list to the CLI. This command lists all users in the system. This command have also a --json flag to interact with external tools like jq.

Deprecation of dal:create:schema

The command dal:create:schema is deprecated and will be removed in the next major release. Please use as replacement the dal:migration:create command, this diffes your DAL schema to the current database and creates a migration file.

Various OpenAPI schema improvements

We improved the OpenAPI schema in various places. We added missing properties, fixed wrong types and added missing descriptions.

MediaService cleanups now the temporary created files

The MediaService now cleans up the temporary created files after the media has been processed.

Store-api route to fetch media elements

Sometimes in custom fields or other fields are the media id stored, But you need in the Storefront the media url. We added a new route to fetch the media elements by media id.

POST /store-api/media
Accept: application/json
sw-access-key: YOUR_ACCESS_KEY
Content-Type: application/json

    "ids" : [

HMAC based JWT

Using private/public keys (asymmetric encryption) for JWT is now deprecated and will be removed with the next major release. Replacement for this is the HMAC based JWT, this allows us to use the existing APP_SECRET environment file and get rid of config/jwt folder. This makes hosting Shopware in a containerized environment a lot easier, as you don't need to mount the config/jwt folder anymore.

Improved search on Product search in the administration

The search in the product listing in the administration is not considereing anymore category names and tag names attached to the products. This improves the search performance with MySQL a lot.

Context::createDefaultContext is now internal

The method Context::createDefaultContext is now marked internal. With this decision we want to prevent that developers for wrong usage. In HTTP requests the context is created automatically and attached to the Request object. The only place where the Context is unknown is the console context. In this case you should use the Context::createCLIContext method.

Spotlight Elements will replace Swagger UI

We deprecated the Swagger UI (/api/_info/swagger.html) and will replace it with the Spotlight Elements. The Spotlight Elements are a more modern and user-friendly way to interact with the API. The Spotlight Elements are available under /api/_info/swagger.html. This solves also the problem that the payload can't be shown in the Swagger UI.

Improved s3 copy-speed

We improved the CopyBatch plugin to copy multiple files asynchronously. This improves the speed of the s3 copy operation a lot. This benefits bin/console theme:compile or bin/console assets:install


CommandLocalAWS S3Cloudflare R2
asset:install --force*1.09s192.05s892.11s


CommandLocalAWS S3Cloudflare R2
asset:install --force*1.09s41.12s141.38
    • the asset:install command uses a manifest file to only upload the changed files to the s3 bucket. The --force flag disables this feature and uploads all files, to have a better comparison.

Fixed bugs

  • NEXT-17867 | Strrev does not support utf8 properly (23 votes)
  • NEXT-28620 | Delete Payment methods (17 votes)
  • NEXT-33431 | Async component factory breaks on second call to function that extends parent method (16 votes)
  • NEXT-32133 | Order: Can not change order status (11 votes)
  • NEXT-21544 | Order status cannot be exported (10 votes)
  • NEXT-31030 | Shopware Commercial throws error when password recovery detects inactive user (9 votes)
  • NEXT-32942 | Email Header/Footer wird nicht angehängt (8 votes)
  • NEXT-24683 | Image slider breaks when deleting media files (8 votes)
  • NEXT-31749 | Losing page content in the administration when switching from a selected category to a landing page (6 votes)
  • NEXT-30360 | order_count/orders_per_customer_count wrong for promotions with individual codes (6 votes)
  • NEXT-32365 | "Discount promotions" field greyed out for non-admin users despite rights to orders (5 votes)
  • NEXT-31922 | Order details shipping and billing address select does not work correctly (5 votes)
  • NEXT-31729 | Conversion of the volume in the Rule Builder is not accurate (5 votes)
  • NEXT-34027 | Indexing results in an exception, when a inherting language is used (4 votes)
  • NEXT-33913 | Wording Issue in the Flow Builder (German only) (4 votes)
  • NEXT-33867 | sw-settings-loggin-list calls this.$options.components (4 votes)
  • NEXT-29093 | "label" attribute inheritance of theme variables does not work anymore (4 votes)
  • NEXT-34312 | Aktive commecial plugin: Error messages on Checkout Confirm page are not displayed (3 votes)
  • NEXT-34068 | The "Send email" action is missing in Flow Builder Delayed Actions (3 votes)
  • NEXT-33503 | Video cms element loaded when saving cookie settings - even if the video cookie was not accepted (3 votes)
  • NEXT-33146 | No full screen on YouTube Player (3 votes)
  • NEXT-32770 | Discount calculation in existing order - Rabattkalkulation in bestehender Bestellung (3 votes)
  • NEXT-33028 | Store API change default address route not allowed for guest users (2 votes)
  • NEXT-32989 | HTML entities in the SEO fields (2 votes)
  • NEXT-32254 | Manuelle aktivierung der Benutzer nicht möglich. (2 votes)
  • NEXT-30892 | Custom Fields for Media: View of the custom field content in the Admin not updating correctly (2 votes)
  • NEXT-30769 | Preview Mode Rule Builder wrong results (2 votes)
  • NEXT-34155 | custom/plugins path hardcoded in TestBootstrapper.php (1 votes)
  • NEXT-33484 | Displaying the order overview in the backend makes shop unavailable (because of promotion code filter) (1 votes)
  • NEXT-33359 | Incorrect label in the selection field for the e-mail template when sending a document (1 votes)
  • NEXT-32920 | first- and lastname fields in the newsletter subscription form no required fields (1 votes)
  • NEXT-28908 | Chrome memory and display bug in (1 votes)
  • NEXT-28055 | Ace editor only accepts new value on blur (1 votes)
  • NEXT-34665 | Disable PHPBench (0 votes)
  • NEXT-34654 | [Github] chore: Add sales channel context getter to CustomerDoubleOptInRegistrationEvent (0 votes)
  • NEXT-34653 | [Github] NEXT-0000 - Check invalid rules with DAL before fetching (0 votes)
  • NEXT-34650 | [Github] NEXT-00000 - Add options argument to recalculate order (0 votes)
  • NEXT-34649 | [Github] NEXT-00000 - Add customer data to CustomerDeletedEvent (0 votes)
  • NEXT-34616 | [Github] Add sanitize field name for cms text (0 votes)
  • NEXT-34525 | [Github] NEXT-00000 - Support webpack config ts (0 votes)
  • NEXT-34503 | [Github] Add column assigned pages to CMS list (0 votes)
  • NEXT-34491 | [Github] NEXT-14691 - Add pseudo modal twig blocks (0 votes)
  • NEXT-34478 | No cache force for snippets. (0 votes)
  • NEXT-34455 | Filtering order with non default languages throws a JS error (0 votes)
  • NEXT-34435 | Fixed Playwright documentation link (0 votes)
  • NEXT-34415 | [Github] refactor: Product card action template (0 votes)
  • NEXT-34411 | [Github] NEXT-29093 - Fix theme config label inheritance (0 votes)
  • NEXT-34410 | [Github] fix: Allow Twig array filters to accept null (0 votes)
  • NEXT-34399 | [Github] NEXT-0000 - Update action.html.twig to include css class for detail button (0 votes)
  • NEXT-34381 | media components needs to refresh when replacing an image (0 votes)
  • NEXT-34361 | ThemeCompiler cannot be decorated in async CompileThemeHandler (0 votes)
  • NEXT-34330 | Fix core monolog config for console (0 votes)
  • NEXT-34303 | [Github] Replace MySQL with DAL implementation in document upload flow (0 votes)
  • NEXT-34265 | DecoratedLoginRoute in Employee Management ignores other LoginRoute decorators (0 votes)
  • NEXT-34225 | [Github] Add product video functionality (0 votes)
  • NEXT-34216 | [Github] NEXT-00000 - Change order list filter entity from customer to order (0 votes)
  • NEXT-34070 | [Github] NEXT-00000 - Improve seo url replacer (0 votes)
  • NEXT-34030 | Exact match product number search in ES fails (0 votes)
  • NEXT-33997 | Invalid icon names in adminsitration template (0 votes)
  • NEXT-33922 | [Github] NEXT-33918 - Remove unnecessary param (0 votes)
  • NEXT-33900 | Employee invitation is not compatible with headless sales channels (0 votes)
  • NEXT-33833 | [Github] NEXT-00000 - Append slash to sitemap home url (0 votes)
  • NEXT-33741 | [Github] NEXT-00000 - Improve product page load performance (0 votes)
  • NEXT-33739 | [Github] NEXT-00000 - Improve profiler repository tracer (0 votes)
  • NEXT-33542 | [Github] Fix links to ADR docs in (0 votes)
  • NEXT-33541 | [Github] NEXT-00000 - Fix cloning of structs with enums (0 votes)
  • NEXT-33502 | [Github] fix: Make EntityCollection a covariant type (0 votes)
  • NEXT-33501 | [Github] chore: correct successor of BeforeDeleteEvent (0 votes)
  • NEXT-33433 | [Github] fix: Array shape of the ErrorCollection (0 votes)
  • NEXT-33405 | [Github] NEXT-00000 - Improve searchIds (performance) & createDefaultContext calls (0 votes)
  • NEXT-33326 | Use Datatype AbstractTranslator (0 votes)
  • NEXT-33311 | [Github] NEXT-0000 - add intra community delivery label check to InvoiceRenderer (0 votes)
  • NEXT-33292 | The search function doesn't work with dots in the search term (0 votes)
  • NEXT-32957 | [Github] Update dir to delete (0 votes)
  • NEXT-30706 | [GitHub] Use new twig template name for each unique template to remove statefulness (0 votes)
  • NEXT-23571 | Deleting value exclusions breaks variant generation (0 votes)
  • NEXT-34688 | [Github] Add fetchpriority attribute for cover image on product detail page (0 votes)


Thanks to all our contributors for helping us improve Shopware with every pull request!

More resources

Get in touch

Discuss about decisions, bugs you might stumble upon, etc in our community slack. See you there 😉