Caso de estudo
DragZone – integração Shopify à medida
A DragZone é um retalhista búlgaro de referência em bicicletas, bicicletas elétricas e acessórios de ciclismo.
A empresa opera uma rede de lojas físicas na Bulgária e na Roménia, apoiada por um armazém central e vários pontos de recolha. O seu catálogo abrange dezenas de marcas (Drag, Shimano, Bell, FSA, Suntour, entre outras) com dezenas de milhares de SKU nas categorias de montanha, estrada, urbanas, bicicletas elétricas, componentes e equipamento. O negócio serve clientes de retalho (B2C) e empresariais (B2B), com escalões de preços dedicados por país.
O projeto
A DragZone precisava de unificar a sua loja Shopify (dragzone.bg) com o ERP Microsoft Dynamics NAV que já utilizava, para que a loja online refletisse sempre o stock, os preços e os dados de produto reais - sem que os operadores tivessem de duplicar trabalho entre sistemas.
Construímos uma aplicação Shopify privada que assume a integração de ponta a ponta:
- Sincronização completa do catálogo de produtos - ~50.000 artigos do NAV enviados para o Shopify duas vezes por dia (02:00 e 14:00, hora da Bulgária). Produtos, variantes, imagens, categorias, coleções, metafields e datas previstas de entrega são todos sincronizados. As coleções manuais do Shopify adicionadas pela equipa de merchandising são preservadas entre execuções.
- Sincronização incremental de inventário - a cada 5 minutos, apenas os SKU que o NAV indica como alterados são comparados com o stock atual do Shopify e enviados se forem diferentes. Zero chamadas API desnecessárias.
- Preços B2B em vários escalões - 4 listas de preços distintas (Retail BG, B2B BG, B2B EN, B2B RO, Retail RO) sincronizadas numa única tarefa, em lotes de 250 preços por mutação Shopify.
- Processamento de encomendas - as encomendas do Shopify (retalho e B2B) são validadas, associadas a clientes do NAV e lançadas no NAV como encomendas de venda. Os dados de faturação (número de IVA, nome da empresa, MOL) chegam a partir dos atributos do checkout; o código de IVA é derivado do país. As encomendas falhadas são repetidas automaticamente num intervalo configurável, com período de espera e proteção de número máximo de tentativas.
- Enriquecimento de conteúdo - uma passagem semanal de ligações internas do Netpeak escreve dados de recomendação nos metafields dos produtos, para que a loja possa apresentar secções «também pode gostar» alimentadas por sinais de SEO reais.
- Observabilidade - todas as ações de integração são registadas com um nível de gravidade, pesquisáveis e filtráveis num painel de administração incorporado no Shopify. As tarefas agendadas podem ser iniciadas, paradas e executadas a pedido.
- Conceção orientada à segurança - as proteções de deteção de órfãos impedem o arquivamento em massa quando o NAV está temporariamente inacessível; a paginação do NAV é validada face aos totais reportados, com repetição automática; as operações em massa são divididas em blocos e recorrem a uma pesquisa binária de recurso em caso de falhas parciais.
Toda a stack corre sem supervisão, processa dezenas de milhares de registos por ciclo e respeita os limites de custo e de débito do GraphQL do Shopify em cada passo.
Tecnologias
.NET 8
C#
ASP.NET Core
React Router (Remix)
Shopify GraphQL Admin API
Shopify Bulk Operations- Microsoft Dynamics NAV (SOAP)
PostgreSQL