Zum Inhalt

Case · Buchungen & Franchise

Drei Sprachen, eigene Preise, eigene Zahlungsarten – und ein Kalender, auf den sich das Personal verlassen kann

Kunde
Saunaboot
Branche
Schwimmende Saunen, Franchise
Zeitraum
2026
Leistungen
Multisite-Netzwerk, Buchungssystem, eigenes Kalender-Plugin

Ergebnis

2 Tage
für einen neuen Standort
3
Standorte, drei Sprachkombinationen
~500
Buchungen im Jahr in Luzern
150
Gutscheine als PDF

Saunaboot vermietet schwimmende Saunen auf Schweizer Seen. Die Boote gehören nicht der Zentrale, sondern selbstständigen Franchisenehmern – und die sollen autark arbeiten können: eigene Preise, eigene Zahlungsarten, eigenes Zusatzangebot, eigene Sprache. In Genf wird auf Französisch gebucht und mit TWINT bezahlt, in Lugano auf Italienisch.

Die ersten Standorte bekamen jeweils einen eigenen Shop, jeden für sich aufgesetzt. Beim nächsten habe ich gebremst. Jeder weitere Franchisenehmer hätte eine weitere Installation bedeutet: eine weitere Wartung, eine weitere Stelle, an der etwas kaputtgehen kann. Was fehlte, war ein System, das neue Standorte günstig macht – ohne den Franchisenehmern ihre Eigenständigkeit zu nehmen.

Ein Netzwerk statt einzelner Shops

Heute laufen die Standorte in einem WordPress-Multisite-Netzwerk. Die Hauptseite ist selbst kein Shop; sie hält das Netzwerk und die Lizenzen zusammen. Darunter hat jeder Standort seine eigene, geschlossene Shop-Instanz – mit eigenen Preisen, eigenen Zahlungsanbietern und eigenem Zusatzsortiment.

Ein neuer Standort entsteht als Klon: Erscheinungsbild anpassen, Texte und Bilder tauschen, Zahlungsarten und Zusatzprodukte einrichten. Ohne Mehrsprachigkeit ist das in zwei Tagen erledigt.

Jeder Franchisenehmer bekommt einen eigenen Zugang mit einer zugeschnittenen Benutzerrolle. Er sieht genau das, was er für seinen Betrieb braucht – und nichts, womit er etwas kaputt machen kann. Gewartet wird trotzdem an einer Stelle.

Der Standort am Thunersee stammt noch aus der Zeit davor und läuft als eigene Installation. Er ist der Grund, warum es das Netzwerk gibt.

Warum ich den Kalender neu gebaut habe

WooCommerce Bookings bringt eine Google-Kalender-Synchronisation mit. Sie authentifiziert sich über OAuth, und OAuth verliert die Berechtigung – regelmäßig.

Was dann passiert, merkt zunächst niemand. Buchungen laufen weiter in den Shop, im Kalender erscheinen sie nicht mehr. Und wer die Verbindung neu herstellt, hat damit die Lücke nicht geschlossen: Die Buchungen aus der Auszeit werden nicht nachgetragen. Man muss jede einzelne öffnen und erneut speichern, damit sie im Kalender auftaucht.

Für den Betrieb ist dieser Kalender keine Nebensache. Die Franchisenehmer organisieren damit ihre Bootsübergaben. Wer um 15 Uhr am Steg steht, muss wissen, dass gleich vier Leute kommen, die ein Boot, zwei Piccolo und drei Badetücher gebucht haben. Fehlt der Eintrag, platzt die Übergabe.

Also habe ich die Synchronisation ersetzt. Mein Plugin authentifiziert sich über ein Google-Dienstkonto statt über OAuth – diese Verbindung bricht nicht ab. Fällt sie doch einmal aus, stellt sie sich von selbst wieder her und trägt alles nach, was in der Zwischenzeit aufgelaufen ist. Zusätzlich gleicht es den Bestand im Shop laufend mit den Einträgen im Kalender ab und korrigiert Abweichungen.

Dazu eine Erweiterung, die im Standard nicht vorgesehen ist: Die gebuchten Extras stehen mit im Kalendereintrag. Damit braucht das Personal weder Backend noch Laptop – der Kalender auf dem Handy genügt.

Synchronisation mit Google

WooCommerce Bookings verbindet sich über eine OAuth-Berechtigung mit Google – und die geht regelmäßig verloren. Neu verbinden lässt sich nur von Hand.

Das Plugin verbindet sich über ein Dienstkonto. Die Verbindung bleibt bestehen; reißt sie doch einmal ab, stellt sie sich bis auf Ausnahmen selbst wieder her.

Beispiel: ein Wochenende an einem Standort

  1. Fr 13–17Shop: gebucht Verbindung: verbundenKalender: Buchung
  2. Fr 18–22Shop: gebucht Verbindung: stehtKalender: Buchung+ 2 × Bademantel
  3. Sa 8–12Shop: gebucht Verbindung: Berechtigung verlorenAusnahme: abgerissenKalender: fehlt Buchungnachgetragen
  4. Sa 13–17Shop: gebucht Verbindung: getrenntKalender: fehlt Buchungnachgetragen+ 2 × Piccolo, 3 × Badetuch
  5. Sa 18–22Shop: gebucht Verbindung: von Hand neu verbundenselbst neu verbundenKalender: Buchung
  6. So 8–12Shop: gebucht Verbindung: stehtKalender: Buchung+ Getränke

Nach dem Wiederverbinden bleibt die Lücke. Was in der Auszeit gebucht wurde, erscheint erst im Kalender, wenn jemand jede dieser Buchungen öffnet und neu speichert. Bis dahin steht am Steg niemand bereit. Extras stehen gar nicht im Kalender.

Nach dem Wiederverbinden ist alles da. Das Plugin gleicht die Einträge in Google mit den Buchungen im Shop ab und trägt nach, was fehlt – samt der gebuchten Extras. Das Personal sieht im Handykalender, wer wann kommt und was es erwartet.

Das Ergebnis

Der Kalender ist wieder eine verlässliche Quelle. Keine Übergabe platzt mehr, weil eine Buchung nicht angekommen ist.

Der Vollständigkeit halber: Doppelbuchungen gab es nie – die verhindert die Ressourcenverwaltung von WooCommerce Bookings zuverlässig. Das Problem lag nicht im Verkauf, sondern im Betrieb danach.

Als nächstes entsteht die gemeinsame Dachseite, auf der sich der Franchisegeber vorstellt.

Eingesetzt

  • WordPress Multisite
  • WooCommerce
  • WooCommerce Bookings
  • WPML
  • TWINT
  • WooCommerce PDF Vouchers
  • Google Calendar API (Dienstkonto)
  • eigenes Plugin: Kalender-Synchronisation