# Documenter — F-018 Cart module

## Summary
Documented F-018 cart behavior in this evidence artifact. Project README updates are not applied during document stage because the active repository guard restricts `project/` edits to build/implementer state.

## Public API notes

Cart is authenticated-user scoped. It stores only `productId`, `variantId` and `quantity`; price, tax, discount and stock truth are recalculated through Pricing and Inventory services on every read.

| Route                        | Access        | Result                                  |
| ---------------------------- | ------------- | --------------------------------------- |
| GET /cart                    | authenticated | Current cart with recalculated totals   |
| POST /cart/items             | authenticated | Adds item or increments existing item   |
| PATCH /cart/items/:variantId | authenticated | Changes item quantity                   |
| DELETE /cart/items/:variantId| authenticated | Removes item and returns updated cart   |

## Rules
- Client-supplied price, tax, discount, total or stock fields are ignored.
- Cart persistence has no price/stock columns.
- `available=false` when either pricing is missing or inventory availability is insufficient.
- Totals are based on currently persisted server-side prices, not add-time prices.

## Evidence
- `work/artifacts/F-018/architect.md`
- `work/artifacts/F-018/implementer.md`
- `work/artifacts/F-018/reviewer.json`
- `work/artifacts/F-018/security.json`
- `work/artifacts/F-018/qa.json`
