VerSyncSynchronizacjaComarch Optima

Automatyczna synchronizacja stanów magazynowych z Comarch Optima

Robert Mońka ·

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.

Cyfrowy magazyn z synchronizacją stanów w czasie rzeczywistym

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

  1. VerSync sprawdza zmiany stanów w Optimie (od ostatniego cyklu)
  2. Filtruje pozycje, które faktycznie się zmieniły
  3. Mapuje pola na format docelowy (Optima → WooCommerce)
  4. Wysyła aktualizacje do sklepu przez REST API
  5. Loguje wynik (sukces/błąd) z pełnym kontekstem
  6. W razie błędu — automatyczny retry z exponential backoff

Tryby synchronizacji

VerSync obsługuje 3 tryby:

TrybZastosowanieOpis
WatchCiągła synchronizacjaMonitoruje zmiany co N minut i synchronizuje automatycznie
InitPierwsza synchronizacjaJednorazowy pełny eksport wszystkich stanów do sklepu
RollbackCofnięcie błęduPrzywraca 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.

Synchronizacja wielokanałowa — jedno źródło prawdy, wiele platform

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.


RM

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?