Automatyczna synchronizacja stanów magazynowych z Comarch Optima
Rozbieżność stanów magazynowych między Comarch ERP Optima a sklepem internetowym to jeden z najczęstszych problemów firm sprzedających online i offline jednocześnie. Klient zamawia produkt, którego fizycznie nie ma na magazynie. Albo odwrotnie — towar leży na półce, ale platforma e-commerce pokazuje „brak”. VerSync od WebArm rozwiązuje ten problem automatyczną synchronizacją danych w konfigurowalnych interwałach — domyślnie co 30 sekund.

Problem: dwa źródła prawdy
Comarch ERP Optima to system ERP — tu odbywa się magazyn, fakturowanie, sprzedaż stacjonarna. Sklep internetowy to osobny system e-commerce ze swoją bazą produktów i stanów.
Bez synchronizacji stanów magazynowych masz dwa źródła prawdy, które szybko się rozjeżdżają (pełny obraz tego, co trzeba zsynchronizować między sklepem a Optimą, opisujemy w przewodniku po integracji):
- Sprzedaż w sklepie stacjonarnym zmniejsza stan w Comarch ERP Optima, ale sklep internetowy tego nie widzi
- Przyjęcie towaru na magazyn (PZ) zwiększa stan w Optimie, ale platforma e-commerce dalej pokazuje „0”
- Zwrot towaru, korekta, inwentaryzacja — każda operacja na dokumentach magazynowych w Optimie powinna natychmiast aktualizować sklep
Jak działa synchronizacja przez VerSync
VerSync — silnik synchronizacji danych od WebArm — monitoruje zmiany stanów magazynowych w Comarch ERP Optima i automatycznie przekazuje je do docelowego systemu (sklep e-commerce, marketplace, ERP). VerSync korzysta z Optima API (WebAPI do Comarch ERP Optima) do pobierania aktualnych danych magazynowych, co zapewnia automatyzację procesów bez bezpośredniego dostępu do bazy SQL.
Architektura
Comarch Optima (baza SQL Server)
↓ [VerSync monitoruje zmiany]
VerSync Engine
↓ [mapowanie pól + walidacja]
REST API sklepu
↓
Sklep internetowy (aktualizacja stanów)
VerSync nie odpytuje całej tabeli stanów co 5 minut. Wykrywa tylko te pozycje, które się zmieniły od ostatniego cyklu. To oznacza minimalne obciążenie bazy Optimy nawet przy tysiącach SKU.
Konfiguracja pipeline
Definiujesz synchronizację w pliku YAML:
pipeline:
name: stany-magazynowe-sklep
source:
type: optima
module: stany-magazynowe
magazyn: MAG_GŁÓWNY
target:
type: woocommerce
url: https://twoj-sklep.pl
auth: wc_api_key
mode: watch
interval: 5m
mapping:
- from: kod
to: sku
- from: stanMagazynowy
to: stock_quantity
- from: rezerwacja
to: meta:reserved_qty
filters:
- field: stanMagazynowy
changed: true
retry:
maxAttempts: 3
backoff: exponential
Co się dzieje w każdym cyklu
- VerSync sprawdza zmiany stanów w Optimie (od ostatniego cyklu)
- Filtruje pozycje, które faktycznie się zmieniły
- Mapuje pola na format docelowy (Optima → WooCommerce)
- Wysyła aktualizacje do sklepu przez REST API
- Loguje wynik (sukces/błąd) z pełnym kontekstem
- W razie błędu — automatyczny retry z exponential backoff
Tryby synchronizacji
VerSync obsługuje 3 tryby:
| Tryb | Zastosowanie | Opis |
|---|---|---|
| Watch | Ciągła synchronizacja | Monitoruje zmiany co N minut i synchronizuje automatycznie |
| Init | Pierwsza synchronizacja | Jednorazowy pełny eksport wszystkich stanów do sklepu |
| Rollback | Cofnięcie błędu | Przywraca stany sprzed konkretnej operacji synchronizacji |
Typowy setup: najpierw Init (pełne wyrównanie stanów), potem Watch (ciągłe monitorowanie zmian).
Monitoring i alerty
W planie Full dostępny jest dashboard Grafana z metrykami synchronizacji:
- Liczba zsynchronizowanych pozycji per cykl
- Czas trwania każdego cyklu
- Błędy z kontekstem (jaka pozycja, jaki błąd, kiedy)
- Historia zmian dla konkretnego SKU
Alerty konfigurujesz na poziomie pipeline — email, Slack. Jeśli synchronizacja nie wykona się w 3 kolejnych cyklach, dostajesz powiadomienie.

Częste scenariusze
Sprzedaż wielokanałowa (sklep + Allegro + stacjonarnie)
Jedno źródło prawdy (Comarch ERP Optima) → wiele celów. Sprzedaż wielokanałowa wymaga, żeby każda platforma e-commerce widziała aktualne stany. Definiujesz osobne pipeline’y dla każdego kanału:
pipelines:
- name: stany-woocommerce
target:
type: woocommerce
interval: 5m
- name: stany-allegro
target:
type: allegro
interval: 10m
Wiele magazynów
Optima obsługuje wiele magazynów. VerSync pozwala synchronizować stany z konkretnego magazynu lub sumę ze wszystkich:
source:
type: optima
module: stany-magazynowe
magazyn: all
aggregation: sum
Rezerwacje
Klient złożył zamówienie, ale jeszcze nie zapłacił. Towar jest zarezerwowany w Optimie, ale fizycznie na magazynie. VerSync może synchronizować stan dostępny (po odjęciu rezerwacji):
mapping:
- from: stanDostepny
to: stock_quantity
Podsumowanie
Automatyczna synchronizacja stanów magazynowych między Comarch ERP Optima a platformami e-commerce to podstawa sprzedaży wielokanałowej. VerSync od WebArm eliminuje ręczne aktualizacje, rozbieżności danych i sprzedaż towaru, którego nie ma na magazynie.
Konfiguracja w YAML. Monitoring w Grafanie. Rollback w razie błędu. Bez pisania kodu — automatyzacja procesów magazynowych od pierwszego dnia. Jak to wygląda w działaniu na produkcji — opisujemy w case study firmy Kapelanczyk.
Chcesz zsynchronizować stany magazynowe z Optimy ze sklepem? Sprawdź odpowiedzi na najczęstsze pytania lub skontaktuj się z nami.
Robert Mońka
Założyciel WebArm. 28 lat w IT, właściciel firmy produkcyjno-handlowej. Buduje narzędzia integracyjne do Comarch ERP Optima i używa ich we własnych firmach.
LinkedIn →Masz pytania o integrację z Comarch Optima?