Case study
Smart Organic – Shopify-app op maat
Smart Organic is een Bulgaarse producent en distributeur van biologische en gezonde voeding. BettrFood is het onlinecommerceplatform van het bedrijf, waarmee producten via Shopify aan eindklanten worden verkocht, terwijl opslag, logistiek en administratie worden beheerd in Microsoft Dynamics NAV.
Het project
Een middlewareapplicatie die de gegevensuitwisseling automatiseert tussen het ERP-systeem van de klant (Microsoft Dynamics NAV) en hun webwinkel op Shopify. Het doel is om voorraad, prijzen en orders altijd synchroon te houden, zonder enig handmatig werk van het operationele team.
Kernfunctionaliteit
- Productsynchronisatie - artikelen worden uit NAV opgehaald via OData Web Services en de bijbehorende producten en varianten worden in Shopify aangemaakt of bijgewerkt.
- Prijs- en voorraadupdates - een geplande Hangfire-job haalt actuele prijzen en aantallen op uit NAV en duwt ze naar Shopify. De prijsbepaling wordt afgehandeld door een aparte
ShopifyPriceCalculator die rekening houdt met btw, actieprijzen en afrondingsregels. - Ordertransfer - een Shopify-webhook wordt bij elke nieuwe order geactiveerd; die order wordt omgezet naar het NAV-formaat en als Sales Order in de ERP geboekt, met statusopvolging per order in een aparte module Order Transfers.
- Beheerpaneel (Blazor Server) - configuratie van de NAV- en Shopify- inloggegevens, realtime logviewer, handmatig starten van jobs, gebruikers- en rolbeheer via ASP.NET Identity.
- Taakplanning - configureerbare intervallen per job (minuten / uren), automatische generatie van cron-expressies en een ingebouwd Hangfire-dashboard.
- Robuustheid - Polly retry-policy's voor onbetrouwbare NAV/Shopify-aanroepen, een vergrendelingsmechanisme dat voorkomt dat dezelfde job parallel draait, en automatisch opschonen van oude logs.
Architectuur
- Backend: .NET 8 en ASP.NET Core, gelaagde architectuur met aparte services voor NAV, Shopify, configuratie, logging en ordertransfer.
- UI: Blazor Server met SignalR en Bootstrap.
- Database: PostgreSQL via Entity Framework Core, met schema- migraties beheerd door FluentMigrator.
- Jobplanner: Hangfire op PostgreSQL-opslag.
- Externe integraties: ShopifySharp voor de Shopify Admin API, RestSharp voor NAV OData Web Services.
- Authenticatie: ASP.NET Core Identity met rollen en cookie- authenticatie.
Resultaat voor de klant
Volledige automatisering van de stroom magazijn → webwinkel → order → ERP: geen handmatige invoer meer, geen verschillen meer tussen de werkelijke voorraad in het magazijn en wat klanten online zien, en centrale controle over de volledige integratie vanuit één webpaneel.
Technologieën
.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