Review 26.08.2026 (Testphase). Änderungen in ShoppingUserController::order():
- Bestellanlage läuft transaktional (DB::transaction um makeShoppingOrder) —
schlägt das Anlegen der Positionen fehl, bleibt keine halbe Bestellung zurück.
- Bestätigungsmail hinter den Commit verschoben und fehlertolerant (try/catch,
Log-Warnung): ein SMTP-Fehler lässt die bereits gespeicherte Übertragung nicht
mehr auf HTTP 500 laufen. Vorher meldete der Shop dann Fehlschlag, und der
Retry scheiterte an der „Bestellung existiert bereits"-Sperre → verwaiste
Bestellung.
- Preis-Abgleich als Integer-Cent (int) round(price*100) statt Gleitkomma-!=,
das sonst falsche „different price"-Meldungen erzeugte (19,99 * 100 = 1998.99…).
- Auskommentierte API-Zugangsdaten (Mail/Passwort) aus dem Quelltext entfernt —
Passwort bitte rotieren, falls je real genutzt.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>