Implementing the GARAN Label and Legal Guarantee Notice in Shopware 6.6 and 6.7
Since Sunday, 27 September 2026, every online shop selling goods to consumers in the EU needs a new mandatory notice: the EU-wide harmonised graphic about the legal guarantee. On top of that, some products need the GARAN label for producer guarantees longer than two years.
Shopware built both into 6.7.14.0 and backported them to 6.6. That’s the good news. The less good news: the default implementation doesn’t cover every legal opinion, customised email templates don’t get any of it, and the first versions had bugs that were only fixed in later patches.
This post covers what the rules actually require, what Shopware handles for you and what you need to check. Status: 30 September 2026. I’m a developer, not a lawyer. The legal assessment for your shop should come from someone who is liable for it.
Two graphics, two different obligations
Implementing Regulation (EU) 2025/1960 defines two graphics. People tend to lump them together, but they are triggered by different things.
The harmonised legal guarantee notice (Annex I) reminds consumers that every good sold in the EU comes with at least two years of legal guarantee. Every B2C seller has to show it, regardless of their product range. In Germany this now sits in Art. 246a § 1 (1) no. 11 EGBGB: the information has to be given “in a prominent manner using the harmonised notice”.
The GARAN label (Annex II) is product-specific. It marks a commercial guarantee of durability from the producer, and only when three conditions are met at the same time: no additional cost, covering the entire good (not just the motor or the battery), and longer than two years. A guarantee of exactly two years doesn’t trigger anything. Neither does your own retailer guarantee.
The practical detail is in a subordinate clause of no. 11a EGBGB: the obligation applies when the producer grants the guarantee “and makes this information available to the trader”. The Commission’s guidelines are even more explicit: sellers should not actively seek such information from the producer, for example on product-specific websites. So you don’t have to research your entire catalogue. But you do have to process what your suppliers send you, and you need a way to get that data into the shop.
B2B shops that are clearly recognisable as such are out of scope. So is digital content.
What the guidelines say for online shops
The European Commission published practical guidelines in April 2026, along with the official files in all 24 official EU languages (PDF, PNG, JPG, SVG). For online display, the essentials are:
- Only use the colour RGB version. Black and white is reserved for physical shops.
- Keep the graphic legible at default display size. Don’t change colours, crop, stretch or add anything.
- Always provide a clickable link to the same destination as the QR code. For English that’s
europa.eu/youreurope/guarantees, for Germaneuropa.eu/youreurope/garantien. - According to the guidelines, both graphics also belong in the confirmation email.
For the legal guarantee notice, the Commission gives examples such as a line of text like “Your legal guarantee rights” in the header, on catalogue pages or at checkout, with the full notice appearing on the first click or mouseover.
For the GARAN label, a compact preview is allowed, the “nested label”. It only shows the guarantee duration and has to open the full label on the first click, mouseover or tap. The full label has three fields: duration in years (whole numbers or half years, written with a comma as in 2,5 or 4,5, nothing else), the producer’s brand and the model identifier. The label belongs with the respective product on the product page, and according to the guidelines it should appear again at checkout right before the order is placed.
And this is where it gets uncomfortable. In its FAQ dated 3 September 2026, the German law firm IT-Recht Kanzlei takes the stricter view: online, the legal guarantee notice has to be embedded directly as a graphic, without a link, mouseover or collapsible element. The Commission itself states in its guidelines that they only reflect its preliminary views and that only the Court of Justice of the EU can interpret EU law authoritatively. Until a court decides, there are two defensible positions. Which one you pick directly affects whether Shopware’s default implementation is enough for you.
Which Shopware version you need
The feature arrived with Shopware 6.7.14.0 (9 September 2026) and on the 6.6 branch with 6.6.10.24 (10 September 2026). It’s part of the core, so it’s included in the Community Edition too. You don’t need a plugin for it.
The first versions had gaps. The fixes are already out for 6.6, but not for 6.7:
| Problem | Fixed on 6.6 in | Fixed on 6.7 in |
|---|---|---|
| Variants don’t inherit “Show label in Storefront” from the parent product | 6.6.10.26 | 6.7.15.0 (not yet released) |
| GARAN label scaled up and cut off in the order confirmation email | 6.6.10.26 | 6.7.15.0 (not yet released) |
| No upper limit for the guarantee duration, no hint why the label doesn’t show | 6.6.10.26 | 6.7.15.0 (not yet released) |
| Invalid product reference can break the order history in the customer account | 6.6.10.27 | 6.7.15.0 (not yet released) |
According to their release notes, 6.7.14.1 and 6.7.14.2 contain no GARAN fixes. If you’re on 6.7 and have variants with a guarantee, you’ll have to set the switch on every variant individually until 6.7.15.0. On 6.6, install at least 6.6.10.27.
Shops below 6.6.10.24, including every 6.5 installation, don’t get the feature through the core. That leaves a plugin or your own template extension.
Step by step: setting up the legal guarantee notice
After the update the notice is already active. The system config core.cart.showLegalGuaranteeNotice defaults to true.
- In the Administration, open the cart settings, section “Checkout”. That’s where you’ll find the switch “Show legal guarantee notice on checkout page”. Using the sales channel selector at the top, you can override it per channel, for example for a pure B2B channel.
- Go through checkout to the order confirmation page. Shopware replaces the terms and conditions text there with the new snippets
checkout.confirmTermsTextWithGuaranteeandcheckout.confirmTermsTextModalWithGuarantee. They contain a link that opens a modal with the graphic in the storefront language, plus a link to the matching Your Europe page. For languages outside the EU, Shopware falls back to English. - Check whether your theme overrides the block
page_checkout_confirm_tos_control_labelor the old snippetscheckout.confirmTermsText/checkout.confirmTermsTextModal. If it does, you won’t see the link, and you’ll need to add the placeholders%legalGuaranteeNoticeModalTagOpen%and%legalGuaranteeNoticeModalTagClose%to your override. - Place a test order and look at the order confirmation (more on that below).
That’s the implementation that follows the Commission’s line: a link at checkout, the rest in a modal. If you follow the stricter view and want the graphic directly visible, Shopware ships the tool for that too. The Twig filter sw_legal_guarantee_notice renders the graphic for a language ID. In your own theme it looks roughly like this:
{% sw_extends '@Storefront/storefront/page/checkout/confirm/index.html.twig' %}
{% block page_checkout_confirm_tos_control %}
{{ parent() }}
{% if config('core.cart.showLegalGuaranteeNotice') %}
<div class="checkout-confirm-legal-guarantee-notice mt-3">
{{ context.languageId|sw_legal_guarantee_notice }}
<a href="{{ context.languageId|sw_legal_guarantee_notice_link }}"
target="_blank" rel="noopener">
More about your legal guarantee rights
</a>
</div>
{% endif %}
{% endblock %}
The block is the same in 6.6 and 6.7. How large the graphic looks there is something you need to test in your own layout, on mobile too. The guidelines require legibility at default size, and shrinking it with CSS until it’s unreadable is exactly what they rule out.
Step by step: maintaining the GARAN label
The label belongs to the product. On the product detail page in the Administration there’s a new card “Guarantee (GARAN Label)” with two fields:
- The producer guarantee duration in months: 30, 36, 42 and so on, always in steps of 6. Shopware rejects 24 or less, and since 6.6.10.26 and 6.7.15.0 respectively, anything above 600 months as well.
- “Show label in Storefront”: the actual switch.
Shopware converts the months into years, so 42 months become “3,5” on the label. That matches the guidelines, which only allow whole and half years.
The label only appears when everything comes together: switch on, a valid duration, an assigned manufacturer and a manufacturer product number. Shopware uses the manufacturer name as the “brand” and the manufacturer product number as the “model identifier”. If any of these is missing, the label silently doesn’t show. Only from 6.6.10.26 (and 6.7.15.0) does the Administration show a banner listing which prerequisite is missing.
That’s the first place I’d look in a client shop. A field that hardly mattered until now is rarely maintained carefully. Now the manufacturer product number appears on the label as the model identifier, right in front of the customer.
In the storefront, Shopware shows the label in three places:
- on the product detail page in the buy widget as a compact preview that expands to the full label on click (block
buy_widget_garan_label), - in the cart and at checkout next to the respective line item,
- in the order confirmation.
The product listing doesn’t show it. The guidelines don’t require that either.
With a large catalogue you won’t want to maintain the fields by hand. Both are writable via the Admin API as guaranteeMonths and guaranteeConfirmed, so via import, the Sync API or a PIM connection. Both fields are inherited by variants, the switch, as mentioned, only reliably from 6.6.10.26 and 6.7.15.0 respectively. Bulk edit in the Administration doesn’t know the fields yet. The fix is merged into trunk but isn’t in any release yet.
The order confirmation: the part people forget
Shopware adds the legal guarantee notice and the GARAN label to the order_confirmation_mail template via a migration. But only if the template has never been edited. That’s Shopware’s usual rule for mail migrations (updated_at IS NULL), and it affects almost every production shop, because the order confirmation is usually the first template anyone customises.
If you’ve customised the template, you have to do it yourself. According to the 6.7.14.0 release notes, these are the two expressions, the first one inside the line item loop:
{{ nestedItem.productId|sw_garan_label_nested_uri(context) }}
{{ context.languageId|sw_legal_guarantee_notice_link }}
The first returns the compact GARAN label as a data: URI for an <img> tag, because many email clients strip inline SVG. The second only returns the link to the EU page, not the graphic. Whether a link in the email is enough is the same open question as above.
Shopware is still working on this part. A switch to a PNG label for the order email has been merged into trunk and the 6.6.x and 6.7.15.x branches, but it isn’t in any published release yet. If you adapt your own email template now, take another look after the next update.
Headless and custom frontends
For composable frontends or your own apps there are two Store API routes:
GET /store-api/product/{productId}/garan-labelreturns the GARAN label as SVG, full and compact variant.GET /store-api/legal-guarantee-noticereturns the legal guarantee notice graphic and the link to the matching EU page.
The product fields guaranteeMonths and guaranteeConfirmed are readable via the Store API. Where and how your frontend displays both is entirely up to you.
Checklist before your next deployment
- Check the version: at least 6.6.10.27 or 6.7.14.0, and on 6.7, plan the update to 6.7.15.0.
- Open the order confirmation page in every language and sales channel and look for the link to the legal guarantee notice. Theme overrides on the terms and conditions block are the most common reason it’s missing.
- Decide whether a link plus modal is enough for you or whether the graphic should be directly visible. That’s a legal decision, not a technical one.
- Check with purchasing which suppliers report producer guarantees longer than two years, and get that data into
guaranteeMonths. - Check manufacturer and manufacturer product number on every guaranteed product. Without both, there’s no label.
- Place a test order with a guaranteed product and open the order email in Gmail, Outlook and Apple Mail.
Whatever currently sits in your manufacturer product number field, every customer with a guaranteed product in their cart will now see it.
Sources
- European Commission: practical guidelines and vector files for the notice and label
- Your Europe: the EU legal guarantee notice and GARAN label for businesses
- Art. 246a § 1 EGBGB (German)
- Shopware: GARAN label & EU guarantee notice
- Shopware release notes 6.7.14.0, 6.6.10.24, 6.6.10.26, 6.6.10.27
- IT-Recht Kanzlei: FAQ on the legal guarantee and guarantee label (German)
- Shopbetreiber-Blog: new labelling of legal guarantee rights and durability guarantees (German)