This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+13 more
Affected surfaces
Summary
AI summaryBroad release touches Critical Fixes, fix, feat, and API.
Full changelog
System requirements
- tested on PHP
8.2,8.4and8.5 - tested on
MySQL 8andMariaDB 11
Features
[Experimental] MCP Server for AI tool integration
Shopware now includes an experimental MCP (Model Context Protocol) server that lets AI clients like Claude Desktop or Cursor interact with your Shopware instance through a standardized protocol.
The server exposes the full MCP capability set:
- Tools for entity management (search, read, create, update, delete), system configuration, state machine transitions, cache management, and storefront product search with sales channel context.
- Prompts that give the AI client context about Shopware's data model, criteria format, and best practices.
- Resources that expose static reference data (entity list, sales channels, state machines, business events, flow actions) as readable URIs.
All operations respect the authenticated user's ACL permissions and integrate with the Admin API authentication. Integration credentials can be passed directly via sw-access-key and sw-secret-access-key headers. No separate OAuth token exchange is required. Per-integration allowlists are configurable under Settings -> Integrations to limit which tools, prompts, and resources a given client can see.
To enable this feature, set the MCP_SERVER feature flag to true. The MCP endpoint is available at /api/_mcp and uses the Streamable HTTP transport. Plugins register additional MCP capabilities by tagging services with mcp.tool, mcp.prompt, or mcp.resource. Apps can declare them in their app manifest.
A debug:mcp CLI command is available to list all registered MCP tools, prompts, and resources.
API
New foreign key resolvers for the Sync API
The Sync API now ships seven additional foreign key resolvers, allowing payloads to reference entities by stable human-readable keys instead of UUIDs:
currency.iso_code— resolves acurrencyby itsisoCode(e.g.EUR).locale.code— resolves alocaleby itscode(e.g.en-GB). Theen_GBunderscore variant is also accepted.payment_method.technical_name— resolves apayment_methodby itstechnicalName.shipping_method.technical_name— resolves ashipping_methodby itstechnicalName.document_type.technical_name— resolves adocument_typeby itstechnicalName.salutation.salutation_key— resolves asalutationby itssalutationKey(e.g.mr).tax.tax_rate— resolves ataxby itstaxRate. Becausetax_rateis not unique, the resolver only resolves a value when exactly one tax row matches the given rate; ambiguous rates are left unresolved (combine withnullOnMissing: trueif appropriate).
Use these inside a Sync payload anywhere a UUID is expected, e.g. {"currencyId": {"resolver": "currency.iso_code", "value": "EUR"}}.
Mail template preview and send routes support richer rendering context
The mail template Admin API now exposes dedicated preview and send routes:
/api/_action/mail-template/simulate/api/_action/mail-template/preview/api/_action/mail-template/get-data-and-send/api/_action/mail-template/available-variables
The preview routes support sales-channel-aware rendering.
/api/_action/mail-template/preview accepts salesChannelId, includeHeaderFooter, and strictRendering, and /api/_action/mail-template/simulate accepts salesChannelId and strictRendering.
This allows Administration extensions and custom tooling to preview the final mail output, including sales-channel-specific headers and footers, against the same rendering context used for sending.
/api/_action/mail-template/get-data-and-send lets callers resolve a persisted mail template together with entity-based template data before sending.
/api/_action/mail-template/available-variables exposes the variable tree for a business event so extensions can build mail-template editing and preview tooling without hardcoding the available data shape.
The /api/_action/mail-template/send payload now also has a first-class extensions bag for custom mail data.
Arbitrary unknown top-level keys are still forwarded for backwards compatibility in 6.7, but they are deprecated and will stop being forwarded in Shopware 6.8.
Core
Backward compatible invalid locales
Added and deprecated BackwardCompatibleNumberFormatter to temporarily allow invalid locale strings without throwing exceptions in PHP >=8.4. It will be removed in Shopware 6.8.
Configurable order deep link expiry
The number of days an order can be accessed via deep link is now configurable via shopware.yaml:
shopware:
order:
deep_link:
expire_days: 30
Technical media associations can be ignored by media:delete-unused
Plugins can now mark technical media associations with the new DAL flag IgnoreInUnusedMediaSearch.
This prevents media:delete-unused from treating metadata-only extensions as real media usage and helps avoid false negatives when removing unused files.
Third-party developers should add this flag to media associations that store technical metadata but do not represent an actual assignment of the media file.
State machine transitions are locked per entity
State machine transitions now acquire a short-lived lock per entity and context version while the current state is read and the transition history is written.
This prevents concurrent calls to StateMachineRegistry::transition() from creating duplicate history entries for the same entity transition.
Extensions that use the registry automatically benefit from the lock; direct SQL or DBAL writes to state fields remain outside this protection.
Deprecation of RegisterScheduleTaskMessage
The RegisterScheduleTaskMessage class and the accompanying message handler RegisterScheduledTaskHandler is deprecated and will be removed in Shopware 6.8.0.0, as the message wasn't dispatched anymore.
If you dispatched that message manually, you should call the TaskScheduler::registerTask() method directly instead.
Plugin snippet files are no longer silently dropped when any translation is installed
Plugin snippet files (.json files shipped in Resources/snippet/) were being skipped for all locales as soon as a core translation for any single locale was installed via the translation installer.
Installing pl-PL for one plugin would cause de-DE, en-GB, and every other locale to lose that plugin's translations entirely, even though no core translation for those locales existed.
The guard in SnippetFileLoader now checks whether a core translation exists for the specific locale being loaded, not for the plugin as a whole.
If you have decorated AbstractTranslationLoader, override the new pluginTranslationExistsForLocale(Plugin $plugin, string $locale): bool method to provide locale-aware behaviour.
The old pluginTranslationExists(Plugin $plugin) is deprecated and will be removed in v6.8.0.
Composer-managed plugins in TestBootstrapper::addActivePlugins()
TestBootstrapper::addActivePlugins() can now be used with Composer-managed plugins installed below vendor/.
Plugins no longer need to be copied into custom/plugins or custom/static-plugins just to be installed and activated during test bootstrap.
When TestBootstrapper::getPluginPath() or getClassLoader() is used without bootstrapping the full application, local plugins below custom/plugins and custom/static-plugins are still resolved from the filesystem.
This keeps static analysis and other tooling that only needs plugin paths or autoload-dev registration working without a database-backed kernel.
Requirement-aware plugin installation order
plugin:install now orders the selected plugins by their Composer plugin requirements before installation.
When one selected plugin requires another selected plugin package, the required plugin is installed first.
This ordering only applies to plugins that are known before the command starts.
The command does not reload Composer's autoloader while it is running.
If installing one plugin also installs new PHP packages, plugins installed afterwards in the same command cannot use those packages yet.
Run those installs in separate CLI calls when a plugin depends on code that another plugin adds through Composer during installation.
Listing configured translations via translation:list
A new translation:list console command prints every locale configured for translation:install / translation:update, including its localized name, English name, and the timestamp of the last installed Crowdin snapshot.
translation:install without --all or --locales now drops into an interactive multi-select prompt with autocompletion over the available locale codes, instead of throwing an exception.
Support for pseudo-locales in translation:install
The new SnippetPatterns::ALLOWED_PSEUDO_LOCALES and SnippetPatterns::PSEUDO_LOCALE_TERRITORY constants register Crowdin pseudo-languages (e.g. ach-UG) as valid translation targets for in-context proofreading and translatability audits.
Pseudo-locales bypass Symfony Intl validation in Language::validateLocale and TranslationLoader::getLocalePath, and a missing locale entity is auto-created on install with a display name from the constant map and a fixed Pseudo Language territory.
Administration
Block renaming
Due to misleading block names, the following blocks have been deprecated and will be removed in v6.8.0. Use the respective replacements instead:
sw_settings_listing_option_base_smart_content->sw_settings_listing_option_base_contentsw_settings_listing_option_base_smart_content_general_info->sw_settings_listing_option_base_content_general_infosw_settings_listing_option_base_smart_bar_actions_grid->sw_settings_listing_option_base_content_criteria_gridsw_settings_listing_option_base_smart_bar_actions_grid_delete_modal->sw_settings_listing_option_base_content_delete_modal
Mail template preview is now sales-channel-aware and uses isolated HTML rendering
The mail template detail page can now preview mails with the selected sales channel and its configured mail header and footer.
This helps developers and merchants validate the final rendered output more accurately, especially for document mails and installations with channel-specific branding.
The HTML preview is now rendered in a sandboxed iframe instead of being injected directly into the Administration DOM.
This keeps the preview close to the actual mail output while reducing the risk of script execution from rendered template content.
Custom fields respect read-only permissions in Administration detail views
Custom fields on category, landing page, sales channel, customer address, and order address detail views are now disabled when the current user only has read permissions.
Fixed "Last Quarter" timeframe returning the wrong year in sw-date-filter
Selecting the "Last Quarter" timeframe in any listing's date filter (orders, documents, customers, etc.) between January and March now produces a three-month range in the previous year instead of a ~15-month range that spanned both years.
The end boundary is now derived from the quarter's start year rather than the current year.
Admin menu flyout no longer overflows the viewport
When the sidebar is collapsed, hovering a menu entry near the bottom of the sidebar could cause the flyout submenu to extend beyond the viewport, making lower entries inaccessible.
The flyout now calculates a dynamic max-height from the remaining viewport space and scrolls vertically when its content exceeds that limit.
Meteor Component Library updated to 4.28.6
The Administration now uses Meteor Component Library 4.28.6.
With this update, disabled Meteor switch fields in system configuration can now unlink inherited sales channel values.
Previously, the switch field itself was disabled as expected, but its inheritance control was disabled as well, preventing merchants from overriding inherited values for that sales channel.
Administration sidebar off-canvas closes on mobile navigation
The Administration sidebar off-canvas now closes reliably on very small viewports after selecting a navigation entry, clicking outside the sidebar, or changing routes.
Fix theme manager inheritance for boolean fields
Switch and checkbox fields in theme configuration now render and handle inheritance consistently. Before they wouldn't have shown the inheritance switch.
Also the checkbox field is now positionally aligned with the other components.
Resolving download errors by renaming media
When merchants rename a media file, its URL automatically updates so they can download it without issues.
Storefront
New Component System
We introduced a new component system to the Storefront, which makes it easier to create reusable templates. It is one foundation of a new content system, which will be released at a later stage, but components can also be used anywhere in existing templates. The component system is based on Twig UX components, plus some additional features like SCSS and JS handling for your components.
To dive into the full possibilities, please refer to the official documentation.
New Dev-Server for development based on Vite
With the new component system we introduced a separate build process based on Vite. With that there is also a new dev-server feature available that also supports usual theme file updates for SCSS and JS. It offers a better developer experience, because it does not need a proxy. You can simply work in your normal Storefront while the dev-server is active.
composer storefront:dev-server
The current composer watch:storefront command is deprecated for the next major version. Use the new dev-server instead.
Theme config available as native CSS custom properties
With the new content system we want to move away from the PHP-based SCSS compilation. As a first step, we made the theme configuration available as native CSS custom properties. You can start using them instead of SCSS variables for colors and other visual settings in CSS. The CSS custom properties are available under the same name as the SCSS variables.
Example
.btn-primary {
background: var(--sw-color-brand-primary);
}
Available are all config fields that does not have set scss: false in the theme configuration.
Single file references in theme.json
The theme.json file now supports single file references, allowing you to include individual files from other bundles rather than pulling in an entire theme or plugin. This gives themes fine-grained control over exactly which files are compiled.
This is available for both style and script entries:
Bundle-relative references — Include a single specific file from another bundle or theme using @BundleName/path/to/file:
{
"style": [
"@MyTheme/app/storefront/src/scss/overrides.scss",
"@MyTheme"
],
"script": [
"@MyPlugin/app/storefront/dist/storefront/my-plugin.js",
"@Plugins"
]
}
New global JavaScript event system
With the new component system we also start to improve the general possibilities in the Storefront. One of these improvements is a new global event system that is available via a new central Shopware object. This system is easier to use than the instance scoped events from the current JS plugin system. The event system is based on the native Node event emitter and can be used in a similar way. You will find some additional features, like interceptable events which can be used to hook into certain methods, like changing request parameters before they get send. We want to offer this as a new extension system, especially for the new component system.
window.Shopware.emit('Filter:Change', { foo: 'bar' });
window.Shopware.on('Filter:Change', ({ foo }) => {
// do something
});
For more detailed information, refer to the documentation.
New plugin manager function to call plugin methods
We added a new method to the Storefront plugin manager which allows to call a specific plugin method on all existing instances of that plugin.
window.PluginManager.callPluginMethod(pluginName, methodName, ...args)
Single-hit search redirect now matches EAN and manufacturer number
The storefront search already redirected to the product detail page when a search term exactly matched a product's number and produced a single result.
The same redirect now triggers when the term exactly matches the product's ean or manufacturerNumber.
The condition still requires exactly one matching product, so listings with multiple hits remain unaffected.
The set of fields that trigger the redirect is configurable via the shopware.storefront.redirect_on_single_hit_fields container parameter (defaults to ['productNumber', 'ean', 'manufacturerNumber']).
Any string-valued property declared on ProductEntity may be configured — unknown or non-string properties are skipped.
Set the parameter to a narrower list (for example ['productNumber']) to restore the previous behaviour.
App System
Hosting & Configuration
Local filesystem permission enforcement can be disabled
Local filesystem adapters now support config.enforce_file_permissions: false to preserve existing file permissions after writes.
This is useful for installations that manage permissions outside Shopware, for example with ACLs or shared deployment users, where writes are allowed but chmod() calls should not be enforced by the application.
Partial filesystem visibility overrides preserve adapter configuration
Partial filesystem visibility overrides now keep the previously configured adapter type and config.
Replacing the adapter config block still replaces it as a whole, so adapter-specific config from a previous definition is not mixed into the new adapter.
Critical Fixes
Transient Elasticsearch outages no longer break order placement
ElasticsearchHelper::allowIndexing() now catches transport-level exceptions thrown from Client::ping() (e.g. DNS failures, connection refused, timeouts) and routes them through logAndThrowException().
Previously, a transient Elasticsearch / OpenSearch outage during checkout caused a ConnectException to bubble out of ProductUpdater::update() (triggered by ProductStockAlteredEvent after stock decrement), aborting the request after the order had already been written to the database. With SHOPWARE_ES_THROW_EXCEPTION=0, the indexing call is now logged at critical and skipped for that request; order placement completes normally. With SHOPWARE_ES_THROW_EXCEPTION=1 (the default) behavior is unchanged — the exception is still re-thrown.
What's Changed
- fix: admin menu flyout overflowing viewport by @zaifastafa in https://github.com/shopware/shopware/pull/16219
- fix: link newsletter recipient emails to detail page by @larskemper in https://github.com/shopware/shopware/pull/16438
- fix: backwards compatible invalid locale by @dneustadt in https://github.com/shopware/shopware/pull/16422
- fix: sw-date-filter lastQuarter end date uses wrong year in Q1 by @zaifastafa in https://github.com/shopware/shopware/pull/16380
- fix: Add upcoming release to release info by @mitelg in https://github.com/shopware/shopware/pull/16473
- fix: skip product analytics test for lower shopware versions by @frobel in https://github.com/shopware/shopware/pull/16469
- fix: Move content of release info to correct section by @mitelg in https://github.com/shopware/shopware/pull/16480
- fix: preserve explicitly provided shipping address salutation on registration by @lernhart in https://github.com/shopware/shopware/pull/16468
- feat: system check invalid locales by @dneustadt in https://github.com/shopware/shopware/pull/16423
- fix: order bulk edit ui bugs by @larskemper in https://github.com/shopware/shopware/pull/16394
- fix: cleanup dashboard loading state by @larskemper in https://github.com/shopware/shopware/pull/16418
- fix: media thumbnail renaming with duplicate paths by @dneustadt in https://github.com/shopware/shopware/pull/16440
- fix: import with configurated CDN and non-seekable streams by @DennisGarding in https://github.com/shopware/shopware/pull/16347
- fix: ignore stale admin search preference fields by @jleifeld in https://github.com/shopware/shopware/pull/16178
- feat: make order deep link expiry days configurable via shopware.yaml by @LiaraAlis in https://github.com/shopware/shopware/pull/16436
- feat(agentic-commerce): OpenAi config migration from plugin by @marcelbrode in https://github.com/shopware/shopware/pull/16514
- refactor: token usage in Checkout domain by @mstegmeyer in https://github.com/shopware/shopware/pull/16446
- fix: Add pointer events property to overlay by @alexdumea in https://github.com/shopware/shopware/pull/16540
- fix: extended associations prevent the deletion of unused media by @buzyka in https://github.com/shopware/shopware/pull/16470
- fix: refine dashboard by @larskemper in https://github.com/shopware/shopware/pull/16550
- fix: migrate legacy default rule condition structure by @larskemper in https://github.com/shopware/shopware/pull/16437
- fix: release notes order for 6.7.11.0 by @mstegmeyer in https://github.com/shopware/shopware/pull/16547
- feat: implement document generation v2 architecture foundation by @larskemper in https://github.com/shopware/shopware/pull/16296
- fix: failing npm audit job by @jleifeld in https://github.com/shopware/shopware/pull/16546
- fix: update meteor-component-library version and add test for inheritance removal in disabled fields by @jleifeld in https://github.com/shopware/shopware/pull/16502
- feat(eslint): Implement ESLint for storefront admin-modules by @marcelbrode in https://github.com/shopware/shopware/pull/16432
- fix: sso user invitation mail fallback language by @dneustadt in https://github.com/shopware/shopware/pull/16522
- fix: sales channel specific static system config by @dneustadt in https://github.com/shopware/shopware/pull/16466
- fix: auto select correct mail template for ZUGFeRD document types by @larskemper in https://github.com/shopware/shopware/pull/16460
- fix: encode logo urls from document config by @larskemper in https://github.com/shopware/shopware/pull/16462
- feat: Add presign url for direct upload by @alexdumea in https://github.com/shopware/shopware/pull/15140
- fix: raise PHPStan memory limit to 4G by @MartinKrzykawski in https://github.com/shopware/shopware/pull/16576
- fix: recaptcha submit loader by @lernhart in https://github.com/shopware/shopware/pull/16543
- fix: keep nullable rows in negated equals-any filters by @tamvt in https://github.com/shopware/shopware/pull/16370
- fix: prevent product bulk edit from clearing active state by @nguyenquocdaile in https://github.com/shopware/shopware/pull/16488
- fix: twig variable parser improvements by @dneustadt in https://github.com/shopware/shopware/pull/16504
- fix: flyout nav-link hover style by @lacknere in https://github.com/shopware/shopware/pull/16155
- fix: JSON-LD misses description and image on variantProduct by @amenk in https://github.com/shopware/shopware/pull/16523
- fix: keep shipping tax when promotion zeroes the cart total by @untilu29 in https://github.com/shopware/shopware/pull/16520
- feat: delivery cost route by @En0Ma1259 in https://github.com/shopware/shopware/pull/15827
- fix: make landing page tree not sortable by @dneustadt in https://github.com/shopware/shopware/pull/16606
- fix: Handle unknown scheduled class names gracefully, to improve blue… by @keulinho in https://github.com/shopware/shopware/pull/16608
- fix: Improve cart helper form accessibility by @En0Ma1259 in https://github.com/shopware/shopware/pull/16047
- fix: use translated page name in category/product layout card by @dneustadt in https://github.com/shopware/shopware/pull/16616
- feat(services): set timeout for http client by @fschmtt in https://github.com/shopware/shopware/pull/16602
- fix: make administration search filter dropdown scrollable by @nguyenquocdaile in https://github.com/shopware/shopware/pull/16596
- fix: Add sizes to slider image thumbnails by @alexdumea in https://github.com/shopware/shopware/pull/16612
- fix: remove empty directories on media delete by @dneustadt in https://github.com/shopware/shopware/pull/16600
- fix: footer shopware logo in safari/chrome by @BrocksiNet in https://github.com/shopware/shopware/pull/16639
- fix: restore base unit inheritance switch by @rittou in https://github.com/shopware/shopware/pull/16406
- fix: admin inheritance switch not available for switch and checkbox components in theme config fields by @gweiermann in https://github.com/shopware/shopware/pull/16584
- fix: state machine lock by @lernhart in https://github.com/shopware/shopware/pull/16580
- feat: custom detail rule assignment routes by @larskemper in https://github.com/shopware/shopware/pull/16471
- fix: export temporary url file download missing filename by @MalteJanz in https://github.com/shopware/shopware/pull/16632
- feat: Add test plan issue automation by @yusufttur in https://github.com/shopware/shopware/pull/16381
- fix: out-of-range listing pagination returns 404 / 301 instead of empty 200 by @MartinKrzykawski in https://github.com/shopware/shopware/pull/16575
- fix: duplicate Sales Channel collection API aliases by @tamvt in https://github.com/shopware/shopware/pull/16345
- refactor: Remove leftover SCSS from the address card refactoring by @aragon999 in https://github.com/shopware/shopware/pull/16283
- feat: enable custom fields to respect read-only permissions in various administration views by @jleifeld in https://github.com/shopware/shopware/pull/16516
- fix: missing order primary refs by @untilu29 in https://github.com/shopware/shopware/pull/16611
- fix: admin sidebar not hiding on small screens by @davidtraum in https://github.com/shopware/shopware/pull/16484
- fix: Rounding issue in price calculation by @jmatthiesen81 in https://github.com/shopware/shopware/pull/14368
- feat: add invoice data provider by @larskemper in https://github.com/shopware/shopware/pull/16582
- fix(agentic-commerce): Product images are now allowed to have spaces in it by @marcelbrode in https://github.com/shopware/shopware/pull/16636
- fix(snippets): Improve composition by @marcelbrode in https://github.com/shopware/shopware/pull/16688
- feat: refactor mail template preview/send flow by @jozsefdamokos in https://github.com/shopware/shopware/pull/13722
- feat: Add native HTML
patternattribute validation support by @aragon999 in https://github.com/shopware/shopware/pull/14819 - fix: ruleCondition explicit update value to null by @MalteJanz in https://github.com/shopware/shopware/pull/16669
- fix: add sales channel tracking customer privilege by @dneustadt in https://github.com/shopware/shopware/pull/16691
- fix: invalid webhook cache state by @AydinHassan in https://github.com/shopware/shopware/pull/16694
- fix: keep insert events during version merge by @keulinho in https://github.com/shopware/shopware/pull/16675
- fix(storefront): update pack unit label on quantity change by @nguyenquocdaile in https://github.com/shopware/shopware/pull/16617
- fix: rule duplication infinite loading by @larskemper in https://github.com/shopware/shopware/pull/16717
- fix: keep validation icon margin consistent across input widths by @larskemper in https://github.com/shopware/shopware/pull/16719
- fix: Fix cannot download media after renaming media by @quynhnguyen68 in https://github.com/shopware/shopware/pull/16300
- Skip
needs-triageauto-labeling for[Test Plan]issues by @Copilot in https://github.com/shopware/shopware/pull/16726 - fix: reload customer group after save by @dneustadt in https://github.com/shopware/shopware/pull/16723
- fix: filter active categories in product export by @dneustadt in https://github.com/shopware/shopware/pull/16713
- feat: add html renderer by @larskemper in https://github.com/shopware/shopware/pull/16604
- fix: handle empty batch in media:delete-unused command by @MartinKrzykawski in https://github.com/shopware/shopware/pull/16747
- fix: allow TestBootstrapper to activate Composer plugins by @keulinho in https://github.com/shopware/shopware/pull/16674
- fix: allow selecting more promotion exclusions by @mstegmeyer in https://github.com/shopware/shopware/pull/16731
- fix: correct administration date filter criteria by @mstegmeyer in https://github.com/shopware/shopware/pull/16732
- fix: grant product_translation:read permission in sw-product ACL by @sydinh in https://github.com/shopware/shopware/pull/16690
- fix: non-interactive multi plugin install in testbootstrapper by @keulinho in https://github.com/shopware/shopware/pull/16765
- fix: non interactive installs in test bootstrapper by @keulinho in https://github.com/shopware/shopware/pull/16776
- feat: Implement translation list + Pseudo languages by @marcelbrode in https://github.com/shopware/shopware/pull/16755
- fix: match translated custom fields in dynamic product groups by @vintagesucks in https://github.com/shopware/shopware/pull/15807
- fix: allow merge theme config with null values by @dneustadt in https://github.com/shopware/shopware/pull/16720
- feat(services): commercial license webhook by @AydinHassan in https://github.com/shopware/shopware/pull/16635
- fix: Update rule collection after creating rule (#16146) by @daniel3010 in https://github.com/shopware/shopware/pull/16712
- fix: pay later after-order cart context by @Aliaaaam in https://github.com/shopware/shopware/pull/16789
- feat: add document configuration by @larskemper in https://github.com/shopware/shopware/pull/16638
- fix: skip local plugin snippet files per locale, not per plugin by @dgrothaus-sw in https://github.com/shopware/shopware/pull/16743
- feat: Refactor/token usage discovery platform by @taltholtmann in https://github.com/shopware/shopware/pull/16749
- fix: skip non-value snippet saves by @dneustadt in https://github.com/shopware/shopware/pull/16777
- fix: restore TestBootstrapper plugin path fallback by @keulinho in https://github.com/shopware/shopware/pull/16813
- fix: order ui filters race condition by @lernhart in https://github.com/shopware/shopware/pull/16708
- feat: redirect single-hit search on EAN and manufacturer number by @vienthuong in https://github.com/shopware/shopware/pull/16509
- fix: Add max-width to text element by @alexdumea in https://github.com/shopware/shopware/pull/16814
- fix: Manufacturer's page cannot be accessed. by @nguyenytran in https://github.com/shopware/shopware/pull/16453
- fix: password to long message by @FlorianKe in https://github.com/shopware/shopware/pull/16666
- fix(admin): restore text-editor toolbar contrast and disabled/active … by @taltholtmann in https://github.com/shopware/shopware/pull/16833
- fix(cms): Improve alignment behaviour by @marcelbrode in https://github.com/shopware/shopware/pull/16831
- fix: Disable empty value form type by @alexdumea in https://github.com/shopware/shopware/pull/16837
- fix: wrap review and revocation form fields in row by @vintagesucks in https://github.com/shopware/shopware/pull/16810
- fix(admin): set initial pagination limit for customer addresses association by @daniel3010 in https://github.com/shopware/shopware/pull/16829
- fix: block names in listing option settings by @lacknere in https://github.com/shopware/shopware/pull/16763
- fix: correct customer default address detail routes by @mstegmeyer in https://github.com/shopware/shopware/pull/16729
- fix: sidebar renderer z-index by @dfrancos-hub in https://github.com/shopware/shopware/pull/16852
- fix: lookup sales channels with punycode host by @dneustadt in https://github.com/shopware/shopware/pull/16806
- fix: translate shipping validation message in subscription checkout (#15719) by @daniel3010 in https://github.com/shopware/shopware/pull/16804
- fix(snippets): Remove unused snippets by @marcelbrode in https://github.com/shopware/shopware/pull/16878
- feat: NewsletterStatus schema property by @mdanilowicz in https://github.com/shopware/shopware/pull/16751
- fix: escape custom field names in unused media subscriber by @dneustadt in https://github.com/shopware/shopware/pull/16854
- feat: emit product search events from search widget by @bubleg in https://github.com/shopware/shopware/pull/16834
- feat: move app state changes into lifecycle persisters by @AydinHassan in https://github.com/shopware/shopware/pull/16864
- feat: Storefront Components by @Phil23 in https://github.com/shopware/shopware/pull/16486
- feat: add foreign key resolvers for the Sync API by @shyim in https://github.com/shopware/shopware/pull/16615
- fix: restrict flow scope rules by @larskemper in https://github.com/shopware/shopware/pull/16881
- fix: fix remaining duplicate API aliases by @keulinho in https://github.com/shopware/shopware/pull/16858
- feat: update store-api OpenAPI spec to reflect actual implementation by @socrec in https://github.com/shopware/shopware/pull/16693
- feat(mcp): Introduce Model Context Protocol (MCP) by @BrocksiNet in https://github.com/shopware/shopware/pull/15346
- fix: Remove obsolete composer.json file by @mitelg in https://github.com/shopware/shopware/pull/16903
- fix: admin sw-data-grid cell-value letter overflow hidden under text-box by @DerKaito in https://github.com/shopware/shopware/pull/16441
- fix: Remove obsolete func_get_arg handling by @En0Ma1259 in https://github.com/shopware/shopware/pull/16859
- fix: allow disabling local filesystem permission enforcement by @keulinho in https://github.com/shopware/shopware/pull/16773
- feat: Expose custom SCSS variables in CSS by @Phil23 in https://github.com/shopware/shopware/pull/16899
- fix: discovery token migration regressions by @taltholtmann in https://github.com/shopware/shopware/pull/16888
- fix: handle missing CMS product stream references by @keulinho in https://github.com/shopware/shopware/pull/16781
- fix: restore nullable inherited filesystem config (backport: 6.7.11.x) by @shopware-octo-sts-app-2[bot] in https://github.com/shopware/shopware/pull/16954
- fix: catch transport exceptions in ElasticsearchHelper::allowIndexing (backport: 6.7.11.x) by @shopware-octo-sts-app[bot] in https://github.com/shopware/shopware/pull/16974
- fix: reuse existing media when importing app payment method icons (backport: 6.7.11.x) by @shopware-octo-sts-app-2[bot] in https://github.com/shopware/shopware/pull/17073
- fix: remove faker dependency from mail simulation (backport: 6.7.11.x) by @shopware-octo-sts-app-2[bot] in https://github.com/shopware/shopware/pull/17064
- fix(ci): missing git files in artifact (backport: 6.7.11.x) by @shopware-octo-sts-app[bot] in https://github.com/shopware/shopware/pull/17111
- fix: integration admin save (backport: 6.7.11.x) by @shopware-octo-sts-app-2[bot] in https://github.com/shopware/shopware/pull/17169
- fix: mapping definitions break mail simulation (backport: 6.7.11.x) by @shopware-octo-sts-app[bot] in https://github.com/shopware/shopware/pull/17208
- fix: restore third level admin menu flyout (backport: 6.7.11.x) by @shopware-octo-sts-app-2[bot] in https://github.com/shopware/shopware/pull/17331
New Contributors
- @LiaraAlis made their first contribution in https://github.com/shopware/shopware/pull/16436
- @buzyka made their first contribution in https://github.com/shopware/shopware/pull/16470
Full Changelog: https://github.com/shopware/shopware/compare/v6.7.10.2...v6.7.11.0
Get in touch
Discuss about decisions, bugs you might stumble upon, etc in our community discord. See you there ;)
Breaking Changes
- Deprecation of `RegisterScheduleTaskMessage` class; it will be removed in Shopware 6.8.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Shopware Community Edition
PHP based open source e-commerce software made in Germany.
Related context
Beta — feedback welcome: [email protected]