Skip to main content

HTML-Seitenstruktur

Minimale Seitenstruktur mit Header, optionaler Sidebar und einem Widget im Hauptbereich.
  • Das Script wird einmal im <head> geladen.
  • a-login-button und a-cart-modal-button gehören in den Header, damit sie auf allen Seiten sichtbar bleiben.
  • Ersetze das Panel durch ein Seiten-Widget mit fullscreen="true" und nav-height, wenn die Buchung die gesamte Viewport-Höhe füllen soll (siehe Ganzseitige Widgets weiter unten).

Ganzseitige Widgets

Seiten-Widgets eignen sich, wenn das Widget den Hauptinhalt der Seite darstellt. Seiten-Widgets:
  • a-organization-page
  • a-organization-map
  • a-organization-calendar
  • a-resource-page
  • a-resource-map
  • a-resource-calendar
  • a-service-page
  • a-subscription-page
  • a-package-page
  • a-my-bookings

Empfohlene Integration für ganzseitige Layouts

Verwende fullscreen="true", damit das Widget die verfügbare Viewport-Höhe ausfüllt. Wenn deine Website einen festen Header hat, übergib zusätzlich nav-height, damit das Widget nicht darunter gerendert wird.
Hinweise:
  • fullscreen="true" entspricht height: 100vh.
  • nav-height ändert das auf calc(100vh - nav-height).
  • Wenn du height setzt, wird die automatische Größenanpassung deaktiviert und der iframe hat eine feste Höhe.
  • Für *-page, Map-, Kalender- und a-my-bookings-Widgets sind ganzseitige Layouts in der Regel die sauberste Integration.

Organization-Map und Organization-Kalender

Diese sind Seiten-Widgets, keine Modal-Buttons. Behandle sie wie einen vollständigen Seitenbereich.
Verwende die Organization-Map, wenn die Karte die primäre Benutzeroberfläche ist. Verwende den Organization-Kalender, wenn die Verfügbarkeitsnavigation im Vordergrund steht. Wenn du stattdessen den vollständigen Explore-Flow möchtest, nimm a-organization-page.

Panels

Booking-Panels sind bewusst kompakt gehalten und sperren die Navigation. Panel-Widgets:
  • a-resource-booking-panel
  • a-service-booking-panel
Wichtiges Verhalten:
  • Panels verwenden immer dynamische Höhe.
  • Externe height- und fullscreen-Werte werden ignoriert.
  • Panels sind dazu gedacht, den Buchungsfluss in dein eigenes Seitenlayout einzubetten.

Login-Button und Warenkorb-Button

Diese zwei Komponenten werden unter Organisation → Einstellungen → Buchungsseite → Globale Komponenten konfiguriert. Sie sind als gemeinsame Steuerelemente gedacht, die sich in der Regel im Site-Header oder in einer fixen Navigationsleiste befinden.

Login-Button

Verwende a-login-button, wenn du ein gemeinsames Login/Logout-Element benötigst, das mit der Widget-Session synchron bleibt.
Verhalten:
  • Lädt einen eigenen Login-iframe.
  • Wechselt automatisch in den eingeloggten Avatar-Zustand.
  • Sendet Auth-Änderungen weiter, damit benachbarte Widgets ihren Authentifizierungszustand aktualisieren.
Gute Platzierungen:
  • Haupt-Site-Header
  • Mobile Navigation Drawer
  • Obere Leiste auf Buchungs-Landingpages

Warenkorb-Button

Verwende a-cart-modal-button, wenn Nutzer Artikel aus Booking-Widgets hinzufügen und später auschecken sollen.
Verhalten:
  • Zeigt eine Live-Badge mit der Artikelanzahl.
  • Bleibt mit benachbarten Widgets auf derselben Seite synchron.
  • Öffnet den Checkout in einem Modal-Overlay.
Häufige Kombinationen:
  • a-resource-booking-panel zusammen mit a-cart-modal-button
  • Mehrere Booking-Widgets auf einer Seite mit einem gemeinsamen Warenkorb-Button

Events und Tracking

Die meisten Embed-Widgets leiten Buchungs-Lifecycle-Events als DOM Custom Events weiter. Trifft für alles aus den Login-Button zu. Unterstützte Event-Namen:
  • view-page
  • add-to-cart
  • start-checkout
  • complete-checkout
Häufige Felder im Event-Payload:
  • event_name
  • value
  • gross_value
  • tax
  • currency
  • transaction_id
  • items
