Проект
DragZone – персонализирана Shopify интеграция
DragZone е водещ български търговец на велосипеди, електрически велосипеди и аксесоари за колоездене.
Компанията поддържа мрежа от физически магазини в България и Румъния, зад която стоят централен склад и няколко пункта за получаване. Каталогът обхваща десетки марки (Drag, Shimano, Bell, FSA, Suntour и други) с десетки хиляди SKU в категориите планински, шосейни и градски велосипеди, електрически велосипеди, компоненти и екипировка. Бизнесът обслужва както крайни клиенти (B2C), така и фирми (B2B), с отделни ценови нива за всяка държава.
Проектът
DragZone имаха нужда да обединят своя Shopify магазин (dragzone.bg) със съществуващия си Microsoft Dynamics NAV ERP, така че онлайн магазинът винаги да отразява реалните наличности, цени и продуктови данни — без операторите да дублират работа между двете системи.
Изградихме частно Shopify приложение, което поема интеграцията от край до край:
- Пълна синхронизация на каталога — около 50 000 артикула от NAV се изпращат към Shopify два пъти дневно (02:00 и 14:00 българско време). Синхронизират се продукти, варианти, изображения, категории, колекции, metafields и очаквани дати на доставка. Ръчните Shopify колекции, добавени от мърчандайзинг екипа, се запазват между изпълненията.
- Инкрементална синхронизация на наличностите — на всеки 5 минути само SKU-тата, които NAV отчита като променени, се сравняват с текущата наличност в Shopify и се изпращат, ако се различават. Нула излишни API заявки.
- Многостепенно B2B ценообразуване — 4 отделни ценови листи (Retail BG, B2B BG, B2B EN, B2B RO, Retail RO), синхронизирани в една задача, на партиди по 250 цени за Shopify мутация.
- Обработка на поръчки — поръчките от Shopify (retail и B2B) се валидират, съпоставят се с клиенти в NAV и се записват в NAV като продажбени поръчки. Данните за фактура (ДДС номер, име на фирма, МОЛ) идват от атрибутите на checkout-а, а ДДС кодът се извежда от държавата. Неуспелите поръчки се повтарят автоматично на конфигуриран интервал, със защита чрез изчакване и максимален брой опити.
- Обогатяване на съдържанието — седмично минаване на Netpeak за вътрешно свързване записва данните с препоръки обратно в продуктовите metafields, за да може магазинът да показва секции „може да ви хареса и“, задвижвани от реални SEO сигнали.
- Наблюдаемост — всяко действие на интеграцията се логва със степен на важност и се търси и филтрира във вграден в Shopify админ. Планираните задачи могат да се стартират, спират и пускат при поискване.
- Дизайн с приоритет на безопасността — защити за откриване на осиротели записи не позволяват масово архивиране, когато NAV е временно недостъпен; страницирането на NAV се проверява спрямо отчетените общи бройки с автоматичен повторен опит; груповите операции се разделят на части и при частичен неуспех минават на двоично търсене.
Целият стек работи без надзор, обработва десетки хиляди записа на цикъл и на всяка стъпка спазва лимитите на Shopify за цена на GraphQL заявките и за честота.
Технологии
.NET 8
C#
ASP.NET Core
React Router (Remix)
Shopify GraphQL Admin API
Shopify Bulk Operations- Microsoft Dynamics NAV (SOAP)
PostgreSQL