HTML-Seitenstruktur
Minimale Seitenstruktur mit Header, optionaler Sidebar und einem Widget im Hauptbereich.- Das Script wird einmal im
<head>geladen. a-login-buttonunda-cart-modal-buttongehören in den Header, damit sie auf allen Seiten sichtbar bleiben.- Ersetze das Panel durch ein Seiten-Widget mit
fullscreen="true"undnav-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-pagea-organization-mapa-organization-calendara-resource-pagea-resource-mapa-resource-calendara-service-pagea-subscription-pagea-package-pagea-my-bookings
Empfohlene Integration für ganzseitige Layouts
Verwendefullscreen="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.
fullscreen="true"entsprichtheight: 100vh.nav-heightändert das aufcalc(100vh - nav-height).- Wenn du
heightsetzt, wird die automatische Größenanpassung deaktiviert und der iframe hat eine feste Höhe. - Für
*-page, Map-, Kalender- unda-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.a-organization-page.
Panels
Booking-Panels sind bewusst kompakt gehalten und sperren die Navigation. Panel-Widgets:a-resource-booking-panela-service-booking-panel
- Panels verwenden immer dynamische Höhe.
- Externe
height- undfullscreen-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
Verwendea-login-button, wenn du ein gemeinsames Login/Logout-Element benötigst, das mit der Widget-Session synchron bleibt.
- Lädt einen eigenen Login-iframe.
- Wechselt automatisch in den eingeloggten Avatar-Zustand.
- Sendet Auth-Änderungen weiter, damit benachbarte Widgets ihren Authentifizierungszustand aktualisieren.
- Haupt-Site-Header
- Mobile Navigation Drawer
- Obere Leiste auf Buchungs-Landingpages
Warenkorb-Button
Verwendea-cart-modal-button, wenn Nutzer Artikel aus Booking-Widgets hinzufügen und später auschecken sollen.
- Zeigt eine Live-Badge mit der Artikelanzahl.
- Bleibt mit benachbarten Widgets auf derselben Seite synchron.
- Öffnet den Checkout in einem Modal-Overlay.
a-resource-booking-panelzusammen mita-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-pageadd-to-cartstart-checkoutcomplete-checkout
event_namevaluegross_valuetaxcurrencytransaction_iditems
a-login-buttonunda-cart-modal-buttonsind 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-checkoutundcomplete-checkoutdie 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 akzeptierenstart (und manchmal end), um Kalender oder Karte auf einen bestimmten Datumsbereich vorzunavigieren.
ISO-8601-Datumsstring – exaktes Datum:
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-buttona-resource-buttona-service-buttona-subscription-buttona-package-buttona-modal-buttona-cart-modal-button
Gemeinsame Modal-Attribute
Trigger-Attribute für Entity-Buttons
Gilt für:a-organization-buttona-resource-buttona-service-buttona-subscription-buttona-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.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-bookingserfordert immer eine Authentifizierung.should-loginist 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-buttonunda-cart-modal-buttonan stabilen, gut sichtbaren Stellen im UI. - Bevorzuge
drawerfür Desktop-seitige Checkout-Flows undfullscreenfür mobile Erlebnisse.