mdsoft.dev
Extensions Blog Support DE

Blog · 28 August 2026 · 6 min read

Showing the EU guarantee notice on a Hyvä storefront

Most Magento compliance extensions were written for Luma. On a Hyvä storefront they either fail quietly or work by pulling Luma's frontend back into a theme that exists specifically to be rid of it. With a hard deadline of 27 September 2026, this is worth checking before you buy rather than after.

Why a Luma extension does not simply work

Hyvä is not a restyled Luma. It ships no requireJS, no Knockout and none of Luma's stylesheet. An extension that renders a modal through Magento's Luma modal widget therefore has three options on Hyvä, and all three are bad:

  • Fail silently. The markup renders, the trigger does nothing, and nobody notices until someone clicks it. For a compliance feature this is the worst case: the shop looks compliant and is not.
  • Pull Luma back in. Some extensions re-add requireJS or Luma CSS on the pages they touch. It works, and it undoes a meaningful part of why the shop moved to Hyvä.
  • Ship a second extension. Two packages, two configurations, two licences, and a multi-store setup running one Luma shop and one Hyvä shop needs both.

What a correct implementation looks like

The pattern that holds up is to detect the running theme and render from a second template written for Hyvä, chosen at render time — not a Luma template coerced into a Hyvä page. Five details separate one that works from one that technically renders:

  • No frontend rebuild. Hyvä compiles Tailwind from the classes it finds while scanning. A third-party template that appears after the last build has its classes purged. The fix is for the notice to carry its own sizing and pop-up layout rather than relying on utility classes that may or may not have survived — no tailwind.config.js entry to add, no rebuild to remember, and nothing that breaks the next time someone rebuilds without thinking about your extension.
  • CSP-safe Alpine. Hyvä's CSP build forbids the expression evaluation that ordinary Alpine components rely on. A pop-up registered as a named component works on both the standard and the CSP build; one written inline works only on the standard build, and fails on exactly the shops that took security seriously.
  • Honest theme detection. A project theme is usually several generations removed from a Hyvä base. Detection has to walk the inheritance chain, and a theme forked outright — inheriting from nothing — has to be nameable in configuration rather than silently treated as Luma.
  • The footer link is the hard one. Luma has a footer link list a module can join. Hyvä does not: the footer your theme ships is markup, not a block. Splicing a link into markup an extension has never seen is how themes get broken, so the honest answer is to hand you the layout to paste into your own theme and automate every other placement.
  • Checkout is a separate question. Magento's own checkout on Hyvä means the Luma Fallback Checkout, and that is where a checkout placement renders. Hyvä Checkout is a separate application — a different codebase with its own extension points. If you run it, plan the checkout placement separately, and treat any vendor who does not mention the distinction with suspicion.

Questions worth asking a vendor

  1. Does one package cover Luma and Hyvä, or do I need two licences for a mixed multi-store setup?
  2. Do I have to add anything to tailwind.config.js or rebuild the frontend after installing?
  3. Does it work on Hyvä's CSP build?
  4. Does the pop-up still reach the notice with JavaScript disabled?
  5. Which checkout does the checkout placement support — Luma Fallback Checkout, Hyvä Checkout, or both?

Question four is the one that separates a compliance feature from a decoration. If every trigger is a genuine link to the notice before any script runs, a shopper whose JavaScript failed still reaches it in a new tab. If the trigger is a <span> waiting for a click handler, it is inert — and "our notice is visible unless JavaScript is broken" is not a position worth defending.

Replatforming

If a Luma shop is heading for Hyvä, the compliance layer should survive the move. An extension covering both from one package means the same configuration and the same compliance position before and after; only the theme changes. An extension bought per frontend means doing this work twice, and doing it under the deadline the second time.

We build EU Guarantee Notice, a Magento 2 extension that puts the official notice on a Luma or Hyvä storefront in all 24 languages.


This article explains how we read Regulation (EU) 2025/1960 while building an extension for it. It is not legal advice. Whether, when and where the notice applies to your business remains your responsibility, and is worth confirming with a qualified adviser.

© 2026 mdsoft.dev
Impressum Terms Refunds Privacy Policy Datenschutz Cookie settings