18 lines
862 B
Markdown
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.
|