# Stadt Freising PSA-Service

## Zweck

Dieses Projekt ist ein internes Bestellsystem für persönliche Schutzausrüstung der Stadt Freising und wird organisatorisch durch Amt 32 - Öffentliche Sicherheit und Ordnung betreut.

## Kernfunktionen

- Produktübersicht mit Kategorien
- Produktdetailseiten mit Größenwahl
- Warenkorb ohne Mengensteuerung
- Checkout mit Name, E-Mail, Organisation und Kommentar
- Direkte interne Weiterleitung nach Bestellabschluss
- Adminbereich für Bestellungen, Produkte, Kategorien, Organisationen, Einstellungen, FAQ und Admins
- Positionsbezogene Bearbeitung und Stornierung von Bestellungen

## Voraussetzungen

- PHP 8.x
- Schreibrechte auf `data/`
- funktionierende PHP-Mailzustellung für Bestellmails

## Wichtige Dateien

- Konfiguration: `config.php`
- Zentrale Logik: `includes/functions.php`
- Bestellungen: `data/orders.json`
- Organisationen: `data/organizations.json`
- Systemeinstellungen: `data/settings.json`
- Produkte: `data/products.json`
- Produktbilder: `data/uploads/`
- Backups: `data/backups/` (wird automatisch erstellt, nicht öffentlich)

## Einrichtung

1. `config.sample.php` nach `config.php` kopieren und anpassen (`SITE_URL`, `FROM_EMAIL`, `ORDER_PREFIX`, …).
2. Schreibrechte auf `data/` und `data/ratelimit/` (für Rate-Limits) sicherstellen.
3. Statische Dateien bereitstellen: `favicon.png` (Document Root), `assets/branding/`, `assets/fonts/`, `assets/no-image.jpg`.
4. Adminzugänge in `data/admins.json` auf dem Server pflegen (nicht aus dem Repo übernehmen).
5. Empfängeradresse, PDF-Anhang und Backups im Admin unter `Einstellungen` prüfen.
6. Organisationen im Admin unter `Organisationen verwalten` pflegen.
7. Apache: `.htaccess` aktiv (schützt `config.php` und JSON unter `data/`).

Weitere Konstanten: [docs/CONFIG_REFERENCE.md](docs/CONFIG_REFERENCE.md).

Technische Dokumentation im Browser: [docs/index.php](docs/index.php) (Markdown wird mit [marked](https://marked.js.org/) gerendert).

## Hinweise

- Bestellungen werden nicht im Browser für Endnutzer gespeichert oder nachverfolgt.
- Kein automatisiertes Test-/CI-Setup vorgesehen.
