The Context
Integrator operacyjny dla e-commerce: łączy świat ERP (Comarch Optima) z silnikiem sklepu (SOTE), żeby dostępność i ceny były spójne w całym łańcuchu sprzedaży.
The Challenge (Ból)
Sklep działał na silniku SOTE (MySQL), a zaplecze handlowe na Comarch Optima (SQL Server). Bez integracji biznes płaci podwójnie:
- ręczna aktualizacja cen i stanów,
- brak spójnej prawdy o dostępności,
- opóźnienia w publikacji (cost of delay),
- trudność utrzymania feedów (Google Merchant Center),
- chaos integracji z wieloma dostawcami.
The Architecture (Rozwiązanie)
Zbudowałem „kręgosłup integracyjny” jako część systemu z 3 aplikacji (z separacją odpowiedzialności):
hit-request— orkiestrator (cron/manual) uruchamiający joby,mysql-optima-api-client— serwis przy SOTE: operacje na MySQL/Mongo + endpointy,optima-api— API do Optimy (SQL Server) jako ujednolicony dostawca danych.
Ograniczenia, które ukształtowały architekturę:
- Optima działa na osobnej maszynie → integracja przez pośrednie API (
optima-api). - SOTE to system zewnętrzny → serwis działa „obok” i manipuluje MySQL kontrolowanie.
- Wiele źródeł i formatów danych (CSV/XLSX/XML/scraping) + duża liczba dostawców.
Najważniejsze funkcje:
- aktualizacja cen i stanów w MySQL na podstawie Optimy i dodatkowych źródeł,
- integracje z ~21 dostawcami (importy i cenniki),
- generowanie XML (Google Merchant Center) i CSV (cenniki/partnerzy),
- synchronizacja wybranych danych do Mongo (zewnętrzne raportowanie „G4”),
- narzędzia do priorytetów/strony głównej, „old products”, rekomendacje.
The Impact (ROI)
W tym portfolio pokazuję ROI jako proxy metrics (do uzupełnienia liczbami, jeśli je wyciągniemy z raportów/logów):
- mniej pracy ręcznej w utrzymaniu katalogu (ceny/stany/priorytety),
- mniej błędów w dostępności (mniej anulacji/zwrotów wynikających z błędnych stanów),
- szybsza reakcja na zmiany dostawców (czas-to-market),
- stabilniejsze kampanie produktowe (aktualne feedy),
- możliwość obsługi wielu dostawców bez proporcjonalnego wzrostu zespołu.
The Stack
- Node.js + TypeScript
- Express (API)
- MySQL (SOTE)
- MongoDB (dane pomocnicze/raportowe)
- SQL Server (Comarch Optima — przez
optima-api) - Integracje/importy: CSV/XLSX/XML/scraping
- Generowanie feedów: XML/CSV (m.in. Google Merchant Center)
Artefakty
- Dokumentacja źródłowa:
docs/input/melody-bridge.md