Case study
Smart Organic – app Shopify su misura
Smart Organic è un produttore e distributore bulgaro di alimenti biologici e salutari. BettrFood è la piattaforma di commercio online dell'azienda, attraverso la quale i prodotti sono venduti ai clienti finali tramite Shopify, mentre magazzino, logistica e contabilità sono gestiti in Microsoft Dynamics NAV.
Il progetto
Un'applicazione middleware che automatizza lo scambio di dati tra il sistema ERP del cliente (Microsoft Dynamics NAV) e il suo negozio online su Shopify. L'obiettivo è mantenere giacenze, prezzi e ordini sempre sincronizzati, senza alcun lavoro manuale da parte del team operativo.
Funzionalità principali
- Sincronizzazione dei prodotti - gli articoli vengono estratti da NAV tramite OData Web Services e i prodotti e le varianti corrispondenti vengono creati o aggiornati in Shopify.
- Aggiornamento di prezzi e giacenze - un job Hangfire pianificato recupera i prezzi e le quantità correnti da NAV e li invia a Shopify. Il calcolo dei prezzi è affidato a un
ShopifyPriceCalculator dedicato che tiene conto di IVA, prezzi promozionali e regole di arrotondamento. - Trasferimento degli ordini - un webhook Shopify si attiva a ogni nuovo ordine, che viene trasformato nel formato NAV e registrato come Sales Order nell'ERP, con tracciamento dello stato per singolo ordine in un modulo Order Transfers dedicato.
- Pannello di amministrazione (Blazor Server) - configurazione delle credenziali NAV e Shopify, visualizzatore dei log in tempo reale, avvio manuale dei job, gestione di utenti e ruoli tramite ASP.NET Identity.
- Pianificazione delle attività - intervalli configurabili per ciascun job (minuti / ore), generazione automatica delle espressioni cron e dashboard Hangfire integrata.
- Resilienza - policy di retry Polly per le chiamate instabili a NAV/Shopify, un meccanismo di blocco che impedisce l'esecuzione in parallelo dello stesso job e la pulizia automatica dei log vecchi.
Architettura
- Backend: .NET 8 e ASP.NET Core, architettura a livelli con servizi separati per NAV, Shopify, configurazione, logging e trasferimento degli ordini.
- UI: Blazor Server con SignalR e Bootstrap.
- Database: PostgreSQL tramite Entity Framework Core, con migrazioni dello schema gestite da FluentMigrator.
- Pianificatore dei job: Hangfire su storage PostgreSQL.
- Integrazioni esterne: ShopifySharp per l'API Admin di Shopify, RestSharp per gli OData Web Services di NAV.
- Autenticazione: ASP.NET Core Identity con ruoli e autenticazione tramite cookie.
Risultato per il cliente
Automazione completa del flusso magazzino → negozio online → ordine → ERP: niente più inserimento manuale dei dati, niente più discrepanze tra la giacenza reale in magazzino e quello che i clienti vedono online, e controllo centralizzato dell'intera integrazione da un unico pannello web.
Tecnologie
.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