Shop-Bestellungen
Zweck
Shop-Bestellungen (ShopOrder) entstehen aus einem oder mehreren Warenkoerben (ShoppingCart) — typischerweise wenn ein Anwender im Shop auf „Bestellung erstellen" klickt. Pro Bestellung sehen Sie Status (pending, confirmed, shipped, delivered, cancelled), Summen und ggf. einen verknuepften Bestellbeleg (Convert-to-PurchaseDocument).
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_ShopOrder, ShopOrder | Liste/Details aufrufbar | — |
create/update | ShopOrder | Bestellungen anlegen, bestaetigen, stornieren | APP_SPEAMCORE_CREATE/UPDATE_SHOP_ORDER |
view | ShoppingCart | Sub-Tab Warenkoerbe | APP_SPEAMCORE_VIEW_SHOPPING_CART |
create | PurchaseDocument | Convert-Action | APP_SPEAMCORE_CREATE_PURCHASE_DOCUMENT |
Schritt-für-Schritt-Anleitung
Bestellung anlegen
Wird typischerweise vom Shop ausgeloest:
- Im Warenkorb (
/shop/shopping-carts) Bestellung erstellen. POST /api/shop-ordersmitshoppingCartIds.- Bestellung wird mit Status
pendingangelegt.
Bestaetigen
- Auf der Detail-Seite Bestaetigen klicken.
POST /api/shop-orders/:id/confirm— Status wechselt aufconfirmed. Triggert ggf. E-Mail-Benachrichtigung.
In Bestellbeleg konvertieren
- In Bestellbeleg umwandeln klicken — Modal fragt Lieferant ab.
POST /api/shop-orders/:id/to-purchase-document?supplierId=:id— erzeugt einen verknuepftenPurchaseDocument.- Sie werden auf den neuen Bestellbeleg weitergeleitet.


UI-Elemente
Button: „Bestaetigen"
Detailseite. Erfordert update:ShopOrder. Statuswechsel pending → confirmed.
Button: „In Bestellbeleg umwandeln"
Detailseite. Erfordert create:PurchaseDocument. Erzeugt verknuepften Beleg.
Felder und Eingaben
| Feldname | Pflicht | Datentyp | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|
status | — | Enum | pending, confirmed, shipped, delivered, cancelled. System-gesteuert über Custom-Endpoints. | — |
totalPrice | — | Decimal | Aggregierter Wert aus den Warenkoerben. Read-only. | — |
totalQuantity | — | Integer | Aggregierte Menge. Read-only. | — |
shoppingCartIds | ja (beim Anlegen) | Array UUID | Verknuepft die Bestellung mit Warenkoerben. | view:ShoppingCart. |
Workflows und Zustaende
Hinweis zur Validierung: Im Live-Walkthrough konnten die Status-Uebergaenge nicht reproduziert werden, weil der Demo-Mandant keine Bestellungen enthält. Stand BE-Code: die Statuswerte werden über dedizierte Endpoints gesetzt (/confirm, /ship, /cancel, ...), aber es gibt keinen zentralen State-Machine-Validator im Code, der z. B. cancelled → confirmed blockiert. Wer den Status manuell via PATCH setzt, kann theoretisch alle Uebergaenge fahren — der Workflow oben ist die erwartete Sequenz, nicht die erzwungene.
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
- Shop (
/shop) — Quelle der Warenkoerbe. - Bestellbelege (
/purchase-documents) — Ziel der Convert-Aktion. - Kunden — Bestellungs-Empfaenger.
- Zahlungen — Tab
Paymentszeigt Zahlungs-Verknuepfungen.
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/shop-orders | Liste | view ShopOrder |
GET | /api/shop-orders/:id | Detail | view ShopOrder |
POST | /api/shop-orders | Anlegen | create ShopOrder |
PATCH | /api/shop-orders/:id | Ändern | update ShopOrder |
POST | /api/shop-orders/:id/confirm | Bestaetigen | update ShopOrder |
POST | /api/shop-orders/:id/to-purchase-document | In Bestellbeleg umwandeln | create PurchaseDocument |
Versionshinweise
- 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard.