Étude de cas
Smart Organic – application Shopify sur mesure
Smart Organic est un producteur et distributeur bulgare d'aliments biologiques et sains. BettrFood est la plateforme de commerce en ligne de l'entreprise, par laquelle les produits sont vendus aux clients finaux via Shopify, tandis que le stockage, la logistique et la comptabilité sont gérés dans Microsoft Dynamics NAV.
Le projet
Une application middleware qui automatise l'échange de données entre le système ERP du client (Microsoft Dynamics NAV) et sa boutique en ligne sur Shopify. L'objectif est de garder les stocks, les prix et les commandes synchronisés en permanence, sans aucune intervention manuelle de l'équipe opérationnelle.
Fonctionnalités principales
- Synchronisation des produits - les articles sont récupérés depuis NAV via les OData Web Services et les produits et variantes correspondants sont créés ou mis à jour dans Shopify.
- Mise à jour des prix et des stocks - une tâche planifiée Hangfire récupère les prix et les quantités actuels depuis NAV et les transmet à Shopify. La tarification est prise en charge par un
ShopifyPriceCalculator dédié qui tient compte de la TVA, des prix promotionnels et des règles d'arrondi. - Transfert des commandes - un webhook Shopify se déclenche à chaque nouvelle commande, qui est transformée au format NAV et enregistrée comme Sales Order dans l'ERP, avec un suivi de statut par commande dans un module Order Transfers dédié.
- Panneau d'administration (Blazor Server) - configuration des identifiants NAV et Shopify, visualisation des journaux en temps réel, déclenchement manuel des tâches, gestion des utilisateurs et des rôles via ASP.NET Identity.
- Planification des tâches - intervalles configurables par tâche (minutes / heures), génération automatique des expressions cron et tableau de bord Hangfire intégré.
- Résilience - politiques de nouvelle tentative Polly pour les appels NAV/Shopify instables, un mécanisme de verrouillage qui empêche une même tâche de s'exécuter en parallèle, et le nettoyage automatique des anciens journaux.
Architecture
- Backend : .NET 8 et ASP.NET Core, architecture en couches avec des services distincts pour NAV, Shopify, la configuration, la journalisation et le transfert des commandes.
- Interface : Blazor Server avec SignalR et Bootstrap.
- Base de données : PostgreSQL via Entity Framework Core, avec des migrations de schéma gérées par FluentMigrator.
- Planificateur de tâches : Hangfire sur stockage PostgreSQL.
- Intégrations externes : ShopifySharp pour l'API Admin de Shopify, RestSharp pour les OData Web Services de NAV.
- Authentification : ASP.NET Core Identity avec rôles et authentification par cookie.
Résultat pour le client
Automatisation complète du flux entrepôt → boutique en ligne → commande → ERP : fini la saisie manuelle des données, fini les écarts entre le stock réel en entrepôt et ce que voient les clients en ligne, et un contrôle centralisé de toute l'intégration depuis un seul panneau web.
Technologies
.NET 8
ASP.NET Core
Blazor Server
C#
Entity Framework Core 8
PostgreSQL (Npgsql)- Hangfire (background jobs)
- FluentMigrator
ASP.NET Core Identity- SignalR
ShopifySharp
Shopify Admin REST/GraphQL API- Microsoft Dynamics NAV OData Web Services
- RestSharp
- Polly (retry)
- SixLabors.ImageSharp
Bootstrap