feat(admin): order management

Sprint 23.

New features/admin/orders/ module, same container/facade/service split as
admin/products and admin/categories.

- AdminOrder model + AdminOrdersLocalGateway seeding 24 deterministic
  synthetic orders (no real order data source exists anywhere in this
  repo - explicitly a placeholder, not a mock of production volume)
- list: search, status filter, pagination, CSV export (client-side Blob
  download)
- detail: customer/payment/shipping, itemized total, status timeline,
  change-status dropdown, refund request + cancel (window.confirm-gated),
  separate customer-facing vs internal notes, print invoice via
  window.print() with @media print hiding non-invoice chrome
- wired into /:lang/backoffice/orders(/:id), replacing the coming-soon
  placeholder

docs/ADMIN.md + docs/BACKEND.md updated; dashboard's Orders/Revenue cards
(Sprint 19) remain intentionally un-wired to this mock and still render
pending-backend.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-15 10:50:59 +04:00
parent 30afb5d778
commit 2d8d6b6dc4
14 changed files with 562 additions and 10 deletions

View File

@@ -40,10 +40,11 @@ Notify user: **from Sprint 20 (Categories) once product↔category link + admin
- Commit: `feat(media): reusable media management`
- Scoped down from ticket: no interactive crop UI (compression/resize only); folders are a flat tag, not a real folder entity/hierarchy.
## Sprint 23 — Orders (mock/local, flag backend gap)
- [ ] Orders model + local gateway (seed mock data)
- [ ] List: filters, search, statuses, timeline, export
- [ ] Detail: customer/payment/shipping info, notes/internal notes, refund request, cancel, print invoice
## Sprint 23 — Orders (mock/local, flag backend gap) ✅ done
- [x] AdminOrder model + local gateway (24 seeded synthetic orders, no real data source existed)
- [x] List: search, status filter, pagination, CSV export
- [x] Detail: customer/payment/shipping, itemized total, status timeline, change-status, refund request + cancel (confirm-gated), customer notes + internal notes, print invoice (window.print + @media print)
- [x] `docs/ADMIN.md` (new Sprint 23 section), `docs/BACKEND.md` item 7 rewritten
- Commit: `feat(admin): order management`
## Sprint 24 — Transactions (mock/local)