Studiu de caz
Smart Organic – aplicație Shopify personalizată
Smart Organic este un producător și distribuitor bulgar de alimente bio și sănătoase. BettrFood este platforma de comerț online a companiei, prin care produsele sunt vândute clienților finali prin Shopify, în timp ce depozitarea, logistica și contabilitatea sunt gestionate în Microsoft Dynamics NAV.
Proiectul
O aplicație middleware care automatizează schimbul de date între sistemul ERP al clientului (Microsoft Dynamics NAV) și magazinul lor online de pe Shopify. Scopul este ca stocurile, prețurile și comenzile să fie sincronizate în permanență, fără nicio muncă manuală din partea echipei de operațiuni.
Funcționalități principale
- Sincronizarea produselor - articolele sunt preluate din NAV prin OData Web Services, iar produsele și variantele corespunzătoare sunt create sau actualizate în Shopify.
- Actualizări de prețuri și stocuri - o sarcină Hangfire programată preia prețurile și cantitățile curente din NAV și le trimite în Shopify. Prețurile sunt calculate de un
ShopifyPriceCalculator dedicat, care ține cont de TVA, de prețurile promoționale și de regulile de rotunjire. - Transferul comenzilor - un webhook Shopify se declanșează la fiecare comandă nouă, care este transformată în formatul NAV și înregistrată ca Sales Order în ERP, cu urmărirea stării pentru fiecare comandă într-un modul dedicat Order Transfers.
- Panou de administrare (Blazor Server) - configurarea credențialelor NAV și Shopify, vizualizator de loguri în timp real, declanșarea manuală a sarcinilor, gestionarea utilizatorilor și a rolurilor prin ASP.NET Identity.
- Programarea sarcinilor - intervale configurabile pentru fiecare sarcină (minute / ore), generarea automată a expresiilor cron și un dashboard Hangfire integrat.
- Reziliență - politici de reîncercare Polly pentru apelurile instabile către NAV/Shopify, un mecanism de blocare care împiedică rularea în paralel a aceleiași sarcini și curățarea automată a logurilor vechi.
Arhitectură
- Backend: .NET 8 și ASP.NET Core, arhitectură pe straturi, cu servicii separate pentru NAV, Shopify, configurare, logare și transferul comenzilor.
- UI: Blazor Server cu SignalR și Bootstrap.
- Bază de date: PostgreSQL prin Entity Framework Core, cu migrări de schemă gestionate de FluentMigrator.
- Planificator de sarcini: Hangfire cu stocare pe PostgreSQL.
- Integrări externe: ShopifySharp pentru Shopify Admin API, RestSharp pentru NAV OData Web Services.
- Autentificare: ASP.NET Core Identity cu roluri și autentificare pe bază de cookie.
Rezultatul pentru client
Automatizarea completă a fluxului depozit → magazin online → comandă → ERP: fără introducere manuală de date, fără diferențe între stocul real din depozit și ceea ce văd clienții online, și control centralizat asupra întregii integrări dintr-un singur panou web.
Tehnologii
.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