Skip to content

Release notes Shopware 6.6.10.0

19.2.2025

Release notes Shopware 6.6.10.0

Abstract

This minor release contains improvements like MySQL invalidator storage, external media URLs via API, even more A11y improvents and more. Additionally, 10+ bugs had been fixed.

System requirements

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

Improvements

Upgrade to Symfony 7.2

  • Changed symfony/* dependencies to ^7.2

Addition of MySQLInvalidatorStorage

  • Introduced /Shopware/Core/Framework/Adapter/Cache/InvalidatorStorage/MySQLInvalidatorStorage to collect and handle cache invalidations in MySQL as an atomic operation.
  • This new storage option allows delayed cache invalidation without requiring Redis (although Redis remains the recommended solution).
  • To switch to MySQL for delayed cache invalidation, update your configuration as follows:
yaml
shopware:
    cache:
        invalidation:
            delay: 1
            delay_options:
                storage: mysql

[A11y-HTML] Offer HTML alternative to our pdf standard documents

  • Besides the existing PDF document which is based on DOMPDF, we added our standard document as HTML documents for fulfilling the A11y criteria.

Introduce global template data for language and navigation

Some of the data for the Twig template in the storefront, like the current currency or navigation ID, should not depend on the current page object; instead, the should be available globally and independently. The following changes facilitate the introduction of those global template data:

  • Added new Twig function sw_breadcrumb_full_by_id to get the full breadcrumb for a category ID.
  • Added /Shopware/Storefront/Framework/Twig/NavigationInfo to the global shopware Twig variable, to provide the ID of the main navigation and the current navigation path as ID list.
  • Added minSearchLength to the global Shopware Twig variable, which defines the minimum search term length.
  • Added showStagingBanner to the global shopware Twig variable, which defines if the staging banner should be shown.
  • Deprecated the global showStagingBanner Twig variable. Use shopware.showStagingBanner instead.
  • Deprecated the usage of the header and footer properties of page Twig objects outside the dedicated header and footer templates. Use the following alternatives instead:
    • context.currency instead of page.header.activeCurrency
    • shopware.navigation.id instead of page.header.navigation.active.id
    • shopware.navigation.pathIdList instead of page.header.navigation.active.path
    • context.saleschannel.languages.first instead of page.header.activeLanguage
  • Added new optional parameter serviceMenu of type /Shopware/Core/Content/Category/CategoryCollection to /Shopware/Storefront/Pagelet/Footer/FooterPagelet. It will be required in the next major version.

With the next major version, the header and footer will be loaded via ESI. Due to this change, many things were deprecated and will be removed with the next major version, as they are not needed anymore (Please refer to the changelog for a detailed list of associated deprecations).

  • This changes are currently behind the cache_rework flag.
  • The header and footer are now loaded via ESI. This allows to cache the header and footer separately from the rest of the page.
  • Two new routes /header and /footer were added to receive the rendered header and footer.
  • The rendered header and footer are included into the page with the Twig function render_esi, which calls the previously mentioned routes.
  • Two new templates src/Storefront/Resources/views/storefront/layout/header.html.twig and src/Storefront/Resources/views/storefront/layout/footer.html.twig were introduced as new entry points for the header and footer.
  • Make sure to adjust your template extensions to be compatible with the new structure. The block names are still the same, so it just should be necessary to extend from the new templates.

Removal of the asterisk next to every price

  • When activating the ACCESSIBILITY_TWEAKS feature flag the price asterisk * are no longer displayed next to every price. A text link for tax and shipping information is displayed instead.

Bulk entity extension

  • Deprecated EntityExtension::getDefinitionClass. It will be replaced by EntityExtension::getEntityName, which needs to return the entity name.

Before:

php
<?php

namespace Examples\Extension;

use Shopware\Core\Content\Product\ProductDefinition;
use Shopware\Core\Framework\DataAbstractionLayer\EntityExtension;

class MyEntityExtension extends EntityExtension
{
    public function getDefinitionClass(): string
    { 
        return ProductDefinition::class;
    }
}

After:

php
<?php

namespace Examples\Extension;

use Shopware\Core\Content\Product\ProductDefinition;
use Shopware\Core\Framework\DataAbstractionLayer\EntityExtension;

class MyEntityExtension extends EntityExtension
{
    public function getEntityName() : string
    {
        return ProductDefinition::ENTITY_NAME;
    }
}

Using external URL for media's path without storing physical files

  • You can now store media paths as external URLs using the admin API. This allows more flexible media management without the need to store physical files on the server.

Example Request:

http
POST http://sw.test/api/media
Content-Type: application/json

{
    "id": "01934e0015bd7174b35838bbb30dc927",
    "mediaFolderId": "01934ebfc0da735d841f38e8e54fda09",
    "path": "https://test.com/photo/2024/11/30/sunflowers.jpg",
    "fileName": "sunflower",
    "mimeType": "image/jpeg"
}

Add aggregate admin api

  • Added generic /api/aggregate/{entityName} API. It is similar to already existing /api/search/${entityName}, but without loading entities

Updated Menu Structure in Settings Page

  • The settings page has been reorganized into groups for better usability.
    Extension developers which extend or customize the settings menu has to make sure that their changes are compatible with the new structure.
    The old menu structure in the settings page is deprecated and will be removed in v6.7.0.0.
    (Please refer to the changelog for a detailed list of associated deprecations).

Fixed bugs

  • NEXT-40478 - Elasticsearch indexing for orders for administration is really slow
  • NEXT-40385 - No optional config fields in Shopware 6.6.9.0 in theme.json
  • NEXT-40210 - admin watcher ignores HOST & PORT env
  • NEXT-40100 - Struct clone behaviour causes errors with readonly properties
  • NEXT-40084 - item in warehouse not available when stock 0
  • NEXT-40053 - Promotion action buttons have initialization issues and send incorrect entity IDs
  • NEXT-39764 - Cloud Very long loading & crash from website with many promotion codes
  • NEXT-39718 - Restoring currency inheritance breaks advanced pricing
  • NEXT-39645 - A11y: Subscriptions - lacking descriptive page titles
  • NEXT-39643 - A11y: Employee Management - error handling on detail pages for VO

Credits

Thanks to all diligent friends for helping us make Shopware better and better with each pull request!

More resources

Get in touch

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