# Task — Customer returns

**Status:** Implemented (v1)
**Date:** 2026-07-14

## Summary
Shoppers can request a return on a delivered order line with a photo and reason. Ops stores requests in a new `returns` table and reviews them in the Returns inbox.

## Test cases
1. Open a delivered order (e.g. demo `BK-2841`) → Return → select an item → attach photo → enter reason → Submit → snackbar success; line shows “Return requested”.
2. In Ops admin → Returns → see the pending row with photo and reason → set Approved or Rejected.
3. `POST /api/v1/returns` with JPEG/PNG ≤5MB returns `201` and `{ id, status: "pending" }`.
4. Missing photo or reason returns `422`.

## Related
- Scope HTML: `docs/scope_customer_returns.html`
- Task file: `docs/tasks/TASK-002.md`
