veza/docs/PLAN_V0_403_IMPLEMENTATION.md
senke 7534c1d50e docs: prepare v0.403 implementation (scope, plan, SCOPE_CONTROL)
- Add V0_403_RELEASE_SCOPE.md: P3 Payout, R1 Reviews, F1 Factures, R2 Remboursements
- Add PLAN_V0_403_IMPLEMENTATION.md: phases détaillées, commits suggérés
- Update SCOPE_CONTROL: reference v0.403, v0.402 taguée
- Update FEATURE_STATUS: section Prévu en v0.403
- Update PROJECT_STATE: prochaines étapes v0.403
2026-02-22 16:01:03 +01:00

6.1 KiB

Plan d'implémentation v0.403 — Phase 4 Commerce (suite)

Version cible : v0.403
Objectif : Payout vendeurs, reviews produits, factures, remboursements
Référence : V0_403_RELEASE_SCOPE.md
Dernière mise à jour : février 2026


Diagramme de dépendances v0.403

flowchart TD
    subgraph Backend [veza-backend-api]
        R1_B[R1 Migration product_reviews + routes]
        F1_B[F1 Génération PDF facture]
        R2_B[R2 Refund API + webhook]
        P3_B[P3 Stripe Connect payout]
    end
    subgraph Frontend [apps/web]
        R1_F[ProductDetailView reviews ProductCard rating]
        F1_F[PurchasesView lien facture]
        R2_F[SellerDashboardView bouton refund]
        P3_F[SellerDashboardView balance onboarding]
    end
    R1_B --> R1_F
    F1_B --> F1_F
    R2_B --> R2_F
    P3_B --> P3_F

Phase 0 — Vérification préalable

# Tâche Fichiers Commit suggéré
0.1 Vérifier numérotation migrations (101+ libre) veza-backend-api/migrations/
0.2 Vérifier routes marketplace/sell actuelles routes_marketplace.go, sell handlers
0.3 Vérifier Hyperswitch/Stripe refund API Doc Hyperswitch
0.4 Vérifier ProductDetailView, PurchasesView, SellerDashboardView apps/web/src/

Phase 1 — Lot R1 (Reviews produits)

# Tâche Fichiers Commit suggéré
1.1 Migration product_reviews migrations/101_product_reviews.sql feat(marketplace): add product_reviews migration
1.2 Modèle ProductReview, service marketplace/models.go, service.go feat(marketplace): add ProductReview model
1.3 POST /marketplace/products/:id/reviews Handler, vérifier license feat(marketplace): add create review endpoint
1.4 GET /marketplace/products/:id/reviews Handler paginé feat(marketplace): add list reviews endpoint
1.5 Note moyenne sur Product Préchargement ou computed feat(marketplace): add avg_rating to Product
1.6 marketplaceService createReview, listReviews marketplaceService.ts feat(marketplace): add review API to frontend
1.7 ProductDetailView : formulaire avis, liste avis ProductDetailView.tsx feat(marketplace): add reviews UI to ProductDetailView
1.8 ProductCard : badge note moyenne ProductCard.tsx feat(marketplace): add rating badge to ProductCard

Validation : Achat → avis créé → affiché, note moyenne mise à jour.


Phase 2 — Lot F1 (Factures)

# Tâche Fichiers Commit suggéré
2.1 Dépendance lib PDF (gopdf, gofpdf) go.mod chore(backend): add PDF library
2.2 Service GenerateInvoice marketplace/service.go feat(marketplace): add invoice generation
2.3 GET /marketplace/orders/:id/invoice Handler, PDF response feat(marketplace): add invoice download endpoint
2.4 marketplaceService getInvoiceUrl marketplaceService.ts feat(marketplace): add invoice download to frontend
2.5 PurchasesView / LicensesView : lien « Télécharger facture » Composants feat(marketplace): add invoice download link

Validation : Commande complétée → téléchargement PDF facture.


Phase 3 — Lot R2 (Remboursements)

# Tâche Fichiers Commit suggéré
3.1 Service RefundOrder marketplace/service.go feat(marketplace): add refund order logic
3.2 POST /marketplace/orders/:id/refund Handler (seller/admin) feat(marketplace): add refund endpoint
3.3 Webhook refund (si Hyperswitch fournit) ProcessWebhook feat(marketplace): handle refund webhook
3.4 Révocation licence sur refund Service feat(marketplace): revoke license on refund
3.5 SellerDashboardView : bouton Rembourser sur vente SellerDashboardView.tsx feat(seller): add refund button to sales

Validation : Remboursement initié → order refunded, licence révoquée.


Phase 4 — Lot P3 (Payout vendeurs)

# Tâche Fichiers Commit suggéré
4.1 Config Stripe Connect (client_id, keys) config.go feat(seller): add Stripe Connect config
4.2 POST /sell/connect/onboard Redirect Stripe Express feat(seller): add Connect onboarding endpoint
4.3 GET /sell/balance Balance depuis Stripe ou table feat(seller): add balance endpoint
4.4 SellerDashboardView : carte balance, bouton onboarding SellerDashboardView.tsx feat(seller): add balance and onboarding UI
4.5 Transfert après vente (optionnel) Webhook ou post-create order feat(seller): add payout on sale

Validation : Vendeur onboarding → balance affichée. Option : report P3 si Stripe Connect non configuré.


Phase 5 — Finalisation

# Tâche Fichiers Commit suggéré
5.1 MSW handlers (reviews, invoice, refund, balance) handlers-marketplace.ts test(marketplace): add MSW handlers for v0.403
5.2 Stories Storybook (composants nouveaux) Composants feat(marketplace): add stories for v0.403
5.3 CHANGELOG v0.403 CHANGELOG.md docs: update CHANGELOG for v0.403
5.4 FEATURE_STATUS, PROJECT_STATE docs/ docs: update docs for v0.403 release

Ordre d'exécution recommandé

  1. Phase 0 — Vérification (30 min)
  2. Phase 1 — R1 Reviews (3-4 j)
  3. Phase 2 — F1 Factures (2-3 j)
  4. Phase 3 — R2 Remboursements (2-3 j)
  5. Phase 4 — P3 Payout (5-7 j, ou report)
  6. Phase 5 — Finalisation (0.5-1 j)

Références