Status & Workflow
Vom Entwurf zur bestätigten Anfrage — mit komplettem Audit-Trail.
Status-Übersicht
| Status | Bedeutung | Wer kann ändern? |
|---|---|---|
draft (Entwurf) | Kunde bearbeitet die Merkliste | Kunde (Bearbeitung + Absenden) |
submitted (Abgesendet) | Anfrage liegt beim Admin | Kunde (zurückziehen) / Admin (in Prüfung nehmen) |
in_review (In Prüfung) | Admin bearbeitet die Anfrage | Admin (Bestätigen / Ablehnen) |
fixed (Bestätigt) | Anfrage bestätigt, ggf. Order erzeugt | Niemand (terminal) |
mixed (Gemischt) | Sub-Items haben unterschiedliche Stati (bei Migrations-Altdaten) | Nur Sub-Items |
Workflow-Diagramm
Kunde legt Merkliste an ↓ (sammeln, optional Datum, optional Adresse) draft ↓ Kunde: „Als Anfrage absenden" submitted ↓↑ Kunde: „Anfrage zurückziehen" (zurück nach draft) ↓ Admin: „In Prüfung nehmen" in_review ↓ Admin: „Bestätigen" fixed → Shopware-Bestellung (falls createOrderOnConfirm aktiv)
Jeder Statuswechsel:
- wird im Audit-Log mit Zeitstempel + Bearbeiter + Rolle protokolliert
- triggert die entsprechende Mail-Vorlage (separat für Kunde + Admin)
- aktualisiert bei
submitted/draft-Übergängen die Buchungseinträge insven_miet_booking
Verfügbarkeitslogik
Die Verfügbarkeitsprüfung gilt ausschließlich für Mietartikel (Custom Field sven_miet_is_rental = true). Kaufartikel werden komplett übersprungen — sie haben kein Zeitfenster.
Konflikt-Definition
Ein Artikel gilt als blockiert, wenn:
SUM(confirmed Buchungen anderer Anfragen
im überlappenden Zeitraum [pickup_date − bufferBefore, return_date + bufferAfter])
+ aktuell angefragte Menge
> product.stock
product.stock dient als Flottenkapazität — wie viele Einheiten dieses Artikels parallel verliehen werden können.
Pufferzeiten
bufferBeforeDays— globale Vor-Pufferzeit (Default 1 Tag)bufferAfterDays— globale Nach-Pufferzeit (Default 2 Tage)- Pro Produkt überschreibbar über
sven_miet_buffer_before_days/sven_miet_buffer_after_days
Die Puffer werden zum Zeitpunkt der Buchungs-Anlage eingefroren. Spätere Config-Änderungen wirken nur auf neue Buchungen.
Doppelbuchungs-Block
Der Block greift sowohl beim Customer-Submit als auch beim Admin-Bestätigen. Damit ist sichergestellt, dass keine Überbuchungen entstehen können — auch nicht durch zwei gleichzeitig prüfende Admins.
Audit-Log
Plugin speichert zwei separate Status-Logs:
sven_miet_project_status_log— Anfrage-Level (Top-Container)sven_miet_set_status_log— Listen-Level (Sub-Container, für Migrations-Altdaten relevant)
Pro Eintrag werden festgehalten:
- Zeitstempel (UTC, millisekundengenau)
- Vorheriger Status
- Neuer Status
- Vor-/Nachname des Bearbeiters (aus Customer / Admin-User)
- Rolle:
customer/admin/system(für automatische Übergänge)
Sichtbar im Admin im Anfrage-Detail unter „Statusverlauf".