Caso práctico
Smart Organic – aplicación personalizada de Shopify
Smart Organic es un productor y distribuidor búlgaro de alimentos ecológicos y saludables. BettrFood es la plataforma de comercio online de la empresa, a través de la cual los productos se venden a los clientes finales mediante Shopify, mientras que el almacenamiento, la logística y la contabilidad se gestionan en Microsoft Dynamics NAV.
El proyecto
Una aplicación middleware que automatiza el intercambio de datos entre el sistema ERP del cliente (Microsoft Dynamics NAV) y su tienda online en Shopify. El objetivo es mantener el inventario, los precios y los pedidos sincronizados en todo momento, sin ningún trabajo manual del equipo de operaciones.
Funcionalidades principales
- Sincronización de productos - los artículos se extraen de NAV mediante OData Web Services y los productos y las variantes correspondientes se crean o se actualizan en Shopify.
- Actualización de precios y existencias - un trabajo programado de Hangfire obtiene los precios y las cantidades actuales de NAV y los envía a Shopify. Del cálculo del precio se encarga un
ShopifyPriceCalculator dedicado que tiene en cuenta el IVA, los precios promocionales y las reglas de redondeo. - Transferencia de pedidos - un webhook de Shopify se dispara con cada pedido nuevo, que se transforma al formato de NAV y se registra como Sales Order en el ERP, con seguimiento del estado de cada pedido en un módulo Order Transfers dedicado.
- Panel de administración (Blazor Server) - configuración de las credenciales de NAV y Shopify, visor de registros en tiempo real, ejecución manual de trabajos, gestión de usuarios y roles mediante ASP.NET Identity.
- Programación de tareas - intervalos configurables por trabajo (minutos / horas), generación automática de expresiones cron y un panel de Hangfire integrado.
- Resiliencia - políticas de reintento de Polly para las llamadas inestables a NAV/Shopify, un mecanismo de bloqueo que impide que el mismo trabajo se ejecute en paralelo y la limpieza automática de los registros antiguos.
Arquitectura
- Backend: .NET 8 y ASP.NET Core, arquitectura por capas con servicios separados para NAV, Shopify, configuración, registro y transferencia de pedidos.
- Interfaz: Blazor Server con SignalR y Bootstrap.
- Base de datos: PostgreSQL mediante Entity Framework Core, con las migraciones de esquema gestionadas por FluentMigrator.
- Planificador de trabajos: Hangfire sobre almacenamiento PostgreSQL.
- Integraciones externas: ShopifySharp para la Shopify Admin API, RestSharp para los OData Web Services de NAV.
- Autenticación: ASP.NET Core Identity con roles y autenticación por cookies.
Resultado para el cliente
Automatización completa del flujo almacén → tienda online → pedido → ERP: se acabó la introducción manual de datos, se acabaron las discrepancias entre el stock real del almacén y lo que ven los clientes online, y control centralizado de toda la integración desde un único panel web.
Tecnologías
.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