# Documenter — F-019 Promotions v1 ## Summary Promotions v1 adds server-side promo code definitions and validation. Cart stores only a selected `promoCode`; discount amounts are recalculated from current cart totals. ## Public API notes | Route | Access | Result | |---|---|---| | POST /promotions | admin only | Creates or updates a promo code | | POST /cart/promo-code | authenticated | Applies one promo code to the current cart | ## Rules - Promotion types: `percent` and `fixed_amount`. - Percent values are basis points; fixed values are cents and capped at cart total. - Validity checks: active flag, time window, usage limit. - No stacking in v1: one promo code per cart. - Client-supplied discount amounts are ignored. ## Evidence - `work/artifacts/F-019/architect.md` - `work/artifacts/F-019/implementer.md` - `work/artifacts/F-019/reviewer.json` - `work/artifacts/F-019/security.json` - `work/artifacts/F-019/qa.json`