Studiu de caz
DragZone – integrare Shopify personalizată
DragZone este un important comerciant bulgar de biciclete, biciclete electrice și accesorii pentru ciclism.
Compania operează o rețea de magazine fizice în Bulgaria și România, susținută de un depozit central și de mai multe puncte de ridicare. Catalogul lor cuprinde zeci de mărci (Drag, Shimano, Bell, FSA, Suntour și altele), cu zeci de mii de SKU-uri în categoriile mountain, șosea, urban, biciclete electrice, componente și echipamente. Afacerea deservește atât clienți de retail (B2C), cât și clienți business (B2B), cu niveluri de preț dedicate pentru fiecare țară.
Proiectul
DragZone avea nevoie să unifice magazinul său Shopify (dragzone.bg) cu sistemul ERP Microsoft Dynamics NAV existent, astfel încât magazinul online să reflecte întotdeauna stocul, prețurile și datele reale despre produse - fără ca operatorii să fie nevoiți să dubleze munca între sisteme.
Am construit o aplicație Shopify privată care duce integrarea de la un capăt la altul:
- Sincronizare completă a catalogului de produse - ~50.000 de articole NAV trimise către Shopify de două ori pe zi (02:00 și 14:00, ora Bulgariei). Produsele, variantele, imaginile, categoriile, colecțiile, metacâmpurile și datele estimate de livrare sunt toate sincronizate. Colecțiile Shopify adăugate manual de echipa de merchandising sunt păstrate de la o rulare la alta.
- Sincronizare incrementală a stocurilor - la fiecare 5 minute, doar SKU-urile pe care NAV le raportează ca modificate sunt comparate cu stocul curent din Shopify și trimise dacă diferă. Zero apeluri API inutile.
- Prețuri B2B pe mai multe niveluri - 4 liste de prețuri separate (Retail BG, B2B BG, B2B EN, B2B RO, Retail RO) sincronizate într-o singură sarcină, în loturi de 250 de prețuri per mutație Shopify.
- Procesarea comenzilor - comenzile Shopify (retail și B2B) sunt validate, asociate clienților din NAV și înregistrate în NAV ca comenzi de vânzare. Datele de facturare (cod TVA, denumirea companiei, MOL) sunt preluate din atributele de la finalizarea comenzii; codul de TVA este dedus din țară. Comenzile eșuate sunt reîncercate automat la un interval configurabil, cu protecție prin perioadă de așteptare și număr maxim de reîncercări.
- Îmbogățirea conținutului - o rulare săptămânală Netpeak de linkuri interne scrie datele de recomandare înapoi în metacâmpurile produselor, astfel încât magazinul să poată afișa secțiuni „s-ar putea să vă placă și” bazate pe semnale SEO reale.
- Observabilitate - fiecare acțiune a integrării este înregistrată cu nivel de severitate, cu posibilitate de căutare și filtrare într-un panou de administrare încorporat în Shopify. Sarcinile programate pot fi pornite, oprite și declanșate la cerere.
- Proiectare axată pe siguranță - mecanismele de detectare a înregistrărilor orfane împiedică arhivarea în masă atunci când NAV este temporar inaccesibil; paginarea NAV este validată față de totalurile raportate, cu reîncercare automată; operațiunile în bloc sunt împărțite în porțiuni și folosesc căutarea binară ca soluție de rezervă în caz de eșecuri parțiale.
Întregul sistem rulează nesupravegheat, procesează zeci de mii de înregistrări per ciclu și respectă la fiecare pas limitele de cost și de rată GraphQL ale Shopify.
Tehnologii
.NET 8
C#
ASP.NET Core
React Router (Remix)
Shopify GraphQL Admin API
Shopify Bulk Operations- Microsoft Dynamics NAV (SOAP)
PostgreSQL