Compatibility
- Verified against Shopware 6.7.13.0.
layout/breadcrumb.html.twigis unchanged upstream between 6.7.11.1 and 6.7.13.0 and every overridden block still exists. - Support Shopware's
BREADCRUMB_REWORKfeature flag inlayout/breadcrumb.html.twig,page/content/index.html.twigandpage/content/product-detail.html.twig. The flag is off by default in 6.7, so the legacysw_breadcrumb_fullpath is unchanged; when the flag (orv6.8.0.0) is active the override readspage.breadcrumb/breadcrumbCollectionand resolves category URLs viaseoUrl('frontend.navigation.page', ...). - Read
seoUrlandshouldOpenInNewTaboff the category entity instead of thecategory_url()/category_linknewtab()Twig functions.CategoryUrlExtensionregisters no functions once thev6.8.0.0flag is active, and Twig resolves function names at compile time, so the breadcrumb template raised aSyntaxErrorunder that flag even though the legacy branch was unreachable. Behaviour is unchanged: for aSalesChannelCategoryEntitythose functions returned exactlygetSeoUrl()andshouldOpenInNewTab(). - Iterate
searchResult.entitiesinstead ofsearchResultin the product listing override. Shopware 6.7.13 gatedEntitySearchResult::getIterator()behind av6.8.0.0deprecation, so direct iteration emitted a deprecation notice on every listing render and raised a hard error under that flag. - Forward
referrerCategoryIdthrough the product card detail links incard/box-standard.html.twig, socore.listing.buildBreadcrumbByReferrerCategorycan build the product breadcrumb from the referring category.
Fixed
- Fix duplicated breadcrumb separators when
BREADCRUMB_REWORKis active - a trailing chevron on category pages and a doubled chevron before the product name on the detail page. The separator no longer depends on the deprecated upstreambreadcrumbKeysvariable andlayout_breadcrumb_placeholderblock. - Mark the decorative breadcrumb separators
aria-hidden="true". - Evaluate
switchtheme config variables through the existingbool()helper instead of> 0. Shopware's theme compiler dumps switch fields as the integers0/1, and0is truthy in Sass, so the bare truthy checks would have forced the badge outline, card border, product card protective frame and the product detail contact/buybox borders permanently on whenever a merchant switched them off.bool()also tolerates anullvalue, which> 0raised an "Undefined operation" Sass error on (STARCKE-140).