Étude de cas 03 / 06
Bonjout Beauty
Beauté · E-commerce
Des tableurs à un logiciel MRP sur mesure
- Ingénierie des données
- Ingénierie logicielle
- Cloud et infrastructure

Chiffres clés
- Entre une commande Shopify et le MRP
- Minutes
- Semaines de prévision de stock
- 12 à 52
- Recalcul rétroactif du coût de revient
- 2 ans
- Données de ventes chargées dans BigQuery
- Chaque jour
En bref
L’enjeu
Une marque de beauté en forte croissance, vendue en direct (DTC) et auprès de revendeurs, qui fonctionnait sur des fichiers Excel gigantesques, puis sur un empilement d’outils. Le stock était réparti entre entrepôts, laboratoires de conditionnement et partenaires, sans réponse unique à trois questions : que possède la marque, combien cela lui a-t-il réellement coûté, et quand sera-t-elle en rupture ?
Notre réalisation
D’abord, l’analytique quotidienne : les données de ventes de la marque arrivent chaque jour dans BigQuery (aujourd’hui via DataSync) et alimentent ses tableaux de bord. Ensuite, une plateforme MRP complète (achats, stock suivi au lot près, prévision de stock, planification de la production, calcul du coût de revient rendu et synchronisation Shopify) et son intégration avec un nouveau centre de distribution accessible uniquement par API.
Le résultat
Un seul système de référence pour les achats, le stock, la production, les ventes et le coût de revient, à la place des tableurs : les commandes Shopify appliquées en quelques minutes, chaque unité traçable jusqu’à son lot, et le stock acheté valorisé à son coût de revient rendu réel.
Services associés : Développement full stackCollecte et analyse de donnéesIntégration de plateformes
Savoir-faire
Ce qu’il a fallu.
Ingénierie des données
- Un stock en event sourcing, bâti sur le journal des mouvements de stock de l’application (en ajout seul) : mouvements datés à leur date métier, sortie des lots les plus anciens en premier, rejeu des inventaires physiques et reconstitution du stock à n’importe quelle date passée.
- Un moteur de calcul du coût de revient rendu (prix du bon de commande × taux BCE du jour, plus le fret, figé par lot), consolidé dans un registre quotidien au coût moyen pondéré qui recalcule l’historique dès qu’un événement antidaté arrive.
- Une ingestion Shopify dont chaque effet ne s’applique qu’une fois : webhooks vérifiés par HMAC traités toutes les 5 minutes, rapprochement toutes les 15 minutes et reprise complète de l’historique.
- Des pipelines DataSync qui chargent chaque jour les données Shopify dans BigQuery pour les tableaux de bord et les exports comptables.
Ingénierie logicielle
- Une API Flask et une application React 19 : tableaux de bord Recharts, planification de la production et des arrivages par glisser-déposer.
- Des tests automatisés : unitaires, d’intégration sur une vraie base Postgres, et front-end.
- Un client défensif et testé pour l’API d’un centre de distribution sans webhooks ni mises à jour : une écriture au résultat incertain n’est jamais relancée, et une réception invraisemblable est mise en attente.
- Les commandes revendeurs reconstruites nativement à partir d’une ancienne application : bons de commande des enseignes reçus en PDF ou par e-mail et lus par un LLM, puis factures, listes de colisage et réservations de stock dans le MRP.
Cloud et infrastructure
- Des services Cloud Run, plus un job Cloud Run pour les longues synchronisations Shopify.
- Un pipeline Cloud Build qui exécute les migrations de base de données avant chaque déploiement de l’API : une migration en échec bloque la mise en production.
- Des jobs Cloud Scheduler sécurisés par OIDC et gérés depuis l’application, et des environnements DEV et PROD séparés, chacun avec sa base de données et sa boutique.
Projet 01
Bonjout MRP
Flask · React 19 · PostgreSQL · Cloud Run
Le système de référence opérationnel de la marque : des bons de commande aux expéditions et au fret, jusqu’aux réceptions au lot près ; un registre de stock en ajout seul couvrant entrepôts et laboratoires ; des projections de stock sur 12 à 52 semaines avec scénarios d’arrivages ; la planification de la production en laboratoire et des nomenclatures versionnées ; les commandes revendeurs lues dans les bons de commande des enseignes ; et le coût de revient rendu réel. Il s’appuie sur la base de données de l’ancienne application interne de la marque, qu’il étend.
- Objectif
- Savoir à tout moment ce que la marque possède, où, ce que cela lui a réellement coûté et quand elle sera en rupture.
- Points clés
- Projection hebdomadaire par site : rythme de vente sur 21 jours, besoins en composants issus des nomenclatures, stock de sécurité et semaine limite de commande
- Suggestions de réapprovisionnement transformables en bons de commande
- Registre quotidien du coût de revient, avec recalcul rétroactif jusqu’à deux ans
- Documentation de l’API et guide d’aide intégrés à l’application, avec des schémas de flux
- Technologies
- Python
- Flask
- SQLAlchemy
- React 19
- Recharts
- PostgreSQL
- Cloud Run






Projet 02
Intégration du centre de distribution
API du centre de distribution · Shopify GraphQL · Cloud Scheduler
Confier la logistique à Capacity, un centre de distribution accessible uniquement par API, sans webhooks ni endpoints de mise à jour, obligeait le MRP à tout piloter : transmettre les commandes que Shopify oriente vers l’entrepôt, annoncer chaque arrivage par un ordre de réception, en cartons complets quand le colisage le permet, enregistrer les réceptions sur six créneaux de traitement par jour, renvoyer les numéros de suivi vers Shopify et rapprocher le stock de l’inventaire transmis chaque nuit par l’entrepôt.
- Objectif
- Changer de centre de distribution sans expédier deux fois, sans compter deux fois et sans perdre en fiabilité des stocks.
- Points clés
- Testée de bout en bout, d’une boutique Shopify de développement jusqu’à l’environnement de test du centre de distribution, avec son plan de recette automatisé
- Une réception deux fois supérieure à la quantité annoncée est mise en attente, jamais enregistrée
- Un inventaire de nuit qui mettrait à zéro la plupart des références est refusé
- Check-list de mise en service, journal des requêtes et panneaux par arrivage pour les opérateurs
- Technologies
- Python
- Flask
- Shopify GraphQL
- Cloud Scheduler
- API REST



Projet 03
Analytique sur DataSync
DataSync · BigQuery · Looker Studio
Avant le MRP, DataGem a remplacé les tableurs par des tableaux de bord quotidiens sur BigQuery ; ces flux tournent désormais sur DataSync, sa plateforme d’ingestion : les données Shopify sont exportées, chargées en tables intermédiaires puis fusionnées dans BigQuery chaque jour, sans intervention humaine, et ce même entrepôt de données alimente aujourd’hui les exports comptables du MRP.
- Objectif
- Des indicateurs quotidiens et fiables, sans que personne ne touche à un tableur.
- Points clés
- Exports Shopify en masse, transférés en flux vers BigQuery par fenêtres de dates
- Tables intermédiaires fusionnées dans l’historique par clé : relancer un traitement ne duplique aucune ligne
- Technologies
- DataSync
- BigQuery
- Cloud Run Jobs
- Cloud Scheduler
- Looker Studio


The dashboard created by Datagem Consulting has been a game-changer for our start-up. Pierre has demonstrated an excellent understanding of our needs, delivering a customized solution tailored specifically to our business requirements.
We now have immediate access to all our data with 100% accuracy, presented exactly how we want to see our business – all in one place, automatically updated daily without any human intervention.
Our needs continue to evolve, and over time, we have requested additional custom analysis and data tracking. Pierre has always responded promptly, day or night 😊, listening carefully, with patience.
He has been the perfect partner in this project. We have made many people envious of our Dashboard, and I certainly don’t miss our gigantic Excel files!