HOCO B2B
Team tasksAkram

DES-09 — Day 9 — Reseller app: orders & finance

Orders with counters and progress, order detail and tracking, assisted-order confirmation, balance/credit, invoices, payments and declaration. Return request.

FieldDetails
Task codeDES-09
PhaseP0 — Foundations (cadrage, UX/UI, architecture & contract)
Product scopeV1
StatusPlanned
StartWed 28 Oct 2026
DueWed 28 Oct 2026
ResponsibleAkram — UI/UX designer
Co-responsible—
Effort1 person-day(s) planned · 1.25 from scratch · size S
Area · appReseller app design · design
Depends onDES-08
UnblocksMRA-05, MRA-07, DES-10
Milestones—

Summary

Orders with counters and progress, order detail and tracking, assisted-order confirmation, balance/credit, invoices, payments and declaration. Return request.

Description

Day 9 designs what happens after « Envoyée » and the reseller's money. The screens are RA-21 orders, RA-22 order detail and live tracking, RA-23 assisted-order confirmation, RA-40 return request (V1 since 17 Oct), RA-29 balance and credit, RA-30 invoices and RA-31 payments and declaration. Inputs: the reseller-05-orders-tracking reference, the finance tiles of reseller-01, cahier §5.4 and §4.7, ORD-06/07/08/10/12/13/15, FIN-01/02/03/05/10, SUP-04, and the operations orders.list|summary|get|cancel|confirmAssisted|rejectAssisted|reorder|document, returns.create|list|get, events.stream, finance.summary, invoices.list|get, payments.list|declare and files.createUpload. Every status change must reach the reseller live while the screen is open (SSE) and as a notification otherwise. The tracker therefore needs live, reconnecting and paused states. Consumers: Imad's MRA-05 (RA-21…23), MRA-07 (RA-29…31) and MRA-10 (RA-40 and the SSE client), and Anis's WEB-04 for RW-08/09/13.

Subtasks

#SubtaskOwner
1RA-21 Commandes: status counters that act as filters (Toutes, Envoyée, Validée, En préparation, Expédiée, Livrée; Refusée, Annulée and Retournée in the filter sheet); order cards (CMD-2026-000158, date, pill, first item « + 2 articles », amount, mini tracker, assisted and first-order badges); search by number or product; empty « Aucune commande pour l'instant » + « Découvrir le catalogue »; skeleton; offline cached listAkram
2RA-21 live states: « En direct » dot while events.stream is open; a changed card crossfades its pill (200 ms), advances its mini tracker and pulses once, without the list jumping while the user scrolls; « Reconnexion… »; « Mise à jour en pause — tirez pour actualiser » after 3 failed retriesAkram
3RA-22 Suivi de commande: tracker mapping all 11 OrderStatus values (5 steps, En attente as a hold, branches Refusée with reason / Annulée / Retournée), dated history with actor (« Validée par HOCO · 22 mai 2026 à 10:32 »), banner « Votre commande a été modifiée par HOCO » with line diff « Quantité ajustée : 10 → 8 », lines, totals, address, payment methodAkram
4RA-22 actions: FAC- invoice and BL- delivery-note PDF rows (downloading, failed); cancel with a reason (ORDER_CANCEL_REASON) only while Envoyée or En attente, in a dialog « Annuler la commande » / « Garder la commande »; reorder with unavailable items reported; « Signaler un problème » → RA-33 after-sales; « Demander un retour » → RA-40 (delivered only); live toast « Commande CMD-2026-000158 : Validée »Akram
5RA-23 Commande assistée à confirmer: delegate name, lines at the reseller's customer-type price, total, address; 72 h expiry as a countdown plus a written deadline; « Confirmer la commande »; reject with a reason; Expirée; already validated by HOCO (Validée par l'administration); reminder banner 24 h before expiryAkram
6RA-40 Demande de retour: delivered-order header; line picker with quantity ≤ delivered; reason; photos; submit → RET-2026-000012; tracker Demandé → Accepté → En retour → Reçu → Remboursé / avoir émis, or Refusé with a reason; credit-note link once refunded; empty listAkram
7RA-29 Solde et crédit: balance, credit ceiling, used and available credit with a bar, overdue warning (En retard invoices), and a variant for an account without creditAkram
8RA-30 Factures: list with InvoiceStatus pills (Impayée, Partiellement payée, Payée, En retard, Annulée) and credit notes (avoirs); filters; PDF opening through a signed URL (loading, expired link, failed)Akram
9RA-31 Paiements: list with PaymentStatus pills (À vérifier, Confirmé, Rejeté with reason); declaration form (method, amount, date, reference, proof of 10 MB or less with upload states); success « Paiement déclaré — HOCO va le vérifier »Akram
10Annotate the status → tracker step → tone mapping table on RA-22, and link the after-sales and return entry points to RA-33 and RA-40Akram
11Feasibility: SSE lifecycle (connect when the screen opens, backoff reconnect, pause after 3 failures, refetch on resume), PDF viewer, proof uploadImad

Deliverables

  • Claude Design › Reseller App › RA · Orders (RA-21…23, RA-40) and RA · Finance (RA-29…31), e.g. RA-22 · Order detail & tracking · live-status-changed, RA-40 · Return request · status-in-transit
  • Status → step → tone mapping table annotated on RA-22
  • Live, reconnecting and paused variants of RA-21 and RA-22

Acceptance criteria

  • All 11 order statuses, 5 AssistedConfirmation values, 6 ReturnStatus, 5 InvoiceStatus and 3 PaymentStatus values appear with their French labels and tones from enums.json
  • Cancellation is only offered while Envoyée or En attente, returns only on delivered orders
  • The live, reconnecting and paused states exist, and a status change is never conveyed by colour alone (text pill and toast)
  • Countdowns (assisted-order expiry) always come with a written deadline
  • Amounts use 1 250,00 DA everywhere in finance frames (never the compact format)
  • Imad's review answer is OK or OK with notes

Requirements covered

RequirementTitleRelease
ORD-07Reseller order tracking: counters by status, filters, progress, details, invoice download, support, reorderV1
ORD-08Assisted orders prepared by a delegate, confirmed by the reseller or validated by the administrationV1
FIN-03Payment recording in the back-office and payment declaration with proof by the resellerV1
FIN-10Reseller finance view: balance, available credit, invoices, paymentsV1

Screens

ScreenNameApp
RA-21OrdersRA
RA-22Order detail & trackingRA
RA-23Assisted order confirmationRA
RA-29Balance & creditRA
RA-30InvoicesRA
RA-31Payments & payment declarationRA
RA-40Return requestRA

Test measures

  • Prototype walkthrough: RA-20 → RA-21 → status changes live → RA-22 → RA-40 return
  • Check the tracker against the order transition table in /docs/srs/lifecycles-and-statuses
  • Screen-reader note check: the live region announces the status change politely

Risks

  • The return window and return reasons are not decided — design a configurable window (« Retour possible jusqu'au … ») with a Decision pending sticker.
  • Live updates make the list jump — the rule is: update in place, never reorder while the user is scrolling; agreed with Imad today.

KPI

  • Delivered by Wed 28 Oct 2026 within 1 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.

On this page