# Changelog
## [1.0.2] - 2026-09-01
### Changed
- Composer: added an explicit `php` requirement (`~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0`,
identical to the constraint declared by `shopware/core` 6.6/6.7), so the required PHP
version can be read directly from the package.
- Release package: development-only files (`tests/`, `phpunit.xml`, `.gitignore`) are no
longer part of the store archive. The unit tests remain part of the source repository.
- Composer: `shopware/storefront` is now declared as an explicit requirement next to
`shopware/core` — the plugin uses Storefront page events and `@Storefront` template
inheritance, so it can no longer be installed into a setup without the Storefront bundle.
- Service container: removed the redundant `public="true"` from all services. All
services are injected via the container only, so they stay private (as set by
``).
- Setting "Maximum width of the EU notice" changed from a free text field to a fixed
selection (300 px / 390 px / 480 px / full container width). The width is now applied
via dedicated SCSS classes instead of a configurable inline `style` attribute, so
invalid CSS values from the configuration can no longer break the layout. Existing
values `300px`, `390px`, `480px` and `100%` are kept; any other previously saved
value falls back to 390 px.
## [1.0.1] - 2026-07-02
### Changed
- Store compatibility: the official GARAN SVG templates are now shipped as `.svg.tpl`
(purely server-side templates, never delivered directly) so the automated store
analysis accepts the package. No functional change — the official files remain
untouched.
## [1.0.0] - 2026-07-02
### Added
- EU warranty label (Implementing Regulation (EU) 2025/1960) in the storefront —
official harmonised notice bundled in 24 languages (coloured version as PNG,
official PDFs linkable via "Show PDF link to the EU notice")
- Official GARAN label (Annex II) as a server-side filled, cached inline SVG:
nested display (compact) with a modal for the full view, or the complete label;
model identifier fallback (product number/EAN/manufacturer product number)
- Combinable placements: footer (default), product detail page (per product),
checkout (once on the cart and confirm page)
- Selectable display modes: text link (modal), banner image + modal, or full view
(embedded); configurable width
- Selectable position on the product detail page: below the product content or
directly below the product number in the buy box (warranty and GARAN label
configured separately)
- Per-product exclusion via custom field (e.g. second-hand goods)
- Sales channel visibility for all settings
- Multilingual with fallback chain (exact locale → language region → en-GB)
- Product custom fields: guarantee duration, brand, model, display override,
GARAN conditions ("free of charge", "covers the entire good") — label only
shown for guarantees exceeding 2 years
- Server-side generated, cached QR code as fallback (endroid/qr-code, optional)
- Custom field set via migration, complete cleanup on uninstall
- Configurable trigger button text and optional headline
- Detailed German manual (docs/ANLEITUNG.md) with quick start and FAQ
- Unit tests for the regulation logic (>2 years), the language resolver and the
GARAN renderer (escaping, namespacing, caching)
- Support for Shopware 6.6 and 6.7
# Changelog
## [1.0.1] - 2026-07-02
### Changed
- Store compatibility: the official GARAN SVG templates are now shipped as `.svg.tpl`
(purely server-side templates, never delivered directly) so the automated store
analysis accepts the package. No functional change — the official files remain
untouched.
## [1.0.0] - 2026-07-02
### Added
- EU warranty label (Implementing Regulation (EU) 2025/1960) in the storefront —
official harmonised notice bundled in 24 languages (coloured version as PNG,
official PDFs linkable via "Show PDF link to the EU notice")
- Official GARAN label (Annex II) as a server-side filled, cached inline SVG:
nested display (compact) with a modal for the full view, or the complete label;
model identifier fallback (product number/EAN/manufacturer product number)
- Combinable placements: footer (default), product detail page (per product),
checkout (once on the cart and confirm page)
- Selectable display modes: text link (modal), banner image + modal, or full view
(embedded); configurable width
- Selectable position on the product detail page: below the product content or
directly below the product number in the buy box (warranty and GARAN label
configured separately)
- Per-product exclusion via custom field (e.g. second-hand goods)
- Sales channel visibility for all settings
- Multilingual with fallback chain (exact locale → language region → en-GB)
- Product custom fields: guarantee duration, brand, model, display override,
GARAN conditions ("free of charge", "covers the entire good") — label only
shown for guarantees exceeding 2 years
- Server-side generated, cached QR code as fallback (endroid/qr-code, optional)
- Custom field set via migration, complete cleanup on uninstall
- Configurable trigger button text and optional headline
- Detailed German manual (docs/ANLEITUNG.md) with quick start and FAQ
- Unit tests for the regulation logic (>2 years), the language resolver and the
GARAN renderer (escaping, namespacing, caching)
- Support for Shopware 6.6 and 6.7