Caso de estudo
Smart Organic – aplicação Shopify à medida
A Smart Organic é uma produtora e distribuidora búlgara de alimentos biológicos e saudáveis. A BettrFood é a plataforma de comércio online da empresa, através da qual os produtos são vendidos a clientes finais via Shopify, enquanto o armazenamento, a logística e a contabilidade são geridos no Microsoft Dynamics NAV.
O projeto
Uma aplicação de middleware que automatiza a troca de dados entre o sistema ERP do cliente (Microsoft Dynamics NAV) e a sua loja online na Shopify. O objetivo é manter o inventário, os preços e as encomendas sempre sincronizados, sem qualquer trabalho manual por parte da equipa de operações.
Funcionalidades principais
- Sincronização de produtos - os artigos são obtidos do NAV através dos OData Web Services e os produtos e variantes correspondentes são criados ou atualizados na Shopify.
- Atualização de preços e de stock - uma tarefa Hangfire agendada vai buscar ao NAV os preços e as quantidades atuais e envia-os para a Shopify. Os preços são tratados por um
ShopifyPriceCalculator dedicado, que tem em conta o IVA, os preços promocionais e as regras de arredondamento. - Transferência de encomendas - um webhook da Shopify dispara em cada nova encomenda, que é transformada no formato NAV e lançada como Sales Order no ERP, com acompanhamento do estado de cada encomenda num módulo Order Transfers dedicado.
- Painel de administração (Blazor Server) - configuração das credenciais do NAV e da Shopify, visualizador de registos em tempo real, execução manual de tarefas, gestão de utilizadores e funções através do ASP.NET Identity.
- Agendamento de tarefas - intervalos configuráveis por tarefa (minutos / horas), geração automática de expressões cron e um painel Hangfire incorporado.
- Resiliência - políticas de repetição Polly para chamadas instáveis ao NAV/Shopify, um mecanismo de bloqueio que impede a mesma tarefa de correr em paralelo e limpeza automática dos registos antigos.
Arquitetura
- Backend: .NET 8 e ASP.NET Core, arquitetura em camadas com serviços separados para NAV, Shopify, configuração, registo e transferência de encomendas.
- Interface: Blazor Server com SignalR e Bootstrap.
- Base de dados: PostgreSQL através do Entity Framework Core, com migrações de esquema geridas pelo FluentMigrator.
- Agendador de tarefas: Hangfire sobre armazenamento PostgreSQL.
- Integrações externas: ShopifySharp para a Shopify Admin API, RestSharp para os OData Web Services do NAV.
- Autenticação: ASP.NET Core Identity com funções e autenticação por cookie.
Resultado para o cliente
Automatização completa do fluxo armazém → loja online → encomenda → ERP: sem mais introdução manual de dados, sem mais discrepâncias entre o stock real no armazém e o que os clientes veem online, e com controlo centralizado de toda a integração a partir de um único painel web.
Tecnologias
.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