Orders
Screen specifications RA-21 to RA-23 of the reseller app — orders with counters and live progress, order detail with tracking, documents, cancel, reorder, returns and after-sales entry points, and the confirmation of assisted orders.
Cahier §5.4: « Suivre chaque commande depuis la validation jusqu'à la livraison » — the status shown must be the back-office status and the history must stay available. Since 17 October 2026 every order waits for an explicit confirmation by HOCO (ORD-14) and every status change reaches the reseller live while the app is open, and as a notification (ORD-15). These screens are designed on day 9 and built in MRA-05; the live client and the return request (RA-40, on the system, returns and guest-mode page) are MRA-10. The order rules are those of lifecycles and statuses.
| ID | Screen | UI title | Section | Release | Design | Build |
|---|---|---|---|---|---|---|
RA-21 | Orders | Commandes | Orders | V1 | Day 9 | MRA-05 |
RA-22 | Order detail & tracking | Suivi de commande | Orders | V1 | Day 9 | MRA-05 |
RA-23 | Assisted order confirmation | Commande assistée à confirmer | Orders | V1 | Day 9 | MRA-05 |
RA-40 | Return request | Demande de retour | Orders | V1 | Day 9 | MRA-10 |
What the reseller sees of the lifecycle. Five counters and a five-step tracker; the status pill always shows the exact French label of the status (what the reseller sees):
| Tracker step and counter | Order statuses | Sentence under the status (RA-22) |
|---|---|---|
| En attente | Envoyée (SUBMITTED) | « Commande envoyée, en attente de confirmation par HOCO. » |
En attente (PENDING) | By pendingReasons: CREDIT_OVER_LIMIT « En attente de l'approbation du service finance (dépassement de crédit). » · RESELLER_NOT_VALIDATED « En attente de la validation de votre compte. » · assisted order awaiting you « Votre délégué attend votre confirmation. » | |
| Validée | Validée (VALIDATED) | « Commande confirmée par HOCO. Elle va être préparée. » |
| En préparation | En préparation (PREPARING), Prête (READY) | « Votre commande est en préparation. » · « Votre commande est prête et attend le transporteur. » |
| Expédiée | Expédiée (SHIPPED) | « Votre commande est en route. » with carrier and tracking number |
| Livrée | Livrée (DELIVERED) | « Livrée le 14 nov. à 15:20. » |
| Off the tracker | Refusée (REFUSED), Annulée (CANCELLED), Retournée (RETURNED) | « Refusée par HOCO — motif : … » · « Annulée par vous / par HOCO le … — motif : … » · « Retournée — … » |
Brouillon (DRAFT) orders are never shown to the reseller.

