Das System bildet keinen klassischen E-Commerce-Checkout ab, sondern einen internen PSA-Anforderungsprozess mit optionaler E-Mail-Bestätigung vor der internen Weiterleitung.
index.php -> product.php -> cart.php -> checkout.phpdata/orders.jsonincludes/functions.phpadmin/orders.phpadmin/backorders.phpadmin/settings.phpHinweis:
config.php liefert Startwerte, wirksam im Betrieb sind die normalisierten Einstellungen aus data/settings.json (über getSystemSettings()).product.php in den Warenkorb gelegt (optional mit Größe).cart.php) enthält pro Produkt nur einen Eintrag; erneutes Hinzufügen aktualisiert ggf. die Größe statt eine Menge zu erhöhen.checkout.php) erfasst:
createOrder(...) erzeugt eine Bestellnummer (ORDER_PREFIX-JAHR-LFDNR, z. B. FWFS-2026-001) und speichert die Bestellung.order-success.php weitergeleitet.Eine Bestellung ist nur möglich, wenn die gewählte Organisation existiert und als aktiv markiert ist. Inaktive/ungültige Organisationen blockieren den Abschluss.
Die Einstellung order_confirmation_required steuert, ob eine Bestätigung nötig ist:
confirmation_status = pendingorder-confirm.php?token=...) versendet.order_confirmation_expiry_days; danach confirmation_status = expired.confirmation_status = not_requiredEs gibt keinen expliziten Admin-Approve-Schritt, der den Eingang einer Bestellung freischaltet. Die formale Freigabelogik ist die optionale E-Mail-Bestätigung durch den Besteller.
In admin/orders.php werden Bestellungen nach Status geführt und manuell bearbeitet:
open: keine Position bearbeitetpartial: mindestens eine Position bearbeitetprocessed: alle Positionen bearbeitetcancelled: Bestellung storniertpending/expired über confirmation_statusRegeln:
pending oder expired ist.admin_notified_at) wird gesetzt, wenn die Admin-Benachrichtigungsmail erfolgreich versendet wurde.Wenn Artikel nicht auf Lager sind, können Admins Positionen als Nachbestellung markieren. Der Vorgang ist nur im Admin-Bereich sichtbar, nicht im Frontend.
Jede Bestellposition kann optional folgende Felder haben:
backorder_status: "" (keine), to_be_backordered, orderedbackordered_at, ordered_at (Zeitstempel)to_be_backordered): Position ist als Nachbestellung markiert, externe Bestellung steht noch aus.ordered): Extern bestellt, Lieferung ausstehend.| Aktion | Ort | Wirkung |
|---|---|---|
| Als Nachbestellung markieren | admin/orders.php (pro Position) |
Setzt to_be_backordered |
| Nachbestellung aufheben | admin/orders.php |
Setzt backorder_status zurück auf "" (nur aus Zustand 1) |
| Als bestellt markieren | admin/backorders.php |
Verschiebt N Positionen von to_be_backordered nach ordered (FIFO) |
| Lieferung eingetroffen | admin/backorders.php |
Setzt N Positionen von ordered zurück auf "" (FIFO); Position bleibt offen zur normalen Abarbeitung |
In admin/backorders.php werden Positionen nach Produkt und Größe gruppiert. Die Spalten Nachzubestellen und Wartet auf Lieferung werden getrennt gezählt, damit neu markierte Artikel nicht mit bereits bestellten vermischt werden.
Nachbestellte Positionen erscheinen weiterhin in Offene Positionen auf dem Dashboard, zusätzlich mit einem Nachbestell-Badge.
reservation.php und orders.php (Frontend) sowie admin/reservations.php leiten auf die Bestellverwaltung um.