Isoliertes iframe
Formular und Verarbeitung laufen innerhalb der Tavorino-Domain.
Ein Loader bindet Öffnungszeiten, Reservierungen und Speisekarte ein. Füge das Script einmal hinzu und setze danach den passenden Widget-Container an die gewünschte Stelle.
<script async src="https://tavorino.com/widget/v1.js"></script>Zeigt deine regulären Öffnungszeiten und berücksichtigt automatisch passende Sondertage.
data-show-week="false"Zeigt nur den heutigen Tag. Das ist der Standardwert.
data-show-week="true"Zeigt heute und die nächsten sechs Tage.
<div
class="tavorino-widget"
data-tavorino-opening-hours
data-show-week="true"
data-restaurant-id="550e8400-e29b-41d4-a716-446655440000"
></div>
<script async src="https://tavorino.com/widget/v1.js"></script>Ein einmaliger Sondertag überschreibt den regulären Wochentag. Wiederkehrende Sondertage werden ebenfalls berücksichtigt.
Binde das vollständige Reservierungsformular für Datum, Uhrzeit, Gäste und Kontaktdaten ein.
<div
class="tavorino-widget"
data-tavorino-reservation
data-restaurant-id="550e8400-e29b-41d4-a716-446655440000"
></div>
<script async src="https://tavorino.com/widget/v1.js"></script>Reservierungsregeln, Öffnungszeiten, Tischverfügbarkeit und Backend-Validierung werden automatisch angewandt.
Zeigt die aktive Speisekarte. Auf Wunsch führt eine Schaltfläche direkt ins Bestellportal.
data-ordering-enabled="false"Zeigt die Speisekarte ohne Bestellfunktion. Das ist der Standardwert.
data-ordering-enabled="true"Ergänzt die Speisekarte um „Bestellung starten“.
<div
class="tavorino-widget"
data-tavorino-menu
data-ordering-enabled="true"
data-restaurant-id="550e8400-e29b-41d4-a716-446655440000"
></div>
<script async src="https://tavorino.com/widget/v1.js"></script>Ist das Bestellportal nicht verfügbar, bleibt die Speisekarte sichtbar und es erscheint ein Hinweis.
Lege die CSS-Variablen direkt auf dem Widget-Container fest. Sie gelten für Öffnungszeiten, Reservierungen und Speisekarte.
.tavorino-widget {
--tavorino-primary: #7a3026;
--tavorino-card-background: #ffffff;
--tavorino-text: #292524;
--tavorino-color-scheme: light;
--tavorino-border: #e7e5e4;
--tavorino-button-background: #7a3026;
--tavorino-button-text: #ffffff;
--tavorino-radius: 20px;
--tavorino-padding: 28px;
}| Variable | Wirkung | Standard |
|---|---|---|
| --tavorino-background | Äußerer Hintergrund | transparent |
| --tavorino-card-background | Karten- und Eingabeflächen | #f8f5ed |
| --tavorino-header-background | Kopfbereich | transparent |
| --tavorino-content-background | Inhaltsbereich | transparent |
| --tavorino-footer-background | Fußbereich | transparent |
| --tavorino-primary | Primärfarbe und Überschriften | #123622 |
| --tavorino-secondary | Sekundäre Akzente | #7f987d |
| --tavorino-text | Textfarbe | #17251d |
| --tavorino-muted | Sekundärtext und Platzhalter | #6d726b |
| --tavorino-border | Rahmen und Trennlinien | #ded8cd |
| --tavorino-color-scheme | Native Feldfarben | light |
| --tavorino-focus | Fokusrahmen | Sekundärfarbe |
| --tavorino-danger | Fehler und Pflichtfelder | #9b6a63 |
| --tavorino-error-background | Fehlerflächen | #fff7f5 |
| --tavorino-button-background | Aktionsflächen | Primärfarbe |
| --tavorino-button-text | Text auf Aktionsflächen | #ffffff |
| --tavorino-disabled-background | Deaktivierte Flächen | #f0ede6 |
| --tavorino-disabled-text | Deaktivierter Text | #9b9a93 |
| --tavorino-shadow | Schatten | rgba(0, 0, 0, 0.03) |
| --tavorino-radius | Kartenradius | 8px |
| --tavorino-control-radius | Feldradius | Kartenradius |
| --tavorino-button-radius | Aktionsradius | Kartenradius |
| --tavorino-spacing | Abstände | 16px |
| --tavorino-padding | Innenabstände | 24px |
| --tavorino-max-width | Maximale Breite | 1024px |
Gleichnamige Data-Attribute wie data-primary="#7a3026" funktionieren ebenfalls und haben Vorrang vor CSS-Variablen.
Der Loader erkennt Container automatisch. Für dynamische Inhalte kannst du Widgets gezielt mounten.
window.TavorinoOpeningHours.mount("#hours", restaurantId);
window.TavorinoReservation.mount("#reservation", restaurantId);
window.TavorinoMenu.mount("#menu", restaurantId);
window.TavorinoMenu.mountAll();Höre auf den Ladezustand des Widgets und reagiere auf neue Reservierungen.
Das Event tavorino:ready enthält die Restaurant-ID und den Widget-Typ. Nach erfolgreicher Buchung wird tavorino:reservation-created ausgelöst.
tavorino:readyDas Widget ist vollständig geladen.
tavorino:reservation-createdEine Reservierung wurde erfolgreich angelegt.
const widget = document.querySelector("[data-tavorino-reservation]");
widget.addEventListener("tavorino:ready", (event) => {
console.log("Bereit", event.detail.widgetType);
});
widget.addEventListener("tavorino:reservation-created", () => {
console.log("Reservierung wurde angelegt");
});Formular und Verarbeitung laufen innerhalb der Tavorino-Domain.
Ausgetauscht werden Status- und Größeninformationen.
DOM-Events enthalten keine persönlichen Kundendaten.
Prüfe diese Punkte, wenn ein Widget nicht wie erwartet erscheint.
Prüfe Script, Datenattribut und Restaurant-ID.
Öffnungszeiten werden aus den aktiven Sondertagen geladen.
Prüfe, ob Bestellportal und ORDERS-Modul aktiviert sind.
Binde das Script nur einmal ein; der Loader erkennt montierte Container.
Setze Variablen direkt auf den Container. Data-Attribute haben Vorrang.