RA-21 — Orders
| Field | Value |
|---|---|
| Screen | Orders · Orders |
| French title | Commandes |
| Release | V1 |
| Design day | Day 9 — DES-09 |
| Build task | MRA-05 |
| Requirements | ORD-07 · ORD-15 |
| Reference screen | reseller-05-orders-tracking |
Purpose — See every order of the shop at a glance — how many wait, are confirmed, in preparation, shipped, delivered — find one quickly, and act on what needs the reseller (ORD-07, ORD-15).
Entry points & exits — Commandes tab; Commandes quick tile; home banners « commandes en attente de confirmation »; /orders?status=. Exits to RA-22 (card), RA-23 (pinned assisted order), RA-17 (« Recommander » result), RA-12 (empty state), RA-26 (bell), WhatsApp.
Layout
TabRootHeader(as on the reference).SearchField« Rechercher une commande, un produit… » with a filter icon (opens the filter sheet).- « Statut des commandes »: five
KpiTilein one row — En attente, Validées, En préparation, Expédiées, Livrées — icon, count, label. Tapping a tile filters the list on its statuses (the tile stays highlighted; tapping again clears). - Pinned section « À confirmer » (only when an assisted order awaits the reseller): warning-tone card « Commande préparée par Yacine — 45 600,00 DA — à confirmer avant le 17 nov. à 14:30 » with « Voir et confirmer » → RA-23.
- « Historique des commandes »: infinite list of
OrderCard:- number « CMD-2026-000158 », date « 14 nov. 2026 à 10:32 »,
StatusBadgewith the exact status label; - first item thumbnail and name, « 3 articles », total TTC « 89 900,00 DA », chevron;
ProgressTrackerwith the five steps (current step in the status tone); off-tracker statuses replace it with one line (« Refusée — Stock insuffisant »);- under Envoyée: « En attente de confirmation par HOCO » in caption;
- chips when relevant: « Commande assistée », « Retour en cours », « SAV en cours »;
- on Livrée cards: text button « Recommander ».
- number « CMD-2026-000158 », date « 14 nov. 2026 à 10:32 »,
- Filter sheet: status (multi-choice, the five groups plus Refusée, Annulée, Retournée), period (« 30 derniers jours », « 3 mois », « 12 mois », custom dates), channel (« Application », « Web », « Commande assistée », « Saisie par HOCO »); « Réinitialiser », « Appliquer ».
WhatsAppButton(floating).
Data
| Shown | Source |
|---|---|
| Counters | orders.summary → counts.<STATUS> per status, grouped by the app as in the table above; awaitingConfirmation |
| Cards | orders.list ?status=&q=&from=&to=&channel=&cursor=&limit=20 → items[].id, number, createdAt, status, channel, itemCount, firstItem.name, firstItem.imageUrl, totalTtc, statusReason, assisted.confirmation, assisted.expiresAt, assisted.delegateFirstName, hasOpenReturn, hasOpenClaim |
| Live changes | events.stream → order.status_changed (orderId, from, to, at), order.modified, assisted_order.awaiting_confirmation |
Actions
- Card → RA-22. Pinned card → RA-23.
- Search: by order number (« 158 », « CMD-2026-000158 ») or product name and reference, 300 ms debounce →
orders.list?q=. - « Recommander » →
orders.reorderwith anIdempotency-Key→BottomSheet« 8 articles ajoutés au panier · 2 indisponibles » listing the skipped ones, « Voir le panier » → RA-17. Lines are added at today's prices. - Live event for an order in the list: the card's pill and tracker animate to the new status, counters update, the list keeps its scroll position; a card that no longer matches the active filter stays until the next refresh, greyed.
- Pull-to-refresh →
orders.summaryand the first page.
Rules
- The reseller sees only their own orders (ACL-03); assisted orders appear once the delegate sends them for confirmation.
- The status shown is always the back-office status (cahier §5.4 acceptance criterion): from the server, refreshed live, on push, on tab focus.
- Counters cover all orders of the account; Refusée, Annulée and Retournée have no tile but are reachable through the filter.
- Reorder is offered for Livrée, Annulée, Refusée and Retournée orders (ORD-07).
States
| State | Behaviour |
|---|---|
| Loading | Five tile skeletons and three card skeletons |
| No order yet | EmptyState « Vous n'avez pas encore passé de commande » with « Découvrir le catalogue » |
| No result for the filters | « Aucune commande ne correspond » with « Effacer les filtres » |
| Error | ErrorState with « Réessayer » |
| Offline | Cached first page and counters with the offline banner; search and filters disabled |
| Live connection down | Nothing visible; data refreshes on push and on focus |
| PENDING_VALIDATION | Only assisted orders exist; the pinned card says HOCO will confirm by phone (see RA-23) |
| Guest | Not reachable — the tab shows RA-41 |
Copy — « Rechercher une commande, un produit… » · « Statut des commandes » · « En attente » · « Validées » · « En préparation » · « Expédiées » · « Livrées » · « À confirmer » · « Voir et confirmer » · « Historique des commandes » · « {count} articles » · « En attente de confirmation par HOCO » · « Commande assistée » · « Retour en cours » · « SAV en cours » · « Recommander » · « {added} articles ajoutés au panier · {skipped} indisponibles » · « Vous n'avez pas encore passé de commande ».
Analytics — orders_viewed with awaitingConfirmation; orders_tile_clicked with group; orders_searched; order_reordered with orderId, added, skipped, source: "list"; order_live_update_shown with to.
Acceptance criteria
- When HOCO confirms an order in the back-office, the card on an open RA-21 switches to Validée within 5 seconds without a manual refresh, and the counters move.
- Each counter equals the number of orders listed when its tile is tapped.
- Searching « 158 » finds CMD-2026-000158.
- « Recommander » on a delivered order adds its available lines to the cart and reports the others.
RA-22 — Order detail & tracking
| Field | Value |
|---|---|
| Screen | Order detail & tracking · Orders |
| French title | Suivi de commande |
| Release | V1 |
| Design day | Day 9 — DES-09 |
| Build task | MRA-05 |
| Requirements | ORD-06 · ORD-07 · ORD-10 · ORD-12 · ORD-15 · ORD-13 |
| Reference screen | reseller-05-orders-tracking |
Purpose — Follow one order from sending to delivery, live: status and history, items and totals, delivery, payment and documents; and act on it — cancel while allowed, reorder, download the invoice, contact support, open an after-sales claim or ask for a return (ORD-06, ORD-07, ORD-10, ORD-12, ORD-13, ORD-15).
Entry points & exits — Cards of RA-21, RA-20 (« Suivre ma commande »), pushes order.status_changed and order.modified, RA-26, RA-30 (invoice → order), /orders/{orderId}. Exits to RA-23 (assisted order awaiting confirmation), RA-17 (reorder), RA-31 (« Déclarer un paiement »), RA-33 (support or after-sales claim), RA-40 (return), RA-14 (line), the PDF viewer, WhatsApp.
Layout
AppBar: « Commande CMD-2026-000158 », WhatsApp icon (message naming the order), overflow menu (« Copier le numéro »).- Status header: large
StatusBadge, the status sentence (table at the top of the page), « Passée le 14 nov. 2026 à 10:32 », channel line (« Depuis l'application », « Depuis le web », « Commande assistée préparée par Yacine », « Saisie par HOCO »). - Status banner, when relevant:
- Envoyée: info « En attente de confirmation par HOCO. Vous serez notifié dès la confirmation. »
- En attente awaiting the reseller (assisted): warning with « Voir et confirmer » → RA-23.
- Refusée: error « Refusée le 15 nov. — Motif : … » with « Contacter l'assistance ».
- Annulée: muted « Annulée par vous le … » or « Annulée par HOCO le … — Motif : … ».
- Modified by HOCO: info « HOCO a modifié votre commande le 15 nov. — Motif : … » with « Voir les modifications » (scrolls to the timeline).
ProgressTracker, vertical, five steps, each with its date and time when reached; Expédiée shows the delivery mode, the carrier or driver and the tracking number (copy icon).- « Articles » — lines: thumbnail, name, reference, « 5 × 2 490,00 DA », line total, promotion label; a line changed by HOCO shows « 10 → 8 » with the old quantity struck through; collapsed after 5 lines with « Voir les 12 articles ».
- Totals
SummaryCard: « Sous-total HT », « Remises », « Frais de livraison », « TVA », « Total TTC ». - « Livraison » card: address snapshot (recipient, phone, address, commune, wilaya); mode (Livreur HOCO, Société de livraison, Retrait au dépôt); carrier and tracking number, or driver name and « Appeler le livreur »; delivered at and « Reçu par … ».
- « Paiement » card: method; invoice status (Impayée, Partiellement payée, Payée…) or « Facture émise à l'expédition »; « Payé 5 000,00 DA · Reste 10 350,00 DA »; « Déclarer un paiement » for transfer, CCP and BaridiMob when an amount is due and the order is confirmed.
- « Documents »: « Facture FAC-2026-000123 » and « Bon de livraison BL-2026-000123 » rows with a download icon; a document not yet issued shows « Disponible à l'expédition » / « Disponible quand la commande est prête » in grey.
- « Retours et SAV » block, on Livrée orders: « Signaler un problème (SAV) » — « Produit défectueux, endommagé, erroné ou manquant » — available
settings.afterSales.windowDays(30) days after delivery; « Demander un retour » — « Renvoyer des articles et recevoir un avoir » — availablesettings.returns.windowDays(7) days after delivery; then the existing returns and claims of this order (« Retour RET-2026-000012 — Accepté », « SAV TKT-2026-000045 — En cours de traitement ») → RA-40 or RA-34. After the window: « Délai de retour dépassé (7 jours après la livraison). » - « Votre note » (when the reseller wrote one).
- « Historique » —
Timelineof status changes (date, label, actor: « HOCO », « Vous », « Système »), modifications with their reason and diff, assisted confirmation steps. StickyFooterwith the actions allowed byallowedActions: secondary « Recommander »; destructive text « Annuler la commande »; text « Contacter l'assistance ».
Data
| Shown | Source |
|---|---|
| Header | orders.get → number, status, channel, createdAt, pendingReasons, statusReason, cancellation (by, reason, at), assisted (delegateFirstName, confirmation, expiresAt) |
| Tracker and history | statusHistory[] (StatusChange: from, to, at, actor, reason); changes[] (OrderChange: at, actor, reason, lines[] with name, fromQty, toQty) |
| Lines | items[].id, name, sku, imageUrl, quantity, originalQuantity, unitPrice, lineTotal, promotionLabel |
| Totals | totals (Totals) |
| Delivery | address (snapshot), delivery.mode, carrierName, trackingNumber, driver.name, driver.phone, shippedAt, deliveredAt, receivedBy |
| Payment | paymentMethod, invoice.id, invoice.number, invoice.status, invoice.amountPaid, invoice.amountDue |
| Documents | documents[] (type: INVOICE, DELIVERY_NOTE; number; available) |
| Returns and claims | returns[] (id, number, status), claims[] (ticketId, number, status); windows from settings.returns.windowDays, settings.afterSales.windowDays and delivery.deliveredAt |
| Allowed actions | allowedActions[]: CANCEL, CONFIRM, REJECT, REORDER, DOWNLOAD_INVOICE, DOWNLOAD_DELIVERY_NOTE |
| Live | events.stream → order.status_changed, order.modified, return.status_changed for this order |
Actions
| Interaction | Call | Behaviour |
|---|---|---|
| Live event for this order | orders.get refetch | Pill, sentence, tracker and timeline update in place; the new tracker step animates; snackbar « Statut mis à jour : Validée » |
« Annuler la commande » (only with CANCEL) | BottomSheet with the reason (reseller subset of ORDER_CANCEL_REASON from reference.lists: « Erreur de commande », « Commande en double », « Délai trop long », « Autre » + required comment) → orders.cancel { reasonCode, comment } with Idempotency-Key | Status Annulée shown at once from the response; snackbar « Commande annulée » |
| « Recommander » | orders.reorder with Idempotency-Key | Result sheet as on RA-21, « Voir le panier » |
| Document row | orders.document /{type} → signed URL (valid 5 minutes) | Downloaded to the cache, opened in the PDF viewer with « Partager »; a new URL is requested at every tap |
| « Déclarer un paiement » | — | RA-31 declaration form prefilled with the invoice (or the order) and the amount due |
| « Signaler un problème (SAV) » | — | RA-33 in claim mode with this order |
| « Demander un retour » | — | RA-40 with this order |
| « Contacter l'assistance » | — | BottomSheet: « Écrire sur WhatsApp » (order number prefilled) or « Ouvrir une demande » → RA-33 with type Problème de commande (or Problème de livraison once shipped) and this order |
| Line | — | RA-14 |
Rules
- Every modification and status change is dated, kept in the history and notified (ORD-06); the reseller sees modifications with HOCO's reason.
- Cancellation by the reseller only while the status is in
settings.orders.cancelAllowedStatuses(Envoyée, En attente), never for an assisted order awaiting confirmation (it is rejected on RA-23); reservations are released automatically (ORD-10). - Documents (ORD-12): the delivery note exists from Prête, the invoice from Expédiée (default
billing.invoiceOn); both are PDFs read through short-lived signed URLs. - Returns (ORD-13) and after-sales claims (SUP-04) only on Livrée orders, within their windows; the server re-checks (
422 RETURN_WINDOW_EXPIRED,422 AFTER_SALES_WINDOW_EXPIRED). - Prices on the order are the snapshot taken at submission (and any controlled modification by HOCO); they never follow later catalog changes.
- The live stream is a convenience: the same changes arrive as notifications, and the screen refetches on focus.
States
| Situation | Message or behaviour |
|---|---|
| Loading | Skeleton of header, tracker and three lines |
404 NOT_FOUND | « Commande introuvable » and back to RA-21 |
409 ORDER_TRANSITION_NOT_ALLOWED on cancel | « Cette commande ne peut plus être annulée : HOCO vient de la confirmer. Contactez l'assistance si besoin. » — the order is reloaded |
| Document not yet available | Grey row with its availability sentence |
| PDF download fails | Snackbar « Téléchargement impossible. Réessayez. » |
| Offline | Cached detail if viewed before, offline banner; actions disabled |
| Live connection down | No visible change; refetch on focus and on push |
Copy — « Commande {number} » · « Passée le {date} » · « En attente de confirmation par HOCO. Vous serez notifié dès la confirmation. » · « HOCO a modifié votre commande le {date} — Motif : {reason} » · « Voir les modifications » · « Articles » · « Voir les {count} articles » · « Livraison » · « Appeler le livreur » · « Reçu par {name} » · « Paiement » · « Déclarer un paiement » · « Documents » · « Facture {number} » · « Bon de livraison {number} » · « Disponible à l'expédition » · « Retours et SAV » · « Signaler un problème (SAV) » · « Demander un retour » · « Délai de retour dépassé ({days} jours après la livraison). » · « Historique » · « Recommander » · « Annuler la commande » · « Contacter l'assistance » · « Commande annulée » · « Statut mis à jour : {status} ».
Analytics — order_viewed with status, channel; order_live_update_applied with from, to; order_cancel_requested; order_cancelled with reasonCode; order_reordered with source: "detail"; order_document_downloaded with type; after_sales_started with orderId; return_started with orderId.
Acceptance criteria
- The status, dates and history equal those of the back-office order (BO-39) (cahier §5.4).
- A status change made in the back-office appears on an open RA-22 within 5 seconds, and also arrives as a push and in the inbox.
- « Annuler la commande » is visible only for Envoyée and En attente orders (not assisted ones awaiting confirmation); after cancellation the status is Annulée everywhere.
- The invoice PDF opens once the order is shipped; before, the row says when it will be available.
- « Demander un retour » disappears 7 days after delivery; « Signaler un problème » 30 days after.
RA-23 — Assisted order confirmation
| Field | Value |
|---|---|
| Screen | Assisted order confirmation · Orders |
| French title | Commande assistée à confirmer |
| Release | V1 |
| Design day | Day 9 — DES-09 |
| Build task | MRA-05 |
| Requirements | ORD-08 |
| Reference screen | None — follow the design system |
Purpose — Let the reseller check and confirm — or reject — an order their delegate prepared with or for them (cahier §4.4 « Une commande assistée doit être confirmée par le revendeur ou validée par l'administration », §6.7; ORD-08). Confirmation does not make the order Validée: it is then Envoyée and waits for HOCO like any other order (ORD-14).
Entry points & exits — Push and SMS assisted_order.awaiting_confirmation (deep link /orders/{orderId}/confirm), reminder push 24 h before expiry, the home banner, the pinned card of RA-21, the banner of RA-22. Exits to RA-20-like success then RA-22, to RA-19 (address), to RA-17 (« Copier dans mon panier » after a rejection or expiry), phone or WhatsApp to the delegate.
Layout
AppBar« Commande à confirmer ».- Delegate card: avatar with initial, « Préparée par Yacine, votre délégué HOCO », « le 14 nov. à 11:05 », « Appeler » and « WhatsApp » (delegate's number).
- Number « CMD-2026-000161 » and expiry
Countdown: « À confirmer avant le 17 nov. à 11:05 (dans 2 j 5 h) » — warning tone under 24 h. - Explanation: « Vérifiez les articles, l'adresse et le mode de paiement. Après votre confirmation, HOCO confirmera la commande avant de la préparer. »
- Re-pricing banner when the totals changed since the delegate prepared it: « Les prix ont changé depuis la préparation : nouveau total 46 200,00 DA. »
- Articles (read-only): thumbnail, name, reference, « 10 × 2 490,00 DA », line total; line issues as in the cart (out of stock, unavailable).
- « Adresse de livraison » —
AddressCardchosen by the delegate, « Modifier » → RA-19 in selection mode. - « Mode de paiement » — the
RadioCardlist of RA-18, with the same credit box and rules; the payment method is chosen by the reseller here. - « Note » (facultatif) — the delegate's note shown read-only, plus a field for the reseller's own note (500 characters).
SummaryCardwith the current totals.StickyFooter: primary « Confirmer la commande », destructive text « Refuser ».
Data
| Shown | Source |
|---|---|
| Order, lines, totals (re-priced) | orders.get → number, items[] (with issues), totals, assisted.delegateFirstName, assisted.delegatePhone, assisted.preparedAt, assisted.expiresAt, assisted.confirmation, assisted.note, address, repricedSincePreparation |
| Addresses, payment methods, credit, fee | cart.checkoutOptions shapes, for this order (Assumption — the contract may expose them on orders.get; to settle on the orders API page) |
| Expiry delay | settings.orders.assistedConfirmationHours (72) |
Actions
- « Confirmer la commande » →
orders.confirmAssisted{ paymentMethod, addressId, note, expectedTotalTtc }with anIdempotency-Key(same exactly-once handling as RA-18). Success → success screen « Commande confirmée ! Elle est maintenant en attente de confirmation par HOCO. » with « Suivre ma commande » → RA-22. - « Refuser » →
BottomSheet« Pourquoi refusez-vous cette commande ? »: « Articles ou quantités incorrects », « Prix trop élevés », « Je n'ai pas demandé cette commande », « Je commanderai plus tard », « Autre » (comment required) →orders.rejectAssisted{ reasonCode, comment }with anIdempotency-Key→ result « Commande refusée. Yacine en est informé. » with « Copier dans mon panier » (orders.reorder) and « Retour aux commandes ». - Live event: if HOCO confirms the order for the reseller (by phone) while the screen is open, the screen switches to the read-only state.
Rules
- Confirmation only while the confirmation is En attente du revendeur and before
assisted.expiresAt(72 h); a confirmation after expiry is refused even if the expiry job has not run (409 ASSISTED_ORDER_EXPIRED). - The order is re-priced and re-controlled at confirmation like a checkout: the reseller confirms the totals shown (
409 CART_CHANGEDotherwise), with the same stock, credit and minimum-amount rules (cahier §6.7 « Le prix, le stock et le crédit sont contrôlés comme pour une commande normale »). - The reseller cannot edit the lines in V1. To change them: refuse, then « Copier dans mon panier » and order normally, or ask the delegate for a new assisted order.
- A reseller still PENDING_VALIDATION cannot confirm (
403 ACCOUNT_PENDING_VALIDATION): HOCO confirms the order by phone with them in BO-41 (Validée par l'administration), which is the usual path for a first order taken in the shop. - The order keeps its source delegate for attribution in reports, whoever confirms it (ORD-09).
States
| Situation | Message or behaviour |
|---|---|
| Awaiting the reseller | Full interactive layout |
| Already confirmed (by the reseller or HOCO) | Read-only: « Commande confirmée le … par vous / par HOCO » → « Suivre ma commande » |
| Rejected | Read-only: « Vous avez refusé cette commande le … » |
| Expired (Expirée) | « Cette commande a expiré le … sans confirmation. » with « Copier dans mon panier » and « Appeler Yacine » |
409 ASSISTED_ORDER_EXPIRED | Same as expired |
409 ORDER_TRANSITION_NOT_ALLOWED | Reload → read-only state with the current status |
409 CART_CHANGED | Reload; re-pricing banner; button enabled again |
422 STOCK_INSUFFICIENT · 422 PRODUCT_UNAVAILABLE | Lines flagged; « Certains articles ne sont plus disponibles. Refusez la commande et demandez-en une nouvelle à votre délégué, ou copiez-la dans votre panier pour l'ajuster. » |
422 CREDIT_LIMIT_EXCEEDED | Payment section in error, as on RA-18 |
403 ACCOUNT_PENDING_VALIDATION | Buttons replaced by « Votre compte n'est pas encore validé : HOCO confirmera cette commande avec vous par téléphone. » and the WhatsApp button |
| Offline | Read-only with the offline banner; buttons disabled |
Copy — « Commande à confirmer » · « Préparée par {delegateFirstName}, votre délégué HOCO » · « À confirmer avant le {date} (dans {remaining}) » · « Vérifiez les articles, l'adresse et le mode de paiement. Après votre confirmation, HOCO confirmera la commande avant de la préparer. » · « Les prix ont changé depuis la préparation : nouveau total {total}. » · « Confirmer la commande » · « Refuser » · « Pourquoi refusez-vous cette commande ? » · « Commande confirmée ! Elle est maintenant en attente de confirmation par HOCO. » · « Commande refusée. {delegateFirstName} en est informé. » · « Copier dans mon panier » · « Cette commande a expiré le {date} sans confirmation. »
Analytics — assisted_order_viewed with hoursLeft; assisted_order_confirmed with method, hoursToConfirm, repriced; assisted_order_rejected with reasonCode; assisted_order_copied_to_cart.
Acceptance criteria
- Tapping the push opens this screen on the right order; confirming makes it Envoyée and visible in the back-office queue BO-41 as confirmed by the reseller, attributed to the delegate.
- A confirmation attempted after 72 h is refused with the expiry message.
- If prices changed since the preparation, the new total is shown before the reseller can confirm.
- A rejection requires a reason and notifies the delegate.
- A pending-validation reseller cannot confirm and is told that HOCO will confirm by phone.
Ordering
Screen specifications RA-17 to RA-20 of the reseller app — server-side cart with live re-validation, checkout with address, payment method and credit check, address book, and the confirmation of an order sent to HOCO for confirmation.
Promotions
Screen specifications RA-24 and RA-25 of the reseller app — daily offers with countdown, the list of promotions targeting the reseller, and a promotion's conditions and eligible products.