Buchungen mit WebBlocks Appointments annehmen
Lassen Sie Besucher Termine auf Ihrer eigenen Website buchen. Legen Sie fest, was bei wem oder welcher Ressource zu welchen Zeiten gebucht werden kann. Platzieren Sie anschließend ein natives Formular auf einer CMS-Seite und verwalten Sie die Termine im Adminbereich.
Unser Beispiel ist Northstar Studio. Besucher können eine 45-minütige Portfolio consultation beim Studio adviser anfragen. Der Berater arbeitet Montag bis Freitag von 09:00–17:00 in Europe/Berlin, mit 15 Minuten nach jeder Beratung für Vorbereitung und Notizen. Sie senden eine Besucheranfrage, bestätigen sie als Operator, erfassen eine Telefonbuchung und verfolgen eine Besucherstornierung bis in die Liste.
Diese Anleitung wurde mit Appointments 0.16.1 und WebBlocks CMS 1.105.26 geprüft. Das optionale Mitgliederbeispiel nutzt zusätzlich Memberships 0.2.0. Alle Namen, Buchungen und Adressen in den Bildern sind fiktiv. Buchung, Statusänderungen, datierte Schließung, Stornierung und Sichtbarkeit von Mitgliederdiensten wurden lokal erprobt. Echte Mailzustellung und ein produktiver Erinnerungsplan wurden nicht getestet; lokale Mailwarnungen bleiben bewusst sichtbar. Die Bilder sind auf Englisch; Feld- und Schaltflächennamen bleiben zur Zuordnung ebenfalls auf Englisch.
Zuerst die vier Bestandteile verstehen
| Bestandteil | Was er steuert | Beispiel Northstar Studio |
|---|---|---|
| Mitarbeiter oder Raum | Eine Ressource für jeweils einen Termin. | Studio adviser oder Workshop room. |
| Dienst | Buchungsangebot, Dauer, Puffer und zugeordnete Ressourcen. | Portfolio consultation, 45 Minuten, 15 Minuten Nachpuffer. |
| Öffnungszeiten und Ausnahmen | Wiederkehrende Ressourcenverfügbarkeit und datierte Änderungen. | Werktags 09:00–17:00; am 4. November geschlossen. |
| Appointment Form | Besuchereinstieg mit Überschrift, Einführung und Schaltflächentext. | Book your consultation mit Request appointment. |
Dienste, Ressourcen, Öffnungszeiten und Buchungsregeln gehören zur Website, nicht zum einzelnen Formularblock. Zwei Buchungsseiten derselben Website verwenden dieselben Betriebsdaten. Eine andere Formularüberschrift ändert weder die Dienstdauer noch öffnet sie einen weiteren Kalender.
Appointments dient der Terminplanung. Diese Version nimmt keine Buchungszahlung an, erstellt keinen Meeting-Link und synchronisiert keinen Google- oder Outlook-Kalender des Operators. Bestätigungsmails können einen .ics-Kalenderanhang zum Import enthalten; das ist keine fortlaufende Synchronisierung eines externen Kalenders.
Memberships ist optional. Normale Gastbuchungen benötigen kein Konto. Ein eingeschränkter Dienst kann ein verifiziertes Mitglied oder ein bestimmtes aktives Paket verlangen, wie später beschrieben. Ein bezahlter Memberships-Anspruch kann dieses Paket bereitstellen; das Terminformular erhebt jedoch keine separate Buchungsgebühr.
Entwicklerrouten und den detaillierten Vertrag beschreibt die Appointments-Referenz. Diese Anleitung folgt dem aktuellen Panel und Besucherablauf.
Bevor Sie beginnen
Nutzen Sie zum Lernen eine Testwebsite und bereiten Sie vor:
- Eine funktionierende WebBlocks-CMS-Installation und ein Super admin-Konto für Installation und Einstellungen.
- Eine kompatible Version. Appointments 0.16.1 deklariert CMS ^1.99.0 und PHP >=8.3; der Katalog nennt Laravel 13. Beachten Sie das Kompatibilitätsergebnis Ihrer tatsächlichen Installation einschließlich der eigenen CMS-Anforderungen.
- Berechtigung zur Verwaltung von Terminen, Diensten und Öffnungszeiten der gewählten Website. Anzeigen, Verwalten und Einstellungen sind getrennte Rechte. Site Admin erhält standardmäßig die Ansichts-/Verwaltungsrollen des Plugins; das umfasst nicht automatisch Einstellungen.
- Korrekte Website-Zeitzone, kanonische Domain und echten CMS-Mailversand, bevor Besucher buchen dürfen.
- Einen Hosting-Administrator für die Einrichtung des Erinnerungsbefehls, wenn Sie Erinnerungen wünschen.
Prüfen Sie vor der Terminanlage unter Sites die Timezone. Dieses Beispiel nutzt Europe/Berlin. Öffentliche und manuell eingegebene Zeiten beziehen sich auf diese Website-Uhr; sie werden nicht automatisch in die Browserzeitzone des Besuchers umgerechnet. Nennen Sie die gültige Zeitzone insbesondere bei Fernberatungen.
Das Plugin ist im WebBlocks-Plugin-Katalog kostenlos aufgeführt. Für den Gastbuchungsteil sind weder Commerce noch Memberships erforderlich.
1. Appointments installieren und aktivieren
- Öffnen Sie als Super admin System → Plugins.
- Wählen Sie Browse Plugin Catalog und öffnen Sie WebBlocks Appointments.
- Prüfen Sie Version, Kompatibilität und Versionshinweise.
- Wählen Sie Install from Catalog, wenn die kompatible Version angeboten wird.
- Wählen Sie in den Details des installierten Plugins Enable Plugin. Neue Pakete sind zur Prüfung zunächst deaktiviert.
Liefert der Administrator eine vertrauenswürdige Release-ZIP, verwenden Sie Plugin ZIP → Upload Plugin ZIP, prüfen und aktivieren sie. Für die Panelinstallation müssen Sie keinen Quellcode bauen. Aktuelle CMS-Versionen bereiten Datenbankänderungen bei Installation, Update und Aktivierung vor; beheben Sie Einrichtungsfehler vor dem Fortfahren.
Die Seitenleiste erhält eine Gruppe Appointments mit Appointments, Services, Staff & Rooms, Opening Hours und Settings. Nutzen Sie bei mehreren Websites die vorhandenen Website-Steuerelemente und prüfen Sie den Kontext vor Änderungen. Das öffentliche Formular verwendet die Website seiner Seite.
Plugin Health prüft Tabellen, aktive Dienste und Ressourcen, Zuordnungen, Öffnungszeiten, Empfänger, Mailversand und Erinnerungsplanung. Eine Warnung hilft bei der Einrichtung und ist keine Freigabe zum Ignorieren. Unsere Bilder nutzen einen nicht zustellenden lokalen Mailtransport; deshalb besteht trotz funktionierender Buchung berechtigter Handlungsbedarf.
2. Mitarbeiter oder Raum anlegen
Öffnen Sie Appointments → Staff & Rooms → Add staff or room.
- Geben Sie Studio adviser unter Name ein.
- Aktivieren Sie für das Beispiel Use as the default for new bookings.
- Lassen Sie Active aktiviert.
- Wählen Sie Save.
Eine Ressource kann einen Termin gleichzeitig übernehmen: eine Person, ein Beratungsplatz oder ein Raum. Legen Sie für jeden unabhängig buchbaren Kalender eine eigene Ressource an. Der Name „Sechserteam“ erzeugt keine sechs gleichzeitigen Plätze.
Die zweite Beispielressource Workshop room gehört zum separaten Dienst Studio room session. Eine Beraterbuchung reserviert diesen Raum nicht automatisch. Ein Termin hat eine Ressource; mehrere Dienstzuordnungen reservieren nicht gleichzeitig Mitarbeiter und Raum.
Ordnen Sie die Beratung für den einfachen Einstieg nur Studio adviser zu. Das öffentliche Formular verwendet in dieser Version die erste aktive zugeordnete Ressource, bevorzugt den Standard und danach die Sortierung. Es gibt weder eine Besucherauswahl des Mitarbeiters noch einen Pool, der die nächste freie Ressource probiert. Bei belegter Ressource wird nicht automatisch eine andere eingesetzt.
3. Dienst erstellen und Ressource zuordnen
Öffnen Sie Appointments → Services → Add service und tragen Sie ein:
| Feld | Beispiel | Bedeutung |
|---|---|---|
| Name | Portfolio consultation | Der Name für Besucher. |
| Slug | portfolio-consultation | Leer lassen zur Generierung aus dem Namen oder einen stabilen Bezeichner wählen. |
| Duration | 45 | Minuten mit dem Besucher. |
| Buffer before (min) | 0 | In diesem Beispiel kein Vorpuffer. |
| Buffer after (min) | 15 | Reservierte Zeit nach der Beratung. |
| Delivered by | Studio adviser | Ausführende Ressource. |
| Verified members only | Aus | Gäste können das Grundbeispiel buchen. |
| Required membership package | No package requirement | Zunächst kein Mitgliedspaket erforderlich. |
| Active | Ein | Für neue Buchungen verfügbar. |
Wählen Sie Save. Prüfen Sie im Katalog Name, Dauer, Puffer, Ressource und Active-Status. Ein Dienst benötigt eine aktive zugeordnete Ressource mit passenden Öffnungszeiten, damit Zeiten angeboten werden.
Dauer und Startintervall unterscheiden sich. Ein 45-Minuten-Dienst muss nicht nur alle 45 Minuten beginnen. Sie wählen unter Settings ein 15-Minuten-Intervall, sodass 09:00, 09:15, 09:30 usw. möglich sind, sofern der vollständige Termin und Konfliktprüfungen es zulassen.
Eine Beratung 10:00–10:45 mit 15 Minuten Nachpuffer belegt den Berater bis 11:00. Der nächste Termin kann nicht um 10:45 beginnen. Auch frühere Startvorschläge entfallen, wenn deren Termin und Nachbereitung den reservierten Zeitraum überlappen würden.
Der Besuchertermin muss innerhalb eines Öffnungsfensters enden. Ein Puffer darf darüber hinausreichen: Nachbereitung kann nach einem Terminende um 17:00 noch nach Geschäftsschluss stattfinden. Muss sämtliche Arbeit zu einer festen Uhrzeit enden, berücksichtigen Sie das beim letzten buchbaren Fenster.
4. Wöchentliche Öffnungszeiten einrichten
Öffnen Sie Appointments → Opening Hours, wählen Sie bei Staff or room den Studio adviser und anschließend Apply.
Wählen Sie unter Add hours einen Tag und tragen Sie Opens und Closes ein. Fügen Sie im Beispiel für Montag bis Freitag jeweils 09:00–17:00 hinzu. Speichern Sie jede Regel mit Add hours.
Das sind lokale Uhrzeiten der Website-Zeitzone. Legen Sie Regeln pro Ressource an; die Zeiten des Beraters gelten nicht automatisch für Workshop room.
Für eine Mittagspause verwenden Sie zwei Fenster am selben Tag, etwa 09:00–12:00 und 13:00–17:00, statt eines durchgehenden Fensters. Der Dienst muss vollständig in ein Fenster passen und kann keine Pause überbrücken. Vermeiden Sie überlappende Doppelregeln, die den Plan unübersichtlich machen.
Tage ohne Regel haben keine reguläre Öffnungszeit. Ein aktiver Dienst allein macht Abende und Wochenenden nicht buchbar.
5. Feiertage und datierte Ausnahmen anlegen
Verwenden Sie in Opening Hours Add exception für einmalige Schließungen oder andere Zeiten. Im Beispiel schließt das Studio am 4. November 2026:
- Setzen Sie Date auf diesen Tag.
- Wählen Sie für dieses Beispiel mit einer Website unter Staff or room die Option Whole site.
- Lassen Sie Closed aktiviert.
- Tragen Sie Studio planning day unter Reason ein.
- Wählen Sie Add exception.
Wählen Sie für eine Person oder einen Raum die konkrete Ressource statt Whole site. Für abweichende Öffnungszeiten deaktivieren Sie Closed und geben die ersetzenden Opens-/ Closes-Zeiten ein. Eine offene Ausnahme ersetzt die regulären Tageszeiten, statt eine zusätzliche Schicht anzuhängen. Eine passende Schließung hat Vorrang vor offenen Fenstern.
Bevor Sie bei mehreren Websites in 0.16.1 auf Whole site vertrauen, bevorzugen Sie ressourcenspezifische Ausnahmen und testen alle betroffenen Websites. Die Zeitsuche kann eine solche datierte Gesamtschließung auch außerhalb der vorgesehenen Website anwenden. Ressourcenspezifische Ausnahmen begrenzen das Beispiel auf die gewählte Ressource.
Öffnen Sie nach dem Speichern das Besucherformular für das Datum. Ein geschlossener Tag darf keine Zeiten anbieten. Prüfen Sie auch vorhandene Buchungen: geänderte Zeiten oder neue Schließungen stornieren keine bereits gespeicherten Termine. Kontaktieren Sie betroffene Kunden und bearbeiten Sie diese separat.
6. Buchungsregeln festlegen
Öffnen Sie Appointments → Settings und verwenden Sie:
| Einstellung | Wert | Ergebnis |
|---|---|---|
| Slot interval (min) | 15 | Startvorschläge liegen 15 Minuten auseinander. |
| Minimum notice (min) | 120 | Besucher müssen mindestens zwei Stunden im Voraus buchen. |
| Booking horizon (days) | 60 | Der öffentliche Kalender ist bis 60 Tage im Voraus geöffnet. |
| Confirm bookings automatically | Aus | Neue Anfragen beginnen Pending zur Operatorprüfung. |
| Notification email | bookings@example.test | Fiktiver Betriebsempfänger; außerhalb des Tests echte eigene Adresse verwenden. |
| Reminder (hours before) | 24 | Erinnerung wird innerhalb der 24 Stunden vor dem Termin fällig. |
| Let visitors cancel from their confirmation email | Ein | Besucher bestätigen die Stornierung über ihren privaten E-Mail-Link. |
Wählen Sie Save. Die Regeln gelten pro Website. Änderungen beeinflussen künftige Verfügbarkeit und Anfragen; sie verschieben keine vorhandenen Termine und überschreiben keine ursprünglichen Kundendaten.
Pending bedeutet nicht freier Termin. Eine ausstehende Buchung hält Ressource und Zeit bereits wie eine bestätigte. Wählen Sie manuelle Bestätigung nur bei zeitnaher Bearbeitung. Automatische Bestätigung ändert den Anfangsstatus neuer Buchungen; sie bestätigt vorhandene Pending-Einträge nicht rückwirkend.
Ohne Plugin-Empfänger fällt Notification email auf die Kontaktadresse der Website und danach den konfigurierten Absender zurück. Eine Empfängeradresse richtet den Versand nicht ein; der CMS-Mailtransport muss ebenfalls funktionieren. Setzen Sie Reminder auf 0, wenn Sie bewusst keine Erinnerungen senden.
7. Das native Appointment Form auf einer Seite einfügen
Erstellen Sie auf derselben Website einen Entwurf wie Book a studio visit oder eine gestufte Aktualisierung der vorhandenen Buchungsseite. Erläutern Sie kurz Dienst, Zeitzone und Ablauf nach einer Anfrage.
Im Main-Slot:
- Wählen Sie Add Block und Appointment Form.
- Öffnen Sie Block Fields.
- Setzen Sie Heading auf Book your consultation.
- Setzen Sie Intro text auf Choose a service and a date. Times are shown in the studio clock (Europe/Berlin).
- Setzen Sie für manuelle Bestätigung Submit button label auf Request appointment.
- Wählen Sie Save Block und öffnen Sie die Preview der gespeicherten Seite.
Diese Felder steuern den Text dieser Formularplatzierung. Dienstkatalog, Ressourcen und Öffnungszeiten stehen dort nicht. Sie benötigen weder Trusted HTML noch ein eingebettetes Fremdwidget oder separates Anbieterkonto.
Für weitere aktivierte Seitensprachen bearbeiten Sie den Formulartext im Blockeditor. Das Dienstformular hat in dieser Version nur ein Name-Feld; prüfen Sie die tatsächliche Besucherdarstellung, statt eine automatische Übersetzung der Dienste durch die Seitenübersetzung anzunehmen.
Die Sofortvorschau des Blockeditors unterstützt keine Plugin-Formulare. Speichern Sie und verwenden Sie die gespeicherte Seitenvorschau. Eine Buchung aus der Seitenvorschau erstellt einen echten Termin in dieser Installation. Lernen Sie mit fiktiven Daten auf einer Testwebsite und veröffentlichen Sie erst nach Prüfung von Ablauf und Mail.
8. Eine Besucheranfrage absenden
Für die Bilder verwendet eine lokale Besucherseite das gespeicherte Formular. Öffnen Sie auf Ihrer Testwebsite Vorschau oder geprüfte Buchungsseite und wählen Sie:
- Service: Portfolio consultation.
- Date: einen zukünftigen offenen Tag innerhalb des Horizonts; im Beispiel 3. November 2026.
- Time: 10:00 in Europe/Berlin.
Mit JavaScript aktualisieren Dienst- oder Datumsänderungen die angebotenen Zeiten. Ohne JavaScript dient die serverseitige Schaltfläche Show available times als Rückfall. Der Server prüft Verfügbarkeit beim Absenden erneut; eine angezeigte Zeit wird während der Formulareingabe noch nicht reserviert.
Geben Sie Name und E-Mail ein, zum Beispiel Example visitor und visitor@example.test. Phone und Anything we should know? sind optional. Lassen Sie Phone im Beispiel leer und ergänzen Sie eine kurze fiktive Notiz. Verwenden Sie für echte Zustelltests eine kontrollierte Adresse.
Wählen Sie Request appointment einmal. Wurde die Zeit inzwischen belegt, wählen Sie einen neuen Vorschlag. Lassen Sie bei einem normalen menschlichen Test Zeit zum Ausfüllen; wiederholte sofortige automatisierte Posts sind kein Zustelltest.
Die Meldung lautet Your appointment is booked. Bei manueller Bestätigung bleibt der gespeicherte Status Pending. Die Meldung verwendet außerdem einen allgemeinen Text zum Mailversand; das beweist keine Zustellung. Unser lokaler Transport versendet nicht. Prüfen Sie anschließend den gespeicherten Termin und die getrennten Nachrichtenergebnisse.
Öffnen Sie Dienst und Datum erneut. Der ausstehende 10:00-Termin samt Puffer muss kollidierende Starts entfernen. Eine Schließung darf keine Zeiten anbieten. Verwenden Sie ein zum Testtag passendes Zukunftsdatum statt die Screenshot-Daten unbegrenzt zu wiederholen.
9. Anfrage finden und bestätigen
Öffnen Sie Appointments → Appointments. Diese Version zeigt standardmäßig Buchungen über alle Tage mit späteren Terminen zuerst, nicht nur heute. Grenzen Sie über Date, Status oder Search ein und wählen Sie Apply; Reset leert Filter.
Suchen Sie Example visitor am 3. November 2026, 10:00–10:45, zugeordnet zu Studio adviser. Die Website-Zeitzone steht bei der Überschrift; die Liste zeigt Dienst, Kundendaten, Status und getrennte Benachrichtigungsergebnisse.
Wählen Sie unter Actions die Stiftschaltfläche Edit status, im Dialog Confirmed und anschließend Save status.
Die wichtigsten Statuswerte:
| Status | Betriebliche Bedeutung |
|---|---|
| Pending | Anfrage wartet auf Prüfung; die Zeit ist bereits reserviert. |
| Confirmed | Angenommener Termin; Zeit bleibt reserviert. |
| Completed | Als abgeschlossen erfasst; der historische Termin bleibt belegt. |
| No show | Besucher ist nicht erschienen; kein Mittel zur Verschiebung künftiger Buchungen. |
| Cancelled | Storniert und blockiert die Zeit nicht mehr. |
Statusänderungen versenden die ursprünglichen Buchungsnachrichten nicht erneut. Benötigt Ihr Ablauf eine persönliche Zusage oder Änderungsmitteilung, kontaktieren Sie den Kunden über Ihren üblichen Kanal und prüfen das Ergebnis. Confirmed löst nicht automatisch eine neue Bestätigungsmail aus.
Die Liste bietet Statusbearbeitung, kein vollständiges Umplanungsformular. Vereinbaren Sie eine andere Zeit, stornieren Sie bewusst das Original und erstellen Sie eine neue Buchung. Prüfen Sie Nachrichten separat. Löschen Sie das Original nicht nur für eine aufgeräumte Liste: Löschen ist endgültig und verschickt keine Stornomitteilung.
10. Eine Telefonbuchung erfassen
Öffnen Sie Appointments → Appointments → Add appointment und wählen Sie:
- Service: Portfolio consultation.
- Staff or room: Studio adviser.
- Date: denselben künftigen Testtag.
- Time: 15:00 in der Website-Zeitzone.
- Customer: Example phone booking.
- Email:
phone@example.test. - Optional eine Notiz zur Telefonanfrage.
Wählen Sie Save. Die Buchung trägt entered manually. Ohne automatische Bestätigung beginnt auch sie Pending; bestätigen Sie sie bei Bedarf mit Edit status.
Manuelle Eingabe prüft weiterhin Überschneidungen und Puffer. Sie überspringt bewusst öffentliche Öffnungszeiten-, Vorlauf- und Horizontprüfungen, damit Operatoren Ausnahmen treffen können. Prüfen Sie diese Regeln selbst, wählen Sie die richtige Ressource und betrachten Sie eine manuelle Buchung nicht als Nachweis öffentlicher Verfügbarkeit.
11. Mail prüfen und Erinnerungen planen
Nach dem Speichern versucht Appointments unabhängig zwei Nachrichten: Betriebsmitteilung und Besucherbestätigung. Die Bestätigung kann einen .ics-Anhang mit dem Termin enthalten. Besucher importieren ihn ohne Verbindung eines externen Kalenderkontos zum CMS.
Prüfen Sie Business notified und Visitor notified in der Zeile. Ein Fehler bedeutet nicht zwingend, dass beide scheiterten. Die Werte umfassen sent, failed, skipped und not configured. Sent bestätigt nur die Annahme durch den Transport, weder Lesen noch sicheren Posteingang.
Das Beispiel zeigt not configured, weil lokale Log-Mail verwendet wird. Bei Mailfehlern bleibt die Buchung gespeichert. Lassen Sie vor echten Einladungen CMS-Mail und Absender konfigurieren, die kanonische Domain prüfen und beide Empfänger sowie Kalenderanhang mit kontrollierten Postfächern testen.
Lassen Sie für Erinnerungen diesen Befehl planen:
php artisan webblocks-appointments:dispatch-reminders
Führen Sie ihn alle paar Minuten aus, etwa als Aufgabe im minütlich laufenden Laravel-Scheduler oder per Hosting-Cron. Ein laufender Host-Scheduler plant diesen Plugin-Befehl nicht automatisch ein. Fügen Sie die Aufgabe ausdrücklich hinzu. Plugin Health kann die tatsächliche Ausführung des Erinnerungs-Crons nicht prüfen; kontrollieren Sie sie auch beim Hosting/Scheduler.
Ein Administrator kann die fällige Menge ohne Versand prüfen:
php artisan webblocks-appointments:dispatch-reminders --site=1 --dry-run
Ersetzen Sie 1 durch die tatsächliche Website-ID. Bei 24 Stunden Vorlauf ist ein weiter entfernter Termin noch nicht fällig; ein leerer Probelauf kann korrekt sein. Die Ausgabe kann Besucheradressen enthalten und gehört in den privaten Operatorkontext.
Jeder geeignete zukünftige Termin wird einmal berücksichtigt. Auch bei Fehler oder fehlender Mailkonfiguration wird das Ergebnis erfasst; wiederholte Cron-Läufe sind kein automatischer Wiederholungsdienst. Stornierungen sind ausgeschlossen; Pending kann geeignet sein, weil es die Zeit weiterhin reserviert. Stimmen Sie das auf Ihren Freigabeablauf ab und testen Sie vor dem Betrieb.
12. Besucherstornierung testen
Lassen Sie Let visitors cancel from their confirmation email aktiviert. Im echten Mailtest folgt der Besucher dem privaten Link aus Bestätigung oder Erinnerung. Die Bilder verwenden den eigenen Link der lokalen Buchung ohne Mailversand.
Das Öffnen zeigt nur eine Bestätigungsseite. Erst Cancel this appointment storniert. So kann ein Mailscanner durch bloßes Besuchen des Links keine unbeabsichtigte Stornierung auslösen.
Kehren Sie zur Operatorliste zurück. Der Eintrag zeigt Cancelled. Die frühere 10:00-Zeit sollte wieder verfügbar sein, sofern Dienst, Plan, Vorlauf und Horizont passen. Die separate Telefonbuchung um 15:00 bleibt unverändert.
Der Stornierungslink ist privater Zugang zu dieser Buchung. Veröffentlichen Sie ihn nicht auf Seiten, in Analysenotizen oder geteilten Screenshots. Die Stornierung lässt sich dort nicht rückgängig machen; erneutes Buchen ist eine separate Aktion. Bereits begonnene Termine können hier nicht storniert werden. Bei deaktivierter Online-Stornierung muss der Besucher den Betrieb kontaktieren.
Nach Speicherung der Besucherstornierung wird eine Betriebsmitteilung versucht. Ein Nachrichtenfehler stellt die Buchung nicht wieder her. Operator-Statusänderungen sind ein anderer Ablauf und senden diese Besucherstornomitteilung nicht automatisch.
13. Optional einen Dienst mit Memberships beschränken
Schließen Sie zuerst den Gastablauf ab. Installieren und aktivieren Sie für Mitgliederdienste eine kompatible Memberships-Version. Appointments 0.16.1 akzeptiert Memberships ^0.1 oder ^0.2. Bereiten Sie mit der Memberships-Anleitung verifizierte Konten, ein aktives Paket und eine aktuelle Vergabe oder bezahlte Berechtigung vor.
Im Diensteditor:
- Erstellen oder öffnen Sie etwa Member portfolio review.
- Ordnen Sie wie üblich aktive Ressource und Dauer zu.
- Aktivieren Sie Verified members only für verifizierte Konten.
- Wählen Sie bei Bedarf Workshop circle unter Required membership package.
- Lassen Sie den Dienst aktiv und wählen Sie Save.
Auch ein Paket verlangt ein verifiziertes Mitglied; die Auswahl erlaubt keinen anonymen Zugang. Zeitsuche und Buchungsübermittlung prüfen beide die Berechtigung für die Website des Dienstes. Bei berechtigten angemeldeten Mitgliedern können Name und E-Mail vorausgefüllt werden; die Buchung behält neben dem Kundenschnappschuss die Mitgliedszuordnung.
Testen Sie abgemeldet, mit einem verifizierten Konto ohne Paket und mit aktuellem Paketinhaber. Eingeschränkte Dienste werden aus den Auswahlmöglichkeiten gefiltert; bleibt keiner übrig, meldet das Formular die erforderliche aktive Mitgliedschaft. Im Beispiel sehen Gäste normale Beratung und Raumdienste; das verifizierte Workshop-circle-Mitglied zusätzlich Member portfolio review.
Ohne verfügbares Memberships können Gastdienste weiter offen bleiben, eingeschränkte Dienste jedoch nicht. Spätere Änderungen einer Vergabe überschreiben keine historischen Kundendaten. Manuelle Operatorbuchungen bleiben möglich und sind als bewusste Operatorentscheidung statt als Besuchertest zu prüfen.
14. Dienste und Ressourcen mit erhaltener Historie pflegen
Deaktivieren Sie für eine Pause Active am Dienst oder an der Ressource. Dadurch werden vorhandene Termine nicht automatisch storniert; prüfen und bearbeiten Sie diese separat.
Das Löschen eines Dienstes oder einer Ressource mit Terminverlauf deaktiviert den Datensatz stattdessen. Dadurch bleiben Beziehungen zu früheren Buchungen erhalten. Ohne Historie ist Löschen möglich; prüfen Sie vor Bestätigung sorgfältig. Das Löschen eines Termins selbst entfernt seine Daten dauerhaft und verschickt keine Stornomitteilung.
Eine geänderte Dienstdauer verschiebt bestehende gespeicherte Start- und Endzeiten nicht. Pufferprüfungen verwenden aktuelle Dienstpuffer, sodass Änderungen benachbarte angebotene Zeiten beeinflussen können. Prüfen Sie danach den Kalender.
Halten Sie die Website-Zeitzone nach Buchungsstart stabil. Termine werden als UTC-Zeitpunkte gespeichert, Öffnungszeiten als lokale Uhrzeitregeln. Ein Zeitzonenwechsel kann Darstellung und künftige Verfügbarkeit ändern. Bei Sommerzeitwechseln entfallen nicht existierende Uhrzeiten; bei doppelten wird das frühere Auftreten gewählt. Testen Sie Übergangstage, falls Sie in diesen Stunden arbeiten.
Fehlerbehebung
| Symptom | Zuerst prüfen |
|---|---|
| Appointments fehlt | Aktivierung, Datenbankeinrichtung, Rollenrechte und berechtigte Website. |
| Formular meldet keine Online-Buchung | Aktive Dienste, aktive zugeordnete Ressource, Website der Seite und vollständige Einrichtung. |
| Keine Zeiten trotz aktivem Dienst | Ressource, Wochenregeln, Ausnahmen, passende Dauer, Buchungen/Puffer, Vorlauf und Horizont. |
| Ressource wirkt frei, Zeiten fehlen | Formular nutzt eventuell eine andere Standardressource; kein Zusammenlegen der Mitarbeiterkalender. |
| Mittagslücke nicht buchbar | Dienst muss vollständig in ein Fenster passen und darf keine Pause überbrücken. |
| Zeiten wirken verschoben | Website-Zeitzone, Sommerzeitdatum und Unterschied zur Besucheruhr. |
| Schließung betrifft andere Website | In 0.16.1 ressourcenspezifische Ausnahmen nutzen und Whole site installationweit prüfen. |
| Erfolgsmeldung ohne auffindbaren Termin | Website und Filter, danach Validierung/Spamschutz. Gespeicherten Datensatz statt nur Meldung prüfen. |
| Anfrage ist Pending | Automatische Bestätigung aus; prüfen und ausdrücklich bestätigen. |
| Status geändert, keine neue Mail | Statusänderungen versenden ursprüngliche Nachrichten nicht erneut. |
| Termin vorhanden, keine Mail | Getrennte Ergebnisse, CMS-Mail, Empfänger, kanonische Domain und Spamordner. |
| Keine Erinnerungen | Positiver Vorlauf, zukünftiges Fälligkeitsfenster, ausdrückliche Cron-Aufgabe, Mail und vorhandenes Erinnerungsergebnis. |
| Besucher kann nicht stornieren | Richtiger privater Link, erlaubte Stornierung, nicht geschlossener Termin und Beginn noch zukünftig. |
| Mitgliederdienst fehlt | Aktives verifiziertes Konto, richtige Website, kompatibles aktives Memberships und aktuelle Paketberechtigung. |
| Gelöschter Dienst bleibt im Verlauf | Bei vorhandenen Terminen erwartet; Deaktivierung bewahrt Historie. |
Abschlussprüfung vor dem Buchungsstart
Prüfen Sie Zeitzone, Zuordnungen, Ressourcenkapazität, Wochenstunden und Ausnahmen. Senden Sie eine normale Anfrage, finden Sie den Datensatz, kontrollieren Sie den Status und dass die belegte Zeit nicht weiter angeboten wird. Testen Sie manuelle Eingabe und Stornierung einschließlich der wieder freigegebenen Zeit.
Prüfen Sie anschließend echte Betriebs-/Besuchermails, Kalenderanhang und Erinnerungsaufgabe mit kontrollierten Konten. Testen Sie bei Memberships die passenden Mitgliedszustände. Prüfen Sie die Seite am Telefon, veröffentlichen Sie erst bei funktionierendem Ablauf und wiederholen Sie direkte Besuchertests auf der öffentlichen HTTPS-Website.
Weiter mit Appointments-Referenz, Memberships-Anleitung, Eine Seite veröffentlichen, Navigationsmenüs oder Rollen und Berechtigungen.