- Start
- Für Restaurants
- Für Entwickler
Reservierungen auf deiner Website
Mit ein paar Zeilen Code nehmen Gäste direkt auf deiner Website Reservierungen an – im Look deines Restaurants, ohne Cookies und ohne Konto.
Bevor du startest
- Online-Reservierungen sind im Kundenportal unter Reservierungen → Einstellungen eingeschaltet.
- Du kennst den Namen deines Restaurants in der Adresse, z. B.
https://dinnerspots.de/restaurant/dein-restaurant. In den Beispielen unten ersetzt dudein-restaurantdurch diesen Namen.
Fertige Code-Schnipsel mit deinem Restaurant-Namen findest du im Kundenportal unter Reservierungen → Widget & Links. Dort kannst du sie direkt kopieren.
Es gibt drei Wege. Du kannst sie auch kombinieren:
Direkt in der Seite
Setze den Platzhalter dorthin, wo die Reservierung erscheinen soll. Das Skript darf an einer beliebigen Stelle der Seite stehen.
<div data-dinnerspots="dein-restaurant"></div>
<script src="https://dinnerspots.de/widget.js" async></script>Die Höhe passt sich automatisch an. Der Platzhalter kennt data-color und data-source wie unten beschrieben.
Nutzt du den Button und eine eingebettete Reservierung auf derselben Website, binde das Skript nur einmal ein: <script src="…/widget.js" data-restaurant="dein-restaurant" async> zeigt den Button und füllt zusätzlich jeden Platzhalter.
Eigener Link oder Button
Du hast schon einen Button im Design deiner Website? Gib ihm data-dinnerspots-open. Mit dem Skript öffnet er die Reservierung als Fenster. Ohne Skript – oder in einem neuen Tab – öffnet sich die Reservierungsseite ganz normal.
<a href="https://dinnerspots.de/widget/dein-restaurant" data-dinnerspots-open>Tisch reservieren</a>
<script src="https://dinnerspots.de/widget.js" data-mode="none" async></script>data-mode="none" sorgt dafür, dass kein zusätzlicher schwebender Button erscheint.
Optionen
Alle Optionen sind freiwillig und stehen am <script>-Element.
| Attribut | Bedeutung | Standard |
|---|---|---|
data-restaurant | Name deines Restaurants aus der Adresse. Für Button und data-mode="inline" nötig. | – |
data-mode | button zeigt den schwebenden Button, inline setzt die Reservierung direkt hinter das Skript, none zeigt nichts zusätzlich. | button |
data-color | Hauptfarbe als Hex-Wert, mit oder ohne #. Die Schriftfarbe auf Buttons wird automatisch passend gewählt. | E74C3C |
data-label | Text auf dem schwebenden Button, höchstens 40 Zeichen. | Tisch reservieren |
data-position | right oder left – an welcher Ecke der Button sitzt. | right |
data-source | Kanal für deine Statistik, z. B. startseite. Kleinbuchstaben, Ziffern, ., _ und -, höchstens 40 Zeichen. | website |
Links für Instagram, Facebook & Co.
Überall, wo du kein Skript einbauen kannst, nutzt du einen Link. Er öffnet die Reservierung als eigene Seite. Am Ende des Links steht der Kanal – so siehst du im Kundenportal, woher deine Reservierungen kommen.
#E74C3CSo ist der Link aufgebaut:
https://dinnerspots.de/widget/dein-restaurant?src=instagram&farbe=2D6A4F| Kanal | src= | Wohin damit? |
|---|---|---|
| Website | website | Für Buttons und Links auf deiner eigenen Website, wenn du das Skript nicht nutzen möchtest. |
instagram | Im Profil unter „Profil bearbeiten“ → „Links“ oder als Link-Sticker in deiner Story. | |
facebook | Auf deiner Seite über „Button hinzufügen“ → „Jetzt buchen“ oder „Mehr erfahren“ – oder im Beitrag. | |
whatsapp | Im WhatsApp-Business-Profil als Website oder als Antwort auf Reservierungsanfragen im Chat. | |
google | In deinem Google-Unternehmensprofil als Link für Reservierungen. | |
| Newsletter | newsletter | Als Button in deinem Newsletter oder in deiner E-Mail-Signatur. |
| QR-Code | qr | Mach daraus einen QR-Code für Tischaufsteller, Flyer oder die Rechnung. |
farbe= ist freiwillig. Eigene Kanäle wie src=flyer-sommer gehen auch – mit denselben Regeln wie bei data-source.
Nach der Buchung
Sobald ein Gast reserviert hat, löst das Skript auf deiner Seite das Ereignis dinnerspots:booked aus. Es enthält nur den Status und den Namen deines Restaurants – nie Name, E-Mail-Adresse oder Telefonnummer des Gastes.
| Feld | Inhalt |
|---|---|
detail.status | pending, wenn du Reservierungen selbst bestätigst – sonst confirmed. |
detail.restaurant | Name deines Restaurants aus der Adresse. |
Das Ereignis kommt am Platzhalter oder am geklickten Link an und steigt bis zu document auf. Damit kannst du z. B. eine Conversion an den Meta-Pixel melden – aber nur, wenn der Gast dem auf deiner Website zugestimmt hat:
document.addEventListener('dinnerspots:booked', function (event) {
// Nur mit Einwilligung – frag hier dein Cookie-Banner ab
if (!window.hasMarketingConsent || !window.hasMarketingConsent()) return;
if (typeof window.fbq === 'function') {
window.fbq('track', 'Schedule', { content_name: event.detail.restaurant });
}
});hasMarketingConsent steht hier für die Abfrage deines Cookie-Banners. Wie die heißt, steht in dessen Anleitung.
JavaScript-Steuerung
Nach dem Laden stellt das Skript window.DinnerSpots bereit:
| Aufruf | Wirkung |
|---|---|
DinnerSpots.open('dein-restaurant') | Öffnet das Reservierungsfenster. |
DinnerSpots.close() | Schließt es wieder. |
DinnerSpots.mount(element) | Füllt einen Platzhalter, den du nachträglich eingefügt hast, z. B. in einer Single-Page-App. |
<button type="button" onclick="DinnerSpots.open('dein-restaurant')">Tisch reservieren</button>
<script src="https://dinnerspots.de/widget.js" data-mode="none" async></script>Datenschutz
- Das Skript setzt keine Cookies und lädt nichts von Dritten.
- Das Reservierungsformular läuft in einem eigenen Fenster (iframe) auf dinnerspots.de. Deine Website sieht die Eingaben des Gastes nicht.
- Deine Website erfährt nur, dass gebucht wurde – über das Ereignis oben.
- Erwähne die Reservierung über DinnerSpots.de in deiner Datenschutzerklärung. Für den Meta-Pixel und andere Tracking-Dienste brauchst du wie immer die Einwilligung deiner Gäste.
Eigene Systeme anbinden
Du willst Reservierungen aus einem Chatbot für Instagram, Facebook Messenger oder WhatsApp annehmen, sie in dein Kassensystem übernehmen oder bei jeder neuen Reservierung benachrichtigt werden? Dafür gibt es die DinnerSpots-API mit Webhooks.