HOCO B2B
Team tasksAnis

WEB-03 — Reseller web — cart & checkout

Cart shared with the mobile app, checkout with address/payment/note and confirmation.

FieldDetails
Task codeWEB-03
PhaseP1 — V1 build & integration
Product scopeV1
StatusPlanned
StartTue 1 Dec 2026
DueTue 1 Dec 2026
ResponsibleAnis — Full-stack developer
Co-responsible—
Effort0.5 person-day(s) planned · 3 from scratch · size XS
Area · appReseller web · web
Depends onWEB-02
UnblocksWEB-04
Milestones—

Summary

Cart shared with the mobile app, checkout with address/payment/note and confirmation.

Description

Resellers on the web order with the same server-side cart as the mobile app (ORD-01…ORD-03, FIN-02, FIN-05, RWA-02). This task delivers the cart (RW-06) — lines with the reseller's customer-type price and applied promotions, line issues returned by the server (PRODUCT_UNAVAILABLE, STOCK_INSUFFICIENT without quantities, QUANTITY_NOT_ALLOWED, PROMOTION_CAP_REACHED), progress to the minimum amount, HT/VAT/TTC totals and delivery-fee estimate — and checkout with confirmation (RW-07): address choice or creation, enabled payment methods, available credit for the credit method, note, summary and an idempotent submit. The confirmation tells the reseller that HOCO will confirm the order (status Envoyée), since no order is confirmed automatically (ORD-14). Out of scope: order tracking (WEB-04).

Subtasks

#SubtaskOwner
1Cart page with line editing (quantity rules, remove), promotions shown per line, server issues per line with fix actionsAnis
2Minimum-amount progress bar from orders.minAmount and totals block (HT, TVA, TTC, delivery fee estimate)Anis
3Cart badge kept in sync across tabs and with the mobile app (refetch on focus)Anis
4Checkout step « Adresse »: select default/other address or add one (addresses.create)Anis
5Checkout step « Paiement »: methods from cart.checkoutOptions, available credit display for CREDIT, CREDIT_LIMIT_EXCEEDED messageAnis
6Submit with an Idempotency-Key per attempt, double-submit guard, 409 CART_CHANGED handling showing what changedAnis
7Confirmation page: CMD number, status Envoyée, « En attente de confirmation par HOCO », links to order detailAnis
8Design QA of RW-06 and RW-07Akram

Deliverables

  • apps/web/src/app/[locale]/(account)/{cart/page.tsx,checkout/page.tsx,checkout/confirmation/[orderId]/page.tsx}
  • apps/web/src/features/cart/ (line item, totals, issues, checkout steps)

Acceptance criteria

  • Items added in the mobile app appear in the web cart for the same reseller (ORD-01, RWA-02)
  • Below the minimum amount the checkout button is disabled with the missing amount shown (ORD-02)
  • A double click on « Valider la commande » creates a single order (idempotency)
  • A price change during checkout shows the CART_CHANGED review instead of creating an order (PRC-05)
  • After submission the order shows status Envoyée and appears in the back-office confirmation queue (ORD-03, ORD-14)

Requirements covered

RequirementTitleRelease
ORD-01Server-side cart shared across the reseller's devices (mobile and web)V1
ORD-02Cart rules: minimum amount, minimum quantities and steps, maximum per order, stock and credit checksV1
ORD-03Checkout: address, note, payment method; a unique order number; immediately visible in the back-officeV1
FIN-02Payment methods: cash on delivery, bank transfer, CCP, BaridiMob, creditV1
FIN-05Basic credit control: ceiling, used and available credit checked at checkoutV1

Screens

ScreenNameApp
RW-06CartRW
RW-07Checkout & confirmationRW

API surface

Test measures

  • Playwright e2e: add from catalog → cart issues → checkout with each payment method
  • Playwright test simulating CART_CHANGED by changing a price between steps

KPI

  • Delivered by Tue 1 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.

On this page