Beispiel:
GA4-Beispiel:
Hinweise:
  • a-login-button und a-cart-modal-button sind Hilfs-Widgets und senden keine Buchungs-Events.
  • Seiten-Widgets, Maps, Kalender, Booking-Panels und checkout-orientierte Seiten senden Buchungs-Events.
  • Subscription- und Package-Widgets senden checkout-fokussierte Events. In der Praxis sind view-page, start-checkout und complete-checkout die relevantesten.

UTM-Parameter und Click-IDs

Für Attribution musst du nichts weiter tun. Wenn ein Widget lädt, liest es den Query-String der übergeordneten Seiten-URL aus und leitet diese Parameter automatisch in den eingebetteten iframe weiter: Wenn ein Nutzer also über ?utm_campaign=fruehling&gclid=abc123 auf deine Seite kommt, trägt das Widget diese Werte durch den gesamten Buchungsfluss – Conversion-Tracking funktioniert ohne zusätzliche Konfiguration. Es ist kein HTML-Attribut erforderlich – die Weiterleitung erfolgt automatisch bei jedem Widget-Ladevorgang.

Start- und Enddatum

Die meisten Widgets akzeptieren start (und manchmal end), um Kalender oder Karte auf einen bestimmten Datumsbereich vorzunavigieren. ISO-8601-Datumsstring – exaktes Datum:
Relativer Schlüsselwert – wird zum Render-Zeitpunkt aufgelöst:
Relative Werte werden überall unterstützt – außer bei a-resource-calendar und a-organization-calendar, die ISO 8601 erfordern. end erwartet immer einen ISO-8601-Datumsstring.

Anpassungsoptionen nach Widget-Typ

Dieser Abschnitt dokumentiert die öffentlichen HTML-Attribute. Admin-generierte Snippets decken in der Regel die wichtigsten davon bereits ab.

Gemeinsame Attribute für Embed-Widgets

Gilt für Seiten-Widgets und Panel-Widgets. Nicht anwendbar auf Button-Widgets. Alle Embed-Widgets akzeptieren zusätzlich die Design-Attribute aus WIDGET_DESIGNING.md.

Organization-Widgets

a-organization-page

Hinweis:
  • Die Option „Kalender-Board” im Admin entspricht calendar-view="list".

a-organization-calendar

a-organization-map

Ressource-Widgets

a-resource-page

a-resource-calendar

a-resource-map

a-resource-booking-panel

Service-Widgets

a-service-page

a-service-booking-panel

Subscription- und Package-Widgets

a-subscription-page

a-subscription-button

a-package-page

a-package-button

Button-Widgets

Gilt für:
  • a-organization-button
  • a-resource-button
  • a-service-button
  • a-subscription-button
  • a-package-button
  • a-modal-button
  • a-cart-modal-button

Gemeinsame Modal-Attribute

Trigger-Attribute für Entity-Buttons

Gilt für:
  • a-organization-button
  • a-resource-button
  • a-service-button
  • a-subscription-button
  • a-package-button
a-modal-button ist anders:
  • kein label-Prop
  • keine eingebauten Trigger-Styling-Props
  • verwende ein eigenes Element im Slot als Trigger

Eigener Trigger (Slot)

Alle Button-Widgets akzeptieren einen Standard-Slot, der den eingebauten Trigger ersetzt. Nutze das, wenn du den Trigger selbst gestalten oder ein anderes Element als Button verwenden möchtest.
Wenn ein Slot verwendet wird, werden label, button-background, button-text und button-width ignoriert. Klick- und Tastatursteuerung werden weiterhin vom Widget-Wrapper übernommen.

a-resource-button

a-service-button

a-organization-button

a-modal-button

Verwende diesen Button, wenn du einen eigenen Modal-Trigger ohne entity-spezifische Button-Komponente benötigst.

Hilfs-Widgets

a-cart-modal-button

a-login-button

a-my-bookings

Hinweis:
  • a-my-bookings erfordert immer eine Authentifizierung. should-login ist nicht verfügbar, da Login obligatorisch ist.

Empfehlungen

  • Nutze zuerst das Admin-generierte Snippet und verfeinere es manuell nur wenn nötig.
  • Verwende Seiten-Widgets für dedizierte Buchungsseiten.
  • Verwende Panels für redaktionelle Seiten rund um den Buchungsfluss.
  • Verwende Button-Widgets, wenn die Buchung erst nach einem Klick sichtbar sein soll.
  • Platziere a-login-button und a-cart-modal-button an stabilen, gut sichtbaren Stellen im UI.
  • Bevorzuge drawer für Desktop-seitige Checkout-Flows und fullscreen für mobile Erlebnisse.