Release notes Shopware 6.7.2.0
Abstract
Shopware 6.7.2.0 focuses on performance, developer experience, and stability. Highlights include OpenSearch query and sorting optimizations, more efficient property filter loading, dynamic sidebar category loading, and improvements to the administration search indexing. This release adds new extension points (like Cart Rule Loader and Guest Logout events), the ability to use custom route names in the Storefront, additional endpoints in the Storefront OpenAPI schema, and UI extension points for sidebar apps. It also includes numerous bug fixes and quality-of-life improvements.
System requirements
- tested on PHP 8.2 and 8.4
- tested on MySQL 8 and MariaDB 11
Improvements
Performance Improvements
Multiple performance bottlenecks were resolved, mainly addressing negative performance impact with growing data sets.
Optimized OpenSearch Querying for product listing
The way that sorting is handled when using OpenSearch was greatly improved in cases where translated fields where used for sorting, e.g. product names.
Additionally, the queries were optimized to prevent nested queries, further improving performance. Overall, this can improve the OpenSearch query time by up to 85%.
Dynamic category level loading
The category tree's loading was changed so that the active levels for the sidebar navigation are loaded dynamically to always show available child categories, independently of the navigation depth
setting in the sales channel config.
This means that the navigation depth
setting is now mainly responsible for the header navigation depth. In cases where that setting was increased to support deeper nesting levels in the sidebar navigation, it can be set to a lower value again, which will positively affect performance.
Optimized property group loading
The way in which the property groups for listing filters are loaded was improved. This mainly involved optimizing the SQL queries to avoid pagination (which gets slower with more data) and perform fewer joins. Additionally, the sorting of the properties in the group was improved to use a more performant algorithm. This will improve the performance of loading the property filters by up to 50%, especially with a large number of property filters.
Efficiency Improvements
Lower memory footprint on data imports
Memory usage, especially when importing a lot of custom fields, could be greatly reduced by reusing dynamic field definition objects and more efficient validator constraint caching.
Additionally, a memory leak in HTMLSanitize was fixed, which increased memory usage the more sanitized fields were written in a single request.
This makes shopware more memory efficient, especially when writing bigger batches of data in a single request.
More efficient administration OpenSearch indexing
The indexing for the administration search indices on OpenSearch was improved to only reindex entities when search-relevant data was changed and not directly when any change happened to the entity.
Return address in documents
The option Display company
address in the Company settings
section of the document configuration is now split into Display return address
and Display company address
.
The former toggles the display of the return address above the customer address in the address block.
The latter toggles the display of the company address below the header on the right-hand side of the document.
Quality of Life Improvement: Administration forwards to the correct path after Login
When you open the administration with a deep link (e.g. to product list or order page), and you'll get redirected to the login first, you will now be forwarded to the original page you wanted to visit after sucessful login instead of always landing on the dashboard after login.
More custom field set support in Apps
Apps can now also register custom field sets for the Unit
and Newsletter Recipient
entities.
Better accessibility with ARIA labels
Slider links now include descriptive text that can be read by screen readers, making it easier for people with visual impairments to navigate your content.
Faster loading with fetchpriority
This improves the Largest Contentful Paint (LCP), an important metric for PageSpeed and Google’s Core Web Vitals.
In Adminstration panel, a new config setting for fetchpriority to image slider and image gallery in CMS configuration was added.
More control with configurable meta robots tags
Decide whether certain pages should be indexed by search engines or not. This gives you more flexibility and helps avoid issues like duplicate content.
It is also possible to override global settings for individual categories, landing pages etc. Open the respective entity, go to SEO tab and set the Meta robots option as needed.
More improvements
- App user change – API requests can now be executed in the context of a specific app user.
- Storefront OpenAPI schema – extended with additional GET methods.
- Symfony profiler – cart data is now visible in the profiler.
- Cart rule loader extension event – new event for extending cart rules.
- Custom route names – custom route names for storefront routes are now possible.
- App custom fields – support for the unit and newsletter_recipient entities.
- New commands – commands to schedule and deactivate tasks.
- Guest logout manipulation event – new event for guest logout processes.
- Sidebar apps in CMS detail pages – apps can now also be integrated into CMS detail pages.
Please checkout the changelog for more detailed information.
Fixed bugs
- #11769 Input quantity for extended prices incorrect
- #11804 Fix display of line item taxes with tax provider
- #11420 Fix navigation cache invalidation
- #11654 Fixing document squished line item listing
- #11906 Fix forwarding after login
- #10721 Properly align logout link with icon
- #11731 Fix login page redirect parameters
- #11314 config endpoints cached indefinitely
Click to see more fixed bugs
- #10491 Implemented a command to download and install translation
- #10528 Remove superfluous vat-id block from address-form.html.twig
- #10530 Allow admininistration scripts being provided by bundles
- #10556 min search term is now configurable
- #10751 Add search sorting for live search
- #10866 Allow Storefront routes without prefix
- #10870 Improve basic captcha accessibility
- #10878 Fix order version for determining credit notes when creating credit notes
- #10959 Use createdAt column as default for product list sort
- #11083 Reduce event bus usage for AddCacheTagEvent
- #11108 AR Placement
- #11139 refresh measurement units
- #11167 category path does not display
- #11188 Reset UpdatedByField for updates via API
- #11191 Implement soft purge HTTP cache functionality
- #11202 Change class constants to self classes
- #11205 Deprecated EntityDefinition constructor
- #11215 Restore ResetInterface support in long-running runtimes
- #11222 Update DBAL to 4.3.1
- #11223 Copy app snippets after system language change
- #11282 add cart rule loader extension event
- #11297 Replace AddCacheTagEvent's with CacheTagCollector addTag
- #11327 Add missing context config setting access optional chaining
- #11341 Correctly delete bearerAuth cookie from base path in administration
- #11373 Fix sidebar SDK handlers in Meteor page
- #11391 Add missing ApiAware flag to CmsBlock & CmsSection id's
- #11409 Add missing timezone option for TimeRangeRule
- #11410 Allow child classes for getting extension of type
- #11417 Fix media thumbnail sizes with mediaThumbnailSizeId
- #11466 Allow for LineItemFactoryHandler decoration
- #11485 Skip persisting admin snippets for non-existing locales
- #11491 Remove FK delete exception handler
- #11492 Fix ThemeCompiler side effects
- #11510 allow configuring the minimum search term length
- #11515 Fix reset active apps after app deactivation
- #11521 fix: improve check for visibility parameter check, fixes #11521 (#11565)
- #11551 Increased minimum required version of MySQL database
- #11551 Symfony components updated
- #11566 Add Design Tokens to the Smart Bar
- #11578 Add dark mode support to sidebar
- #11582 Added dark mode support to select components
- #11583 Fix state machine history FK constraint to integration
- #11599 Change createdComponent back to being sync
- #11604 Copy context rules to ESI request context
- #11608 Add app user ID header and fix domain exception patterns
- #11633 Fix mediaThumbnailSizeId not null in MediaThumbnailEntity
- #11636 Fix service menu wrap
- #11650 Fix ScriptLoader loading invalid cache paths
- #11653 Add aria-label to image slider links
- #11670 Add commands to schedule and disable scheduled tasks
- #11702 sorting of properties
- #11725 Fix guest logout manipulation possibility
- #11726 Add cart data to the symfony profiler
- #11730 Fix CMS block slot config error highlighting
- #11739 Stale cache over queue
- #11748 Improve property group loading performance
- #11759 Add Dark Mode support to modals
- #11768 Fix CMS content slot overrides for modules and languages
- #11773 Cart persistence behaviour
- #11778 Opimize CMS create wizard page type selection spacing
- #11781 Load all category levels for current path
- #11782 Fix advanced prices for fixed item price discount
- #11783 Adjust MatrixElement extends Struct for StoreApi
- #11785 Remove assign override of MediaThumbnailEntity
- #11788 Fix advanced prices for fixed item price discount
- #11792 Event interfaces for extension events
- #11798 Download translations to private filesystem
- #11806 Fix duplicate address display in sw-order-detail
- #11822 Fix CMS block component rendering
- #11823 optimize fetching product properties
- #11828 Fix recursive cart lock usage
- #11832 Added Design Tokens to the dashboard
- #11852 Remove superfluous overrides of id methods in entities
- #11866 Load all hookable entities dynamically by checking shopware.entity.hookable tag
- #11867 Fix webhook deactivation on failure
- #11874 Enable sidebar apps in cms detail page
- #11915 Allow autoconfigure attribute on attribute entities
- #11916 Fix zoom functionality to prevent a large window
- #11944 Make navbar template extendable
- #11955 Fix sidebar renderer width reset on close
- #11956 Add Design Tokens to sw-switch
- #11974 Add Design Tokens to grid related components
- #11974 Add Design Tokens to the Tabs Component
- #11986 Add Design Tokens to help center and shortcut overview
- #11986 Add Design Tokens to the tooltip
- #11987 Fix storage names of category runtime fields
- #12023 Add loading of active category in category tree on change
- #12037 Make AsyncAwsS3WriteBatchAdapter batch size configurable
- #12040 Fix confusing error on user create in admin
- #12046 Remove usage of imagedestroy
- #12047 Use bootstrap gutter variables for product-listing grid
- #2938 Fix tax rounding errors for percentage price calculation
- #4053 Adds MIN() Function to cheapestPrice Accessor
- #5418 Add configuration for meta tag "robots"
- #9614 Replace breadcrumb separator by the bootstrap default solution
- #9635 Add custom field entities (unit and newsletter_recipient) to apps
- #10707 Fix Elasticsearch Datetime format
- #10720 Update MatchAllLineItemsRule to support multiple item types
- #11001 Show relevant products without previews when searching
- #11074 Fix admin es search for document number does not return any result
- #11128 Improve admin search on searching for numeric tokens
- #11130 Optimize storefront elasticsearch
- #11204 Change main category seo url of a variant leads to an empty for its parent
- #11528 Show correct exception when updating an entity with a foreign key constraint fails
- #11534 Added document return address display option
- #11568 Remove language switch from import/export
- #11619 Fix SeoUrl generate database-error when the url changes
- #11800 fix overwrite slot config
- #11895 Improve admin search indexing event handling and iterator versioning
- #11899 Updated ignored URL parameters for http cache
- #12011 Fix issue with theme config update if fields got removed
- #5868 fix product media import with whitespace in url
- #5913 Disallow usage of file_exists
- #8584 Error when trying to remove "Main category" for product
- #10897 Include GET methods to store API schema where POST and GET supported
- #11085 Fix primary connection is not working when replica configured
- #11106 Fix Quote counts up the order number range
- #11110 Fix SystemConfigService::deleteExtensionConfiguration removes only global configuration
- #11194 Add fetchpriority attribute to first image slider and image gallery item
- #11397 Make sidebar expandable by dragging
- #7881 Add headers to vary Storefront API caches based on context vars
Credits
Thanks to all diligent friends for helping us make Shopware better and better with each pull request!
More resources
- Detailed diff on Github to the former version
- Changelog on GitHub for this version.
- Release News corporate blog post
- Installation overview
- Update from a previous installation
Get in touch
Discuss about decisions, bugs you might stumble upon, etc in our community discord. See you there 😉