Das Gutschein-Widget ist eine <giftcard-widget>-Webkomponente, die den APRO-Gutscheinshop für eine Location in einem iframe lädt. Zwei Zeilen genügen — Kundinnen und Kunden kaufen und personalisieren Gutscheine, ohne die Host-Seite zu verlassen.
- Skript:
https://smorderfrontend.azureedge.net/embed/widget.js - Tag:
<giftcard-widget location-id="…"> - Drei Modi: Inline-Liste (Gutscheinliste füllt den Container), Inline-Button (Button im Seitenfluss öffnet ein Panel) oder schwebender Button (fixierter FAB öffnet ein Panel)
Schnellstart
Minimale Einbindung — Skript einmal laden, danach das Tag dort einsetzen, wo der Shop erscheinen soll:
<script src="https://smorderfrontend.azureedge.net/embed/widget.js"></script>
<giftcard-widget location-id="535"></giftcard-widget>Mehr braucht es nicht. Das Widget lädt die Gutscheinkategorien der Location, rendert den Shop und führt durch den gesamten Kaufvorgang. Die Host-Seite muss lediglich Platz für das Layout bereitstellen.
Beispiel — Inline-Button
Gerendert mit presentation="inline-button". Der Trigger steht im Seitenfluss genau dort, wo das <giftcard-widget>-Tag platziert ist; ein Klick öffnet den Gutscheinshop in einem Modal-Panel.
<script src="https://smorderfrontend.azureedge.net/embed/widget.js"></script>
<giftcard-widget
location-id="535"
locale="de"
presentation="inline-button"
expand-icon="redeem"
expand-label="Gutscheine"
headline="Gutschein kaufen"
max-height="700"
></giftcard-widget><div style="padding:1rem; margin:1.25rem 0;">
<giftcard-widget location-id="535" locale="de" presentation="inline-button" expand-icon="redeem" expand-label="Gutscheine" headline="Gutschein kaufen" max-height="700" ></giftcard-widget>
</div>
Beispiel — Inline-Liste
Dasselbe Widget ohne presentation — die volle Gutscheinliste fügt sich in den Seitenfluss ein, begrenzt durch max-height.
<script src="https://smorderfrontend.azureedge.net/embed/widget.js"></script>
<giftcard-widget
location-id="535"
locale="de"
max-height="700"
></giftcard-widget><style>{giftcard-widget:not([presentation]) { display: block; min-height: 320px; }}</style>
<div style="border:1px dashed var(--sl-color-gray-5); border-radius:10px; padding:1rem; margin:1.25rem 0; min-height:740px;">
<giftcard-widget location-id="535" locale="de" max-height="700" style="display:block; height:700px;" ></giftcard-widget>
</div>
Interaktiver Builder
Attribute unten anpassen — Markup und Vorschau aktualisieren sich sofort. Den fertigen Schnipsel direkt ins CMS oder Template kopieren.
Inline-Button-Modus
Empfohlener Standard. Mit presentation="inline-button" wird der Trigger genau dort gerendert, wo das <giftcard-widget>-Tag platziert ist. Ein Klick öffnet den Gutscheinshop in einem Modal-Panel. Das Layout der Host-Seite bleibt unverändert, bis der Kunde aktiv wird.
<giftcard-widget
location-id="535"
locale="de"
presentation="inline-button"
expand-icon="redeem"
expand-label="Gutscheine"
headline="Gutschein kaufen"
max-height="700"
></giftcard-widget>Schwebender-Button-Modus
Mit presentation="expandable" wechselt das Widget in den fixierten FAB-Modus: ein runder Pill-Button in einer von sechs Ecken öffnet ein verankertes Panel mit dem Shop. Praktisch, wenn dauerhaft ein Einstiegspunkt sichtbar sein soll, der dem Besucher beim Scrollen folgt.
<giftcard-widget
location-id="535"
locale="de"
presentation="expandable"
position="right-bottom"
max-height="700"
max-width="420"
expand-label="Gutscheine"
expand-icon="card_giftcard"
headline="Gutschein kaufen"
></giftcard-widget>position steuert sowohl die FAB-Position als auch die Kante, an der das Panel andockt. Erlaubte Werte:
right-bottom(Standard),left-bottom,center-bottomright-top,left-top,center-top
expand-icon ist ein Material-Icons-Ligaturname (z. B. redeem, card_giftcard, celebration). Wird über @fontsource/material-icons im Embed gebündelt — Bild-URLs werden nicht unterstützt.
expand-theme schaltet zwischen dark (Standard) und light für die Optik. Die Modal-Titelleiste folgt demselben Theme — dunkel im Standard, hell bei expand-theme="light".
Inline-Listen-Modus
presentation weglassen (oder leer setzen), um die volle Gutscheinliste in den Seitenfluss zu rendern. Das Widget übernimmt die Breite des Elternelements und wächst bis zur natürlichen iframe-Höhe, begrenzt durch max-height. Geeignet für eine dedizierte „Gutscheine"-Landingseite.
<giftcard-widget
location-id="535"
locale="de"
max-height="700"
></giftcard-widget>Attribute
Attribut | Pflicht | Standard | Beschreibung |
|---|---|---|---|
| ✅ | — | Numerische APRO-Location-ID. Ohne Wert mountet das Widget nicht. |
| — |
| UI-Sprache im iframe: |
| — | `` (Inline-Liste) |
|
| — | — | Pixel-Limit. Inline-Liste: iframe-Höhe. Panel-Modi: Panel-Höhe (zusätzlich an Viewport gekoppelt). |
| — | — | Pixel-Limit für die Panel-Breite. Nur Panel-Modi. |
| — |
| Einer von sechs Ecken-Schlüsseln; bestimmt den Panel-Anker (und FAB-Position bei |
| — | locale-Standard | Beschriftung auf dem Trigger-Button. Leer = automatisch nach |
| — |
|
|
| — | — | Material-Icons-Ligature links vom Text. Nur Panel-Modi. |
| — | — | Titelleiste über dem iframe im Panel; wird auch als |
| — | — | Beliebige CSS-Farbe ( |
| — |
| Bei |
Skript einbinden
widget.js einmal pro Seite laden — beliebig im <head> oder vor </body>. Das Skript registriert das <giftcard-widget>-Custom-Element global; nachfolgende Tags aktivieren sich automatisch.
<script src="https://smorderfrontend.azureedge.net/embed/widget.js"></script>Mehrere Widgets auf einer Seite sind unterstützt (z. B. ein Inline-Shop plus ein ausklappbares FAB an anderer Stelle). Jedes iframe ist isoliert.
