Case study
DragZone – integracja Shopify na zamówienie
DragZone to wiodący bułgarski sprzedawca rowerów, rowerów elektrycznych i akcesoriów rowerowych.
Firma prowadzi sieć sklepów stacjonarnych w Bułgarii i Rumunii, opartą na centralnym magazynie i wielu punktach odbioru. Ich katalog obejmuje dziesiątki marek (Drag, Shimano, Bell, FSA, Suntour i inne) z dziesiątkami tysięcy SKU w kategoriach rowerów górskich, szosowych, miejskich, elektrycznych, komponentów i osprzętu. Firma obsługuje zarówno klientów detalicznych (B2C), jak i biznesowych (B2B), z osobnymi poziomami cen dla każdego kraju.
Projekt
DragZone potrzebował połączenia swojego sklepu na Shopify (dragzone.bg) z używanym już systemem ERP Microsoft Dynamics NAV, tak aby sklep internetowy zawsze odzwierciedlał rzeczywisty stan magazynowy, ceny i dane produktowe - bez konieczności dublowania pracy operatorów w dwóch systemach.
Zbudowaliśmy prywatną aplikację Shopify, która odpowiada za całą integrację:
- Pełna synchronizacja katalogu produktów - około 50 000 pozycji z NAV przesyłanych do Shopify dwa razy dziennie (02:00 i 14:00 czasu bułgarskiego). Synchronizowane są produkty, warianty, zdjęcia, kategorie, kolekcje, metapola i przewidywane terminy dostaw. Ręczne kolekcje Shopify dodane przez zespół merchandisingu są zachowywane między kolejnymi uruchomieniami.
- Przyrostowa synchronizacja stanów magazynowych - co 5 minut tylko te SKU, które NAV zgłasza jako zmienione, są porównywane z bieżącym stanem w Shopify i wysyłane, jeśli się różnią. Zero zbędnych wywołań API.
- Wielopoziomowe ceny B2B - 4 osobne cenniki (Retail BG, B2B BG, B2B EN, B2B RO, Retail RO) synchronizowane w jednym zadaniu, w paczkach po 250 cen na jedną mutację Shopify.
- Przetwarzanie zamówień - zamówienia z Shopify (detaliczne i B2B) są walidowane, przypisywane do klientów w NAV i zapisywane w NAV jako zamówienia sprzedaży. Dane do faktury (numer VAT, nazwa firmy, MOL) pochodzą z atrybutów zamówienia; kod VAT jest ustalany na podstawie kraju. Nieudane zamówienia są automatycznie ponawiane w konfigurowalnym interwale, z okresem karencji i limitem prób.
- Wzbogacanie treści - cotygodniowy przebieg linkowania wewnętrznego Netpeak zapisuje dane rekomendacji z powrotem w metapolach produktów, dzięki czemu sklep może wyświetlać sekcje „to może Ci się spodobać” oparte na rzeczywistych sygnałach SEO.
- Obserwowalność - każde działanie integracji jest zapisywane w logach wraz z poziomem ważności, z możliwością wyszukiwania i filtrowania w panelu osadzonym w Shopify. Zadania zaplanowane można uruchamiać, zatrzymywać i wywoływać na żądanie.
- Projekt nastawiony na bezpieczeństwo - zabezpieczenia wykrywające osierocone rekordy zapobiegają masowej archiwizacji, gdy NAV jest chwilowo niedostępny; stronicowanie NAV jest weryfikowane względem zgłaszanych sum, z automatycznym ponowieniem; operacje masowe są dzielone na części i w razie częściowych błędów korzystają z wyszukiwania binarnego jako mechanizmu awaryjnego.
Cały stos działa bez nadzoru, przetwarza dziesiątki tysięcy rekordów na cykl i na każdym kroku respektuje limity kosztu i częstotliwości zapytań GraphQL w Shopify.
Technologie
.NET 8
C#
ASP.NET Core
React Router (Remix)
Shopify GraphQL Admin API
Shopify Bulk Operations- Microsoft Dynamics NAV (SOAP)
PostgreSQL