⚙️ BuddyRent Admin-Handbuch

Produkte pflegen, Anfragen freigeben und Buchungen im Blick behalten

⚠️ Dieses Handbuch beschreibt den aktuellen Stand von admin.html (Stand 26.08.2026). Es ersetzt eine ältere, verlorengegangene Version – bitte bei künftigen Änderungen an admin.html mit aktualisieren.
Zugang
🔑

Login & Registrierung

admin.html öffnen und einloggen. Ohne Konto zuerst über „Registrieren" ein Konto anlegen (E-Mail, Passwort min. 6 Zeichen, plus Adresse/Telefon) – anschließend kommt eine Bestätigungs-E-Mail (auch im Spam-Ordner prüfen), erst danach ist ein Login möglich.

⏳ Nach 30 Minuten Inaktivität fragt die Seite nach, ob Sie eingeloggt bleiben möchten. Ohne Reaktion wird automatisch ausgeloggt.
👤 Produkte gehören dem eingeloggten Konto (user_id). Jedes Admin-Konto sieht und verwaltet nur seine eigenen Produkte – Buchungsanfragen und Buchungen sieht jedes eingeloggte Konto vollständig.
Die 4 Bereiche im Überblick
📦

Produkte

Dachboxen anlegen/bearbeiten/löschen: Name, Tagespreis, Beschreibung, optionale Produkt-URL, Google-Kalender-ID (für die Kalender-Synchronisation) und bis zu 3 Bilder.

  • Bilder: nur Bilddateien, max. 2 MB pro Bild, werden in den öffentlichen Supabase-Storage-Bucket product-images hochgeladen.
  • Saisonpreise (optional): Hauptsaison-Preis, Vor-/Nachsaison-Preis und alle 4 Zeiträume (Vorsaison-Start, Hauptsaison-Start/-Ende, Nachsaison-Ende) müssen entweder alle oder keins davon ausgefüllt sein – nur dann greift die saisonale Abrechnung, sonst gilt ganzjährig der Preis oben. Jahr wird ignoriert (jährlich wiederkehrend, nur Monat/Tag zählt).
  • „Produkt online verfügbar": deaktivieren blendet die Dachbox auf der Website aus, ohne sie zu löschen (z. B. bei Wartung/Reparatur).
  • 🏖️ Urlaub eintragen: Produkt (oder „Alle Produkte"), Von- und Bis-Datum wählen und bestätigen – im gesamten Zeitraum ist dann für die gewählten Dachboxen keine Ausleihe möglich (Abhol- und Rückgabetermine sind für jeden Tag im Zeitraum gesperrt, wie bei einer bestehenden Buchung).
💡 Der Haken „online verfügbar" ist der schnellste Weg, eine Dachbox kurzfristig aus dem Angebot zu nehmen, ohne Buchungshistorie zu verlieren.
🛠️ Technischer Hinweis: „Urlaub eintragen" trägt Sperrtage direkt in die Tabelle blocked_dates ein und berührt nicht die automatische Google-Kalender-Synchronisation (die läuft unabhängig weiter). Unter „Eingetragene Urlaube" lässt sich ein kompletter, zusammenhängender Urlaubszeitraum mit einem Klick wieder löschen. Einzelne Tage aus einem Zeitraum herauszulösen ist aktuell nur direkt in Supabase möglich.
📋

Buchungsfreigabe

Zeigt alle offenen Anfragen (Status pending) – sowohl Online-Anfragen von der Website als auch manuell angelegte. Aktualisiert sich automatisch alle 30 Sekunden, solange dieser Tab aktiv ist.

Der Button „✅ Freigeben & Buchungslink senden" gibt die Buchung sofort frei. Termine/Preis hier in der Tabelle prüfen bzw. anpassen, dann klicken – das speichert die Daten, setzt den Status auf „approved" und verschickt im selben Schritt die Angebotsmail mit dem 48-Stunden-Buchungslink an den Kunden. Kein zusätzlicher E-Mail-Zwischenschritt mehr nötig (Stand 26.08.2026 – zuvor gab es dafür eine zweite interne Mail mit eigenem Freigabe-Button, das entfällt jetzt).

  • Termine und Preis lassen sich direkt in der Tabelle anpassen, bevor freigegeben wird.
  • „✖️ Ablehnen" sendet sofort eine Absage-E-Mail an den Kunden.
📅 Abholdatum darf nicht in der Vergangenheit liegen, Rückgabedatum muss mindestens 3 Tage nach dem Abholdatum liegen (Mindestmietdauer) – die Seite prüft das vor dem Absenden.
✉️

Manuelle Buchung

Für telefonische Reservierungen. Entweder einen bestehenden Kunden aus der Liste wählen (automatisch aus früheren Buchungen befüllt, dedupliziert nach E-Mail) oder Name/E-Mail neu eingeben, dazu Produkt, Abhol-/Rückgabedatum und optional einen geschätzten Preis.

Die angelegte Anfrage landet 1:1 wie eine Online-Anfrage im Tab „Buchungsfreigabe" und durchläuft von dort denselben Freigabeprozess – es gibt keinen separaten Ablauf für Telefonbuchungen.

📨

Buchungen

Zwei Tabellen:

  • ⏳ Offene Zahlungen: Buchungen, bei denen der Kunde „Überweisung" gewählt hat, deren Zahlung aber noch nicht bestätigt ist – das umfasst sowohl eine tatsächliche Überweisung als auch eine stattdessen vereinbarte Barzahlung. Nach Prüfung des Zahlungseingangs (Kontoauszug oder Bargeld) hier manuell „💶 Zahlung bestätigen" klicken – setzt den Status auf paid.
  • ✅ Freigegeben & Bezahlt: die letzten 30 freigegebenen/bezahlten Buchungen. „🔁 Mail erneut senden" schickt dem Kunden erneut seinen Buchungslink (z. B. falls die Mail verloren ging), ohne den Status zu ändern. „✖️ Stornieren" löscht einen evtl. angelegten Google-Kalender-Termin, storniert eine ggf. vorhandene Papierkram-Rechnung und setzt die Buchung endgültig auf storniert – nicht rückgängig zu machen.
💶 Die SumUp-Zahlung (Kreditkarte/PayPal) wird automatisch auf „paid" gesetzt, sobald SumUp die Zahlung bestätigt – dafür ist keine manuelle Aktion nötig. Nur Überweisung/Barzahlung braucht die manuelle Bestätigung hier.
Was im Hintergrund passiert
🔄

Die eigentliche Automatisierung (E-Mails, Freigabe, Zahlungsabgleich) läuft nicht in admin.html selbst, sondern in n8n. admin.html und die Website lösen dort nur Webhooks aus. Vereinfacht:

  1. Anfrage eingegangen (Website oder „Manuelle Buchung"): Buchung wird mit Status pending gespeichert. Kunde bekommt eine unverbindliche Eingangsbestätigung per Mail, Sie eine interne Info-Mail, dass eine neue Anfrage vorliegt (rein informativ, ohne Freigabe-Button).
  2. „✅ Freigeben & Buchungslink senden" in „Buchungsfreigabe" klicken: speichert Termine/Preis, setzt den Status direkt auf approved und verschickt im selben Schritt die Angebotsmail mit dem 48-Stunden-Buchungslink an den Kunden – ein einziger Klick, keine zweite Mail mehr nötig.
  3. Kunde bezahlt über den Buchungslink (Kreditkarte/PayPal via SumUp oder Überweisung/Barzahlung) – siehe Kundenanleitung.
  4. SumUp bestätigt automatisch, sobald die Zahlung eingeht → Status paid. Bei Überweisung/Barzahlung muss der Zahlungseingang manuell im Tab „Buchungen" bestätigt werden.
  5. Stündlicher Erinnerungs-Check: unbezahlte SumUp-Buchungen erhalten nach 2 Stunden eine Erinnerungsmail (danach alle 24h), unbezahlte Überweisungen/Barzahlungen nach 2 Tagen (danach täglich).
🔒 Alle diese n8n-Webhooks (Freigeben, Ablehnen, Stornieren, Mail erneut senden) prüfen den echten, kurzlebigen Supabase-Login-Token des eingeloggten Admins – kein Geheimnis mehr im Browser-Code (Stand 27.08.2026, vorher ein statischer Schlüssel im Klartext).
🛠️ Technischer Hinweis: Der alte Weg über eine zweite interne ToDo-Mail mit eigenem Freigabe-Button (booking-todo-mail) existiert im n8n-Workflow weiterhin als ungenutzter Fallback, wird von admin.html aber nicht mehr ausgelöst.
🧩 Modul_CheckOut (SumUp-Zahlung, Papierkram-Rechnungsstellung) und Papierkram - Rechnungen sind geteilte Workflows, die auch von anderen Projekten genutzt werden – Änderungen daran betreffen mehr als nur BuddyRent.
Wichtige Regeln & Grenzwerte
RegelWert
Mindestmietdauer3 Tage (wird im Kundenformular, bei „Freigeben" und bei „Manuelle Buchung" geprüft)
Rabattab 7 Tagen laut discount_tiers (Standard: 10 % ab 7, 15 % ab 14 Tagen)
Dachträger-Aufpreis3,50 €/Tag
Kaution100 € bar bei Abholung
Skonto bei Überweisung3 % auf den Endpreis
Buchungslink-Gültigkeit48 Stunden ab Freigabe
Zahlungsfrist Überweisung7 Tage
Erinnerung SumUp / Überweisungnach 2 Std. bzw. 2 Tagen, danach alle 24 Std.
Bildgröße (Produktbilder)max. 2 MB, nur Bildformate
Auto-Logout Adminnach 30 Minuten Inaktivität (mit Rückfrage)
Verspätete Rückgabe30 €/Tag
Diese Werte stammen aus dem aktuellen Code (index.html, Buchungssite.html, supabase_schema.sql, n8n-Workflow) – Änderungen daran (z. B. andere Kaution oder Fristen) müssen im jeweiligen System und hier im Handbuch nachgezogen werden.
Häufige Fragen

Bekommt der Kunde nach meiner Freigabe wirklich sofort eine Mail mit Bezahlmöglichkeit?

Ja. Sobald Sie „✅ Freigeben & Buchungslink senden" klicken, erhält der Kunde direkt eine Angebotsmail mit seinem persönlichen, 48 Stunden gültigen Buchungslink – darüber kann er sofort per SumUp (Kreditkarte/PayPal) oder Überweisung bezahlen.

Warum lässt sich eine Buchung nicht freigeben (Mindestmietdauer)?

Rückgabedatum muss mindestens 3 Tage nach dem Abholdatum liegen (Abhol- und Rückgabetag zählen mit). Das wird beim Freigeben, bei der manuellen Buchung und bereits im Kundenformular geprüft.

Ich sehe eine Buchung doppelt oder eine Fehlermeldung „bereits bearbeitet" (409)

Das passiert, wenn die Buchung zwischenzeitlich bereits freigegeben/abgelehnt wurde (z. B. durch einen zweiten Admin oder einen zweiten Tab). Die Zeile wird automatisch aus der Liste entfernt – kein weiterer Handlungsbedarf.

Ein Kunde hat seinen Buchungslink verloren oder er ist abgelaufen

Solange die Buchung im Status approved oder pending_payment ist, im Tab „Buchungen" auf „🔁 Mail erneut senden" klicken. Ist die Buchung dagegen ganz verfallen, muss der Kunde eine neue Anfrage stellen.

Wie trage ich eine Überweisung oder Barzahlung als bezahlt ein?

Erst den Zahlungseingang prüfen (Kontoauszug – Verwendungszweck enthält die Buchungs-ID – oder erhaltenes Bargeld), dann im Tab „Buchungen" unter „⏳ Offene Zahlungen" auf „💶 Zahlung bestätigen" klicken.

Wie lege ich Saisonpreise an, ohne dass die Preisanzeige durcheinandergerät?

Entweder alle 6 Felder (2 Preise + 4 Zeiträume) ausfüllen oder den gesamten Block leer lassen – ein Mischzustand wird beim Speichern abgelehnt.

Ich habe eine Frage, die hier nicht beantwortet wird

Kontakt: info@energy-leisure.de · +49 (0) 176 31013769