WEB-05 — Reseller web — promotions, notifications, account, support
Promotions, notifications inbox, profile/store/addresses/settings, support tickets and after-sales claims, regional WhatsApp button.
| Field | Details |
|---|---|
| Task code | WEB-05 |
| Phase | P1 — V1 build & integration |
| Product scope | V1 |
| Status | Planned |
| Start | Wed 2 Dec 2026 |
| Due | Wed 2 Dec 2026 |
| Responsible | Anis — Full-stack developer |
| Co-responsible | — |
| Effort | 0.5 person-day(s) planned · 3 from scratch · size XS |
| Area · app | Reseller web · web |
| Depends on | WEB-04 |
| Unblocks | SRV-28, QA-01, DQA-05, WEB-06 |
| Milestones | Back-office and reseller web V1 feature-complete |
Summary
Promotions, notifications inbox, profile/store/addresses/settings, support tickets and after-sales claims, regional WhatsApp button.
Description
This task completes V1 parity of the reseller web (RWA-01) with promotions, notifications, account and support (PRM-01, NOT-01, NOT-06, CRM-01, SUP-01, SUP-04, SUP-05). It delivers promotions and daily offers (RW-10), the notifications inbox with live unread count (RW-11), profile, store, addresses and settings with notification preferences and the read-only customer type (RW-12), and support (RW-14): tickets with conversation and attachments, after-sales claims on an order (lines, quantities, AfterSalesIssue, photos), and the fixed regional WhatsApp button on every page, which opens the number of the user's support region — declared wilaya when signed in, browser location with consent otherwise, then a wilaya picker or the default number (decision 8). Out of scope: return requests (WEB-04) and V2 loyalty (WEB-20).
Subtasks
| # | Subtask | Owner |
|---|---|---|
| 1 | RW-10 promotions list and detail with daily offer countdown; guest view without prices | Anis |
| 2 | RW-11 inbox: list with read/unread, mark one/all read, deep links to orders/tickets/returns, unread badge updated from events.stream | Anis |
| 3 | RW-12 profile and store: contact data, store details, documents, addresses CRUD and default; customer type read-only with « Contactez HOCO pour le modifier » | Anis |
| 4 | Settings: notification preferences (marketing opt-out), language, password change, active sessions | Anis |
| 5 | RW-14 tickets: list, create (type, related order, message, attachments), conversation with replies, close | Anis |
| 6 | After-sales claim form: pick a delivered order, lines and quantities, issue (AfterSalesIssue), photos, description; claim status and resolution display | Anis |
| 7 | Floating WhatsApp button on every page calling support.whatsapp (session wilaya → geolocation with consent → wilaya picker → default), wa.me link with prefilled message, hours | Anis |
| 8 | Design QA of RW-10, RW-11, RW-12 and RW-14 | Akram |
Deliverables
- apps/web/src/app/[locale]/{promotions/…,(account)/notifications/page.tsx,(account)/profile/…,(account)/support/…}
- apps/web/src/features/support/{whatsapp-button.tsx,claim-form.tsx,ticket-thread.tsx}
Acceptance criteria
- A signed-in reseller in a wilaya of region East always gets the East WhatsApp number; a guest who allows location in Oran gets the West number; a guest who refuses gets the wilaya picker (SUP-05)
- An after-sales claim can only include lines and quantities of the selected order and requires photos for defective or damaged items (SUP-04)
- Opting out of marketing notifications stops promotional notifications but keeps order notifications (NOT-06)
- The customer type cannot be edited by the reseller (AUTH-11)
- A staff reply appears in the open ticket without reload (SUP-01)
Requirements covered
| Requirement | Title | Release |
|---|---|---|
| PRM-01 | Simple promotions: daily offers, scheduled promotions, temporary discounts on products, categories or brands | V1 |
| NOT-01 | In-app notification inbox with read/unread in every app | V1 |
| NOT-06 | Notification preferences (marketing opt-out) | V1 |
| CRM-01 | Reseller/prospect record with the minimum data set (store, owner, phone, WhatsApp, email, wilaya, commune, address, GPS, type, potential, delegate, photos, documents, status) | V1 |
| SUP-01 | Reseller tickets: type, related order, message, attachments, conversation, statuses | V1 |
| SUP-04 | After-sales service (SAV): a reseller opens a claim on an order (items, quantities, issue, photos); the back-office handles it from diagnosis to resolution (replacement, return, credit note, rejection) | V1 |
| SUP-05 | Regional WhatsApp support: a fixed WhatsApp button in both reseller apps opens the support number of the user's region — declared region when signed in, device location otherwise | V1 |
Screens
| Screen | Name | App |
|---|---|---|
| RW-10 | Promotions & daily offers | RW |
| RW-11 | Notifications | RW |
| RW-12 | Profile, store, addresses & settings | RW |
| RW-14 | Support: tickets, after-sales claims, returns & WhatsApp | RW |
API surface
| Endpoint group | Operations |
|---|---|
| Promotions, banners & packs | 5 |
| Notifications & announcements | 10 |
| Reseller profile, addresses & documents | 9 |
| Support tickets | 7 |
Test measures
- Playwright e2e: WhatsApp resolution for signed-in, guest with mocked geolocation and guest without location
- Playwright e2e: after-sales claim with photo → back-office resolution → status visible
- Manual check of the wa.me link on Android and desktop
KPI
- Delivered by Wed 2 Dec 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.
WEB-04 — Reseller web — orders & finance
Orders list and detail with live tracking (SSE), assisted-order confirmation, returns, documents; invoices, payments, declarations and credit.
WEB-06 — Reseller web — Notification Centre, action buttons, group preferences, promotion tabs & flash-sale countdown
The reseller-web side of document 03: Notification Centre card on RW-02, grouped dropdown and page with action buttons on RW-11, per-group push switches on RW-12, Promotions / Ventes flash tabs and countdown cards on RW-10.