Étude de cas
DragZone – intégration Shopify sur mesure
DragZone est un détaillant bulgare de premier plan spécialisé dans les vélos, les vélos électriques et les accessoires de cyclisme.
L’entreprise exploite un réseau de magasins physiques en Bulgarie et en Roumanie, appuyé sur un entrepôt central et plusieurs points de retrait. Son catalogue couvre des dizaines de marques (Drag, Shimano, Bell, FSA, Suntour et d’autres) avec des dizaines de milliers de SKU dans les catégories VTT, route, urbain, vélos électriques, composants et équipements. L’activité sert aussi bien les clients particuliers (B2C) que professionnels (B2B), avec des grilles tarifaires dédiées par pays.
Le projet
DragZone avait besoin d’unifier sa boutique Shopify (dragzone.bg) avec son ERP Microsoft Dynamics NAV existant, afin que la boutique en ligne reflète toujours les stocks, les prix et les données produits réels - sans que les opérateurs aient à refaire le même travail d’un système à l’autre.
Nous avons développé une application Shopify privée qui prend en charge l’intégration de bout en bout :
- Synchronisation complète du catalogue produits - environ 50 000 articles NAV envoyés vers Shopify deux fois par jour (02:00 et 14:00, heure bulgare). Les produits, variantes, images, catégories, collections, metafields et dates de livraison prévues sont tous synchronisés. Les collections Shopify ajoutées manuellement par l’équipe merchandising sont conservées d’une exécution à l’autre.
- Synchronisation incrémentale des stocks - toutes les 5 minutes, seuls les SKU que NAV signale comme modifiés sont comparés au stock actuel dans Shopify et envoyés s’ils diffèrent. Zéro appel API inutile.
- Tarification B2B à plusieurs niveaux - 4 listes de prix distinctes (Retail BG, B2B BG, B2B EN, B2B RO, Retail RO) synchronisées en une seule tâche, par lots de 250 prix par mutation Shopify.
- Traitement des commandes - les commandes Shopify (détail et B2B) sont validées, rattachées aux clients NAV et enregistrées dans NAV comme commandes de vente. Les données de facturation (numéro de TVA, raison sociale, MOL) proviennent des attributs du checkout ; le code de TVA est déduit du pays. Les commandes en échec sont automatiquement réessayées selon un intervalle configurable, avec temporisation et limite du nombre de tentatives.
- Enrichissement du contenu - un passage hebdomadaire de maillage interne Netpeak réécrit les données de recommandation dans les metafields produits, afin que la boutique puisse afficher des blocs « vous aimerez peut-être aussi » alimentés par de vrais signaux SEO.
- Observabilité - chaque action d’intégration est journalisée avec un niveau de gravité, consultable et filtrable dans une administration intégrée à Shopify. Les tâches planifiées peuvent être démarrées, arrêtées et déclenchées à la demande.
- Conception axée sur la sûreté - des garde-fous de détection d’orphelins empêchent l’archivage en masse lorsque NAV est temporairement injoignable ; la pagination NAV est validée par rapport aux totaux annoncés, avec réessai automatique ; les opérations en masse sont découpées en lots et utilisent une recherche dichotomique de repli en cas d’échec partiel.
L’ensemble tourne sans intervention, traite des dizaines de milliers d’enregistrements par cycle et respecte à chaque étape les limites de coût et de débit du GraphQL de Shopify.
Technologies
.NET 8
C#
ASP.NET Core
React Router (Remix)
Shopify GraphQL Admin API
Shopify Bulk Operations- Microsoft Dynamics NAV (SOAP)
PostgreSQL