feat(admin): complete product management
Sprint 21. - archived (soft archive/restore, distinct from visible) with an include-archived list filter - barcode field alongside sku - variants: lightweight name|price|quantity list, same textarea-parse convention as specifications/attributes - relatedProductIds: checkbox picker in the editor - gallery images now added/removed via the shared MediaPickerComponent instead of a raw URL textarea - read-only discounted-price preview in the editor - infinite-scroll toggle on the list (loadMore() appends a page instead of replacing it; pagination UI swaps for a Load more button) - category dropdown now sourced from AdminCategoriesGateway (Sprint 20) instead of AdminProductsLocalGateway's own BackofficeDataService seed docs/ADMIN.md + docs/BACKEND.md updated with the new field list and the known trade-off that related-products search is scoped to the currently loaded page, not the full catalog. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -24,12 +24,13 @@ Notify user: **from Sprint 20 (Categories) once product↔category link + admin
|
||||
- Commit: `feat(admin): complete category management`
|
||||
- Note: `admin/products`' category dropdown still uses its own `AdminProductsGateway.loadCategories()`, not this new gateway — unification deferred to Sprint 21 (documented in BACKEND.md).
|
||||
|
||||
## Sprint 21 — Product Management completion
|
||||
- [ ] Audit gaps vs list: duplicate/archive already exist? verify; add missing (archive state, restore draft, related products, variant editor, price/currency/discount editor, inventory/SKU/barcode fields already present—confirm)
|
||||
- [ ] Wire products to real AdminCategoriesGateway (replace ad-hoc category options)
|
||||
- [ ] Gallery via MediaPickerComponent, translation editor, preview, infinite-scroll option on list
|
||||
- [ ] Update `docs/ADMIN.md`, `docs/BACKEND.md`
|
||||
## Sprint 21 — Product Management completion ✅ done
|
||||
- [x] Audit + add missing: `archived` (soft, list filter + archive/restore action), `barcode`, `variants` (lightweight name|price|quantity), `relatedProductIds` (checkbox picker)
|
||||
- [x] Wired products to real `AdminCategoriesGateway` (`AdminProductsLocalGateway` now seeds from `AdminCategoriesLocalGateway`, replacing its own `BackofficeDataService` category seed)
|
||||
- [x] Gallery via `MediaPickerComponent` (add/remove thumbnails); translation editor already existed (Sprint pre-19); preview (computed discounted price); infinite-scroll toggle on list (`facade.loadMore()` appends vs pagination)
|
||||
- [x] Updated `docs/ADMIN.md` (new Sprint 21 section), `docs/BACKEND.md` (item 6 rewritten with real field list)
|
||||
- Commit: `feat(admin): complete product management`
|
||||
- Known trade-off: related-products picker sources from whatever page is currently loaded in `AdminProductsFacade.products()`, not a full catalog search — documented in ADMIN.md, fine at current mock scale.
|
||||
|
||||
## Sprint 22 — Media System hardening
|
||||
- [ ] Folder support, tags, search in Media Manager
|
||||
|
||||
Reference in New Issue
Block a user