DSH-09 — Back-office promotions & banners pages
Promotions list, promotion editor with targeting/stacking/preview, banners and daily offers.
| Field | Details |
|---|---|
| Task code | DSH-09 |
| Phase | P1 — V1 build & integration |
| Product scope | V1 |
| Status | Planned |
| Start | Sun 22 Nov 2026 |
| Due | Mon 23 Nov 2026 |
| Responsible | Anis — Full-stack developer |
| Co-responsible | — |
| Effort | 0.5 person-day(s) planned · 3 from scratch · size XS |
| Area · app | Back-office · dashboard |
| Depends on | DSH-01, SRV-19 |
| Unblocks | DSH-14 |
| Milestones | — |
Summary
Promotions list, promotion editor with targeting/stacking/preview, banners and daily offers.
Description
Marketing configures promotions, banners and daily offers from these pages (cahier §4.6; PRM-01…PRM-05), on top of SRV-19. It delivers the promotions list (BO-49), the promotion editor with type and value, scope, targeting by wilaya, segment, customer type and volume, schedule, stock cap, stacking priority and a preview on a sample reseller's cart (BO-50), and banners and daily offers (BO-51). Out of scope: packs and loyalty (V2, DSH-21).
Subtasks
| # | Subtask | Owner |
|---|---|---|
| 1 | BO-49 list: status tabs (PromotionStatus), type, scope summary, audience, period, cap usage, priority | Anis |
| 2 | BO-50 editor section « Remise »: PromotionType and value with type-specific validation | Anis |
| 3 | BO-50 section « Produits concernés »: products, variants, categories, brands pickers with counts | Anis |
| 4 | BO-50 section « Ciblage »: wilayas, segments, customer types, minimum quantity or amount | Anis |
| 5 | BO-50 sections « Calendrier » and « Règles »: start/end, stock cap, priority, exclusive flag; lifecycle buttons (programmer, activer, pause, terminer, archiver) | Anis |
| 6 | Preview panel calling admin.promotions.preview with a chosen reseller and sample cart | Anis |
| 7 | BO-51 banners: image upload with size guidance, target (product, category, promotion, URL), audience, schedule, drag order; daily offer selection with countdown preview | Anis |
Deliverables
- apps/dashboard/src/app/[locale]/(app)/promotions/{page.tsx,new/page.tsx,[promotionId]/page.tsx,banners/page.tsx}
- apps/dashboard/src/features/promotions/ (scope picker, audience picker, preview)
Acceptance criteria
- A PERCENT_OFF value of 95 % or an AMOUNT_OFF above the unit price is refused with the field message (PRM-04)
- The preview shows the discounted totals for the chosen reseller's customer type, matching what the reseller cart shows (PRM-04)
- A scheduled promotion shows as Programmée and switches to Active at its start without manual action (PRM-01)
- Banners appear in the reseller home in the configured order and only for their audience (PRM-05)
Requirements covered
| Requirement | Title | Release |
|---|---|---|
| PRM-01 | Simple promotions: daily offers, scheduled promotions, temporary discounts on products, categories or brands | V1 |
| PRM-02 | Targeting by wilaya, segment, level, brand or volume | V1 |
| PRM-03 | Configurable stacking rules and priorities | V1 |
| PRM-04 | A promotion respects its dates, stock cap and target; the cart total applies it correctly | V1 |
| PRM-05 | Home banners and daily offer carousel with countdown | V1 |
Screens
API surface
| Endpoint group | Operations |
|---|---|
| Promotions & loyalty | 10 |
Test measures
- Playwright e2e: create and schedule a promotion, verify in the reseller web cart
- Component tests for audience and scope pickers
KPI
- Delivered by Mon 23 Nov 2026 within 0.5 person-day(s).
- Every acceptance criterion above demonstrated before hand-off; linked requirements' acceptance criteria pass.
- Zero open critical defects, permission gaps or data-integrity regressions at sign-off.
Generated from content/plan/tasks.json by scripts/generate-team-tasks.mjs. Dates are computed by the scheduler (Sunday–Thursday weeks, holidays excluded) — change the plan, not this page.
DSH-07 — Back-office finance pages (V1)
Invoices, payments and declaration verification, credit accounts, finance dashboard.
DSH-10 — Back-office support, announcements & notification settings
Tickets queue and detail with internal notes, announcements composer, notification templates and rules, delivery log.