Loading projects…
Une boutique en ligne complète pour JF LAROSE Laboratoires (PLANTAXION SARL) : douze formules d’origine végétale vendues avec paiement à la livraison dans les 58 wilayas, en français et en arabe, avec un back office où l’équipe gère elle-même le catalogue, les commandes, les prix de livraison et la paperasse du livreur. Vitrine, API et panneau d’administration : tout construit par moi.

JF LAROSE Laboratoires fabrique douze formules d’origine végétale à usage externe à Soumaa, wilaya de Blida. La marque vend dans tout le pays comme le commerce algérien fonctionne réellement : le client commande en ligne et paie le livreur en espèces à la porte. Pas de carte, pas de coordonnées bancaires, pas de compte obligatoire.
Cela paraît simple jusqu’au moment de le tarifer. La livraison coûte un montant différent dans chacune des 58 wilayas, et diffère encore entre le domicile et un point de retrait (stop desk). La boutique doit annoncer le bon montant avant que le client s’engage, en français comme en arabe, puis remettre au livreur un fichier que sa société de livraison importe sans y toucher.
Une vitrine en français et en arabe — une vraie mise en page de droite à gauche, pas une traduction posée après coup — où les visiteurs parcourent les douze formules par besoin plutôt que par catégorie : douleurs, digestion, circulation, cheveux, rhume, et ainsi de suite. La recherche tolère les accents manquants, parce que personne ne tape « détente » avec l’accent sur un téléphone.
La commande se fait en trois étapes : panier, livraison, confirmation. Il existe aussi un raccourci : sur une fiche produit, le formulaire est déjà ouvert, donc qui ne veut qu’un flacon saisit son nom, son téléphone et sa wilaya et termine sans jamais voir de panier.
L’équipe pilote toute la boutique depuis un back office en français, sans développeur dans la boucle : tableau de bord, produits, commandes, clients, messages de contact et paramètres.
Deux modules justifient leur existence tous les jours. La grille de livraison contient un prix pour les 58 wilayas et les 1 548 communes et circule sous forme de fichier Excel — on la télécharge, on la retarife dans un tableur, on la renvoie. Et l’export livreur écrit les dix-huit colonnes propres à la société de livraison, orthographiées et ordonnées exactement comme son importateur l’attend, pour toutes les commandes confirmées d’une période choisie.
L’équipe change un prix, masque un produit, retarife une wilaya et exporte les livraisons du jour — sans m’appeler.
La vitrine est en Next.js 15 avec React 19 et TypeScript strict, rendue côté serveur, next-intl gérant le routage français/arabe et zustand conservant le panier d’un rechargement à l’autre. L’API est en NestJS sur PostgreSQL via Prisma, les photos produits vivent dans un stockage objet MinIO, et la session est un cookie httpOnly. Le back office fait partie de la même application Next.js, derrière un contrôle de rôle appliqué côté serveur — jamais seulement dans le navigateur.
Une décision mérite d’être signalée, parce que c’est elle qui garde les deux moitiés honnêtes : chaque forme qui traverse la frontière entre le front et l’API est déclarée dans un seul fichier, et un test backend lit ce fichier à l’exécution. Modifiez un champ d’un côté sans l’autre et la suite échoue. Les prix sont partout des entiers en dinars — pas de virgule flottante, pas de centimes, pas de surprise d’arrondi.
J’ai tout construit, chez Sadeem Informatique : la vitrine, l’API NestJS, la base de données et son amorçage, le stockage objet, le back office, la tarification des livraisons, l’export livreur, les e-mails transactionnels et les suites de tests. Front et back, de bout en bout.
La boutique est en ligne sur store.jf-larose.com. Douze produits, 58 wilayas, deux langues, paiement à la livraison — et une équipe qui gère son catalogue, ses prix et sa paperasse sans toucher au code.