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/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.reservation.php und orders.php (Frontend) sowie admin/reservations.php und admin/backorders.php leiten auf die Bestellverwaltung um und sind kein eigener Prozess mehr.