Aller au contenu
~/benhattab
Retour aux projets
En productionMarketplace2026 — présent

Zeytouni

Marketplace d'achat groupé avec séquestre, pour le Sénégal

Marketplace sénégalaise fondée sur l'achat groupé et la confiance : l'acheteur verse une caution de 30 %, le solde à la livraison, et l'argent reste sous séquestre jusqu'à ce qu'il confirme avoir reçu sa commande. Un copilote IA aide en parallèle les vendeurs à fixer leurs prix et calculer leur seuil de rentabilité.

30/70
caution / reliquat
4
opérateurs mobile money
3
applications
Rôle

Architecte & développeur — backend, frontend, superadmin

Stack
Laravel 13PostgreSQLNext.js 16React 19Tailwind 4shadcn/uiPayDunyaCloudflare R2spatie/laravel-permission
Liens
Le problème

Le commerce en ligne en Afrique de l'Ouest bute sur un problème de confiance dans les deux sens. L'acheteur ne veut pas payer d'avance quelqu'un qu'il ne connaît pas ; le vendeur ne veut pas expédier sans garantie de paiement. Le paiement à la livraison résout la peur de l'acheteur et ruine la trésorerie du vendeur. Il fallait un mécanisme qui protège les deux parties simultanément.

L'approche

Le cœur du système est un cycle de vie d'engagement en quatre états : caution de 30 % versée, reliquat de 70 % versé, livraison, puis décaissement. L'argent transite par un séquestre et n'est libéré vers le vendeur qu'après confirmation de réception par l'acheteur. Le vendeur sait que les fonds existent, l'acheteur sait qu'il les récupère si rien n'arrive.

Les paiements passent par PayDunya et couvrent les quatre opérateurs de mobile money du marché — Wave, Orange Money, Free Money, Expresso — chacun avec redirection. Deux webhooks entrants distincts gèrent l'IPN de paiement et le décaissement vendeur, parce que ce sont deux flux financiers aux échecs indépendants.

Le copilote vendeur ne fait pas d'IA générative sur les chiffres. Les moteurs de prix, de logistique, de comparaison marché et de seuil de rentabilité sont du calcul déterministe en PHP ; le LLM sert uniquement à expliquer les résultats et à répondre en langage naturel. Sur des décisions de marge, on ne laisse pas un modèle faire l'arithmétique.

Architecture
  1. 01

    API

    Laravel 13 sur PostgreSQL. Deux réalms d'authentification séparés : utilisateurs/vendeurs sous Sanctum, administrateurs sur un modèle Admin distinct avec permissions spatie.

    Laravel 13 · Sanctum

  2. 02

    Séquestre & paiements

    PayDunya avec les quatre opérateurs mobile money. Webhooks séparés pour l'IPN de paiement et le décaissement vendeur.

    PayDunya · webhooks

  3. 03

    Copilote vendeur

    Calcul déterministe (prix, logistique, comparaison marché, seuil de rentabilité) + une couche RAG pour l'explication en langage naturel.

    PHP engines · RAG

  4. 04

    Stockage

    Cloudflare R2 pour les médias produits — pas d'egress facturé, ce qui compte quand le catalogue est très visuel.

    Cloudflare R2

  5. 05

    Économie de jetons

    Packs, achats, transactions et codes de rachat, plus les boosts produits et les annonces vendeurs.

    domain models

  6. 06

    Interfaces

    Un front acheteur/vendeur et un superadmin séparé, tous deux en Next.js 16 avec shadcn/ui.

    Next.js 16

Arbitrages

Deux modèles d'authentification, pas un champ `is_admin`

Sur une plateforme qui manipule de l'argent en séquestre, un booléen sur la table utilisateurs est une élévation de privilèges à une requête d'écriture près. Les administrateurs vivent donc sur un modèle et un realm distincts, derrière leur propre middleware et leurs propres permissions. Le coût est un peu de duplication ; le bénéfice est qu'aucun bug côté utilisateur ne peut produire un admin.

L'arithmétique reste déterministe

Il aurait été plus rapide de demander au LLM de calculer un prix conseillé. Mais un modèle qui se trompe de 8 % sur une marge coûte de l'argent réel à un commerçant, et l'erreur est invisible parce que la réponse reste plausible. Les formules sont donc écrites et testées en PHP ; l'IA reste sur ce qu'elle fait bien — expliquer.

Points clés
  • Cycle d'achat groupé en quatre états avec fonds sous séquestre jusqu'à confirmation de livraison
  • Les quatre opérateurs mobile money du marché sénégalais via PayDunya
  • Copilote vendeur : prix conseillé, logistique, comparaison marché et seuil de rentabilité
  • Gestion des litiges, retraits vendeurs, coupons, boosts produits et annonces
  • Deux realms d'authentification isolés et permissions granulaires côté administration