Case Study
Smart Organic – individuelle Shopify-App
Smart Organic ist ein bulgarischer Hersteller und Distributor von Bio- und gesunden Lebensmitteln. BettrFood ist die Online-Handelsplattform des Unternehmens, über die Produkte via Shopify an Endkunden verkauft werden, während Lagerhaltung, Logistik und Buchhaltung in Microsoft Dynamics NAV verwaltet werden.
Das Projekt
Eine Middleware-Anwendung, die den Datenaustausch zwischen dem ERP-System des Kunden (Microsoft Dynamics NAV) und seinem Onlineshop auf Shopify automatisiert. Ziel ist es, Bestand, Preise und Bestellungen jederzeit synchron zu halten, ohne jede manuelle Arbeit des Betriebsteams.
Kernfunktionen
- Produktsynchronisation – Artikel werden über OData Web Services aus NAV geholt, und die entsprechenden Produkte und Varianten werden in Shopify angelegt oder aktualisiert.
- Preis- und Bestandsaktualisierungen – ein geplanter Hangfire-Job holt aktuelle Preise und Mengen aus NAV und überträgt sie nach Shopify. Die Preisbildung übernimmt ein eigener
ShopifyPriceCalculator, der Mehrwertsteuer, Aktionspreise und Rundungsregeln berücksichtigt. - Bestellübertragung – ein Shopify-Webhook wird bei jeder neuen Bestellung ausgelöst; diese wird in das NAV-Format überführt und als Sales Order im ERP gebucht, mit Statusverfolgung je Bestellung in einem eigenen Modul Order Transfers.
- Adminbereich (Blazor Server) – Konfiguration der NAV- und Shopify- Zugangsdaten, Echtzeit-Log-Viewer, manuelles Auslösen von Jobs, Benutzer- und Rollenverwaltung über ASP.NET Identity.
- Aufgabenplanung – konfigurierbare Intervalle je Job (Minuten / Stunden), automatische Erzeugung von Cron-Ausdrücken und ein integriertes Hangfire-Dashboard.
- Ausfallsicherheit – Polly-Retry-Policies für unzuverlässige NAV-/Shopify-Aufrufe, ein Sperrmechanismus, der die parallele Ausführung desselben Jobs verhindert, und automatisches Aufräumen alter Logs.
Architektur
- Backend: .NET 8 und ASP.NET Core, geschichtete Architektur mit getrennten Services für NAV, Shopify, Konfiguration, Logging und Bestellübertragung.
- UI: Blazor Server mit SignalR und Bootstrap.
- Datenbank: PostgreSQL über Entity Framework Core, mit Schema- Migrationen, die über FluentMigrator verwaltet werden.
- Job-Scheduler: Hangfire auf PostgreSQL-Storage.
- Externe Integrationen: ShopifySharp für die Shopify Admin API, RestSharp für die NAV OData Web Services.
- Authentifizierung: ASP.NET Core Identity mit Rollen und Cookie- Authentifizierung.
Ergebnis für den Kunden
Vollständige Automatisierung des Ablaufs Lager → Onlineshop → Bestellung → ERP: keine manuelle Dateneingabe mehr, keine Abweichungen mehr zwischen dem tatsächlichen Bestand im Lager und dem, was Kunden online sehen, und zentrale Kontrolle über die gesamte Integration aus einem einzigen Webpanel.
Technologien
.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