Case study
DragZone – Shopify-integratie op maat
DragZone is een toonaangevende Bulgaarse retailer van fietsen, e-bikes en fietsaccessoires.
Het bedrijf exploiteert een netwerk van fysieke winkels in Bulgarije en Roemenië, ondersteund door een centraal magazijn en meerdere afhaalpunten. Hun catalogus omvat tientallen merken (Drag, Shimano, Bell, FSA, Suntour en meer) met tienduizenden SKU's in de categorieën mountainbikes, racefietsen, stadsfietsen, e-bikes, componenten en uitrusting. Het bedrijf bedient zowel particuliere (B2C) als zakelijke (B2B) klanten, met eigen prijsniveaus per land.
Het project
DragZone wilde zijn Shopify-storefront (dragzone.bg) samenbrengen met het bestaande Microsoft Dynamics NAV ERP, zodat de webshop altijd de werkelijke voorraad, prijzen en productgegevens weergeeft - zonder dat medewerkers werk tussen de systemen moeten dupliceren.
We bouwden een private Shopify-app die de volledige integratie van begin tot eind beheert:
- Volledige synchronisatie van de productcatalogus - ~50.000 NAV-artikelen worden twee keer per dag naar Shopify gestuurd (02:00 en 14:00 Bulgaarse tijd). Producten, varianten, afbeeldingen, categorieën, collecties, metafields en verwachte leverdata worden allemaal gesynchroniseerd. Handmatige Shopify-collecties die het merchandisingteam heeft toegevoegd, blijven bij elke run behouden.
- Incrementele voorraadsynchronisatie - elke 5 minuten worden alleen de SKU's die NAV als gewijzigd meldt, vergeleken met de actuele voorraad in Shopify en bij een verschil doorgestuurd. Nul overbodige API-calls.
- B2B-prijzen op meerdere niveaus - 4 afzonderlijke prijslijsten (Retail BG, B2B BG, B2B EN, B2B RO, Retail RO) worden in één job gesynchroniseerd, in batches van 250 prijzen per Shopify-mutatie.
- Orderverwerking - Shopify-orders (retail en B2B) worden gevalideerd, gekoppeld aan NAV-klanten en als verkooporders in NAV geboekt. Factuurgegevens (btw-nummer, bedrijfsnaam, MOL) komen mee uit de checkout-attributen; de btw-code wordt afgeleid uit het land. Mislukte orders worden automatisch opnieuw geprobeerd op een instelbaar interval, met cooldown en een maximum aantal pogingen.
- Contentverrijking - een wekelijkse Netpeak-ronde voor interne links schrijft aanbevelingsdata terug naar product-metafields, zodat de storefront secties met “misschien vind je dit ook leuk” kan tonen die op echte SEO-signalen zijn gebaseerd.
- Observability - elke integratieactie wordt gelogd met een severity-niveau, doorzoekbaar en filterbaar in een in Shopify ingebedde admin. Geplande taken kunnen worden gestart, gestopt en op verzoek uitgevoerd.
- Veiligheid voorop - orphan-detectie voorkomt massaal archiveren wanneer NAV tijdelijk onbereikbaar is; de NAV-paginering wordt gecontroleerd tegen de gerapporteerde totalen met automatische herhaling; bulkbewerkingen worden in stukken opgedeeld en vallen bij gedeeltelijke fouten terug op binair zoeken.
De hele stack draait onbeheerd, verwerkt tienduizenden records per cyclus en respecteert bij elke stap de GraphQL-kosten- en rate limits van Shopify.
Technologieën
.NET 8
C#
ASP.NET Core
React Router (Remix)
Shopify GraphQL Admin API
Shopify Bulk Operations- Microsoft Dynamics NAV (SOAP)
PostgreSQL