Le projet
ARDUX est une boutique en ligne qui livre partout à Dakar. Le catalogue rassemble high-tech, mode, beauté, bijoux et maison. On y trouve des produits importés à côté d'une vitrine dédiée aux marques locales.
Au Sénégal, peu de gens paient en ligne par carte bancaire. La boutique s'appuie donc sur ce que les clients utilisent déjà : Wave, Orange Money ou le paiement en espèces à la livraison. Pas de compte à créer : le numéro de téléphone sert d'identifiant. Le client le confirme par un code reçu par SMS, puis s'en sert pour suivre sa commande.
Derrière la boutique, il y a une plateforme d'administration. Elle couvre le catalogue, les commandes, les livraisons, les promotions et les fournisseurs partenaires.
Mon rôle sur le projet
J'ai conçu et développé la plateforme de bout en bout, de la boutique jusqu'au déploiement.
- Boutique : pages produit avec variantes (taille, couleur…), recherche instantanée avec Algolia, catégories et vitrine des marques locales, référencement (balises SEO, sitemap)
- Tunnel de commande en trois étapes : facturation, mode de livraison, paiement. On peut y saisir un code promo, et une facture PDF est générée
- Paiement : intégration de Wave et d'Orange Money via le service ARDUX Pay, avec confirmation asynchrone du paiement et mise à jour automatique de la commande
- Suivi de commande : à partir du code de commande et du numéro de téléphone, avec un statut affiché pour chaque article
- Back-office en Vue.js : gestion des produits et des stocks, des commandes, des livraisons et des livreurs, des points et modes de livraison, des bannières, de la FAQ, des rôles et des permissions
- Espace partenaires : les fournisseurs gèrent leurs utilisateurs et suivent leurs commandes, leurs ventes et leur chiffre d'affaires sur la période de leur choix
- Commerciaux : des agents commerciaux reçoivent des codes promo qui leur sont rattachés, ce qui permet de suivre les ventes qu'ils apportent
- Notifications : e-mails et SMS (Vonage) à la création d'une commande, au paiement et au départ en livraison
- Infrastructure : environnement Docker, intégration continue avec GitLab CI et déploiement en conteneurs
Défis techniques
- Une commande, plusieurs fournisseurs. Un même panier contient des articles de fournisseurs différents, livrés à des moments différents. Le statut est donc suivi article par article : payé, validé, en expédition, livré, annulé. Une livraison regroupe ensuite une partie des articles d'une commande.
- Le prix n'est pas le même pour un produit local et un produit importé. Chaque fournisseur a deux taux de marge, un pour le local et un pour l'international. Le prix affiché se calcule à partir du produit et de son fournisseur.
- Le paiement est confirmé plus tard. Wave et Orange Money renvoient leur confirmation par un appel serveur, pas au moment où le client valide. Il faut rapprocher ce paiement de la bonne commande, refuser une commande déjà réglée et prévenir le client.
- Trois moyens de paiement, trois règles. Une commande réglée en espèces peut encore être modifiée après validation. Une commande payée par mobile money ne le peut plus.
- Un catalogue avec beaucoup de variantes. Les produits sont déclinés par attributs et rangés dans des catégories imbriquées. La recherche doit rester rapide malgré ce volume.
- Garder une trace des actions sensibles. Les rôles et permissions limitent l'accès au back-office, et un journal d'activité enregistre les modifications.
