Files

18 lines
862 B
Markdown

# Proposal: cart-checkout-orders
## Why
Shoppers must be able to collect items and place orders. Checkout splits the cart into one order per shop (B2B2C requirement), snapshots prices, and decrements stock atomically.
## What changes
- Redis-backed cart per authenticated user (add/update/remove/list), merged SKU + product snapshot at read time.
- Checkout: validate stock + published status, create orders (one per shop) with items, decrement stock in a transaction, clear cart.
- Order lifecycle: pending_payment → paid (mock pay endpoint) → fulfilling → shipped → completed; customer cancel while pending_payment.
- Customer APIs: my orders list/detail, cancel, mock-pay.
## Non-goals
- Real payment gateways, partial refunds, guest checkout.
## Capabilities
- `cart`: server-side cart.
- `order`: checkout, order lifecycle, customer order APIs.