Files
vmall/openspec/changes/archive/2026-09-17-cart-checkout-orders/proposal.md
T

862 B

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.