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 między systemem ERP a sklepem w konfigurowalnych interwałach — domyślnie co 30 sekund. Harmonogramy synchronizacji pozwalają określić, z jaką częstotliwością proces ma się odbywać, a cała konfiguracja trzymana jest w pliku YAML — bez klikania w ustawieniach programu.
Najważniejsze informacje
- Synchronizacja stanów magazynowych Comarch Optima zapobiega sprzedaży towaru, którego sklep nie powinien już oferować.
- VerSync od WebArm działa jako automat synchronizacji: wykrywa zmiany, mapuje pola, wysyła aktualizacje i zapisuje status każdej operacji.
- Optima API dostarcza dane z Optimy przez REST API, więc sklep, marketplace lub WMS nie muszą znać COM objects ani struktury bazy SQL.
- Najbezpieczniejszy start to Init dla wyrównania danych, potem Watch dla zmian bieżących i rollback gotowy na wypadek błędnej partii.
Synchronizacja danych ERP: wstęp do integracji
Synchronizacja danych w systemie ERP, takim jak Comarch ERP Optima, to proces, który umożliwia płynną wymianę informacji między różnymi aplikacjami wykorzystywanymi w firmie. Dane wprowadzane w jednym miejscu — w systemie ERP — są automatycznie przekazywane do powiązanych systemów (sklep internetowy, marketplace, Comarch e-Sklep), eliminując konieczność ręcznego przepisywania informacji między aplikacjami.
W Comarch ERP Optima synchronizacja może być wspierana przez serwis operacji automatycznych działający w tle systemu operacyjnego — to narzędzie wbudowane w program, które realizuje zaplanowane zadania zgodnie z harmonogramem. VerSync dokłada do tego warstwę integracyjną: monitoruje zmiany dokumentów, towarów, stanów i kontrahentów, mapuje pola między systemami i przekazuje aktualne informacje do sklepu. Efekt: spójność danych w całym systemie ERP i w każdym powiązanym sklepie.
Stany magazynowe w Comarch ERP Optima: co trzeba zsynchronizować
Najważniejszy obszar to stany magazynowe, bo sklep podejmuje decyzję sprzedażową na podstawie liczby widocznej przy produkcie. W praktyce synchronizacja stanów magazynowych obejmuje nie tylko prostą ilość “na stanie”, ale też rezerwacje, stan dostępny, magazyn źródłowy, jednostkę miary, stawki VAT i informację, czy dany towar nadal powinien być publikowany w sklepie internetowym.
W systemie ERP Optima stan magazynowy produktu może zmienić sprzedaż, korekta dokumentu, przyjęcie dostawy, przesunięcie między magazynami, kompletacja albo anulowanie rezerwacji. Dlatego automatyczna synchronizacja powinna czytać zdarzenia z programu Comarch ERP Optima i przekazywać do sklepu tylko różnice: konkretny SKU, ilość dostępna, magazyn, status oraz czas ostatniej synchronizacji. Dzięki temu sklepem internetowym można zarządzać z jednego źródła prawdy, bez pełnego eksportu całej kartoteki przy każdej zmianie.
Jeżeli firma używa Comarch e-Sklep, WooCommerce, PrestaShop, Shopify albo panelu B2B, zasada jest ta sama: stany magazynowe po stronie sklepu muszą odzwierciedlać dane z Optimy. Comarch ERP XL ma inną architekturę i wymaga osobnego projektu integracji; ten przewodnik dotyczy Comarch ERP Optima oraz wdrożeń, w których VerSync i Optima API pełnią rolę warstwy synchronizacji.
Comarch e-Sklep, WooCommerce i PrestaShop: jak różni się synchronizacja
Synchronizacja stanów sklepu internetowego z Comarch Optima działa podobnie niezależnie od platformy: Optima pozostaje źródłem prawdy, a sklep dostaje aktualny stan, cenę i status produktu. Różni się adapter docelowy. Comarch e-Sklep korzysta z własnych mechanizmów ekosystemu Comarch, a WooCommerce, PrestaShop, Shopify, Shoper czy BaseLinker wymagają osobnego połączenia przez API lub bazę danych.
WebArm rozwiązuje ten problem przez VerSync i Optima API. Optima API pobiera dane z Comarch ERP Optima, a VerSync mapuje je do modelu konkretnej platformy e-commerce. Dzięki temu ten sam pipeline może obsłużyć stany magazynowe w sklepie, statusy zamówień, kontrahentów i ceny, bez utrzymywania osobnego kodu COM dla każdego kanału sprzedaży.
| Platforma | Typowy sposób synchronizacji | Na co uważać |
|---|---|---|
| Comarch e-Sklep | Mechanizmy ekosystemu Comarch i konfiguracja zgodna z Optimą. | Zakres zależy od wersji i ustawień modułów Comarch. |
| WooCommerce | REST API sklepu, SKU jako klucz dopasowania. | Rezerwacje, warianty produktów i podatki wymagają jasnych reguł mapowania. |
| PrestaShop | API lub bezpośredni adapter do bazy. | Warianty, magazyny i ceny B2B często wymagają transformacji pól. |
| Shoper / BaseLinker | API pośrednika lub marketplace. | Statusy zamówień i numery dokumentów muszą wracać do kanału sprzedaży. |
| Panel B2B | REST API lub MariaDB/MySQL. | Indywidualne cenniki i atrybuty zależne od kontrahenta są najczęstszym ryzykiem. |
Problem: dwa źródła prawdy
Comarch ERP Optima to system ERP — tu odbywa się magazyn, fakturowanie, sprzedaż stacjonarna, obsługa dokumentów, kontrahentów i płatności. W programie trzymane są dokumenty sprzedażowe, dokumenty magazynowe, towary, kontrahenci, cenniki, rozliczenia. Sklep internetowy to osobny system e-commerce ze swoją bazą produktów, kategorii, stanów i zamówień.
Dane w systemie ERP i dane w sklepie muszą być ze sobą zgodne — w przeciwnym razie klienci dostają błędne informacje, a firma podejmuje decyzje na bazie rozbieżnych liczb. Automatyczną synchronizację uruchamia się właśnie po to, żeby dane między systemami przepływały bez udziału człowieka.
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, a platforma e-commerce dalej pokazuje „0”
- Zwrot towaru, korekta, inwentaryzacja — każda operacja na dokumentach magazynowych w Optimie powinna natychmiast aktualizować sklep
- Zmiana ceny, dodanie nowego kontrahenta, rozliczenie płatności — dane rozsiane po dwóch systemach prowadzą do duplikatów i niespójności
Brak synchronizacji prowadzi w dłuższym terminie do duplikatów kontrahentów, rozbieżności w kategoriach produktów i błędnych wartości stanów. Dobre rozwiązanie integracyjne musi więc nie tylko przekazywać zmiany, ale też logować każdą operację — status, komunikat, czas. Historia zdarzeń w logach pozwala zweryfikować poprawność procesu i szybko znaleźć źródło błędu, jeśli coś pójdzie nie tak.
Zalety automatycznej synchronizacji
Automatyczna synchronizacja danych w Comarch ERP Optima przynosi firmom kilka wymiernych korzyści:
- Eliminacja błędów z ręcznego wprowadzania — dane w systemie ERP i w sklepie są zawsze zgodne, bez ryzyka literówki czy pominiętego towaru
- Aktualne informacje w czasie rzeczywistym — sklep pokazuje dokładnie to, co jest na magazynie w Optimie, zamówienia nie trafiają na towar, którego nie ma
- Szybsza obsługa klientów — zmiana stanu, ceny czy statusu zamówienia propaguje się automatycznie do wszystkich aplikacji
- Optymalizacja procesów magazynowych — zero czasu zmarnowanego na ręczne przepisywanie dokumentów między systemami
- Przewidywalność produkcji i sprzedaży — decyzje biznesowe opierasz na realnych liczbach, nie na szacunkach z dwóch miejsc
- Historia każdej zmiany — pełne logi dokumentów, stanów i płatności, zapisywane ze statusem i komunikatem, ułatwiają audyt i debug
To wszystko przekłada się na czas i zasoby, które można przeznaczyć na rozwój firmy zamiast na nadganianie rozbieżności między Optimą a sklepem.
Jak działa synchronizacja przez VerSync
VerSync — silnik synchronizacji danych od WebArm — monitoruje zmiany stanów magazynowych, dokumentów, towarów i kontrahentów w Comarch ERP Optima i automatycznie przekazuje je do docelowego systemu (sklep e-commerce, marketplace, ERP, Comarch e-Sklep). VerSync pełni rolę automatu synchronizacji, który można dopasować do różnych scenariuszy biznesowych — każdy parametr synchronizacji można określić w pliku YAML, a użytkownik ma możliwość dostosowania harmonogramów do własnych potrzeb.
VerSync korzysta z Optima API (Web API do Comarch ERP Optima) do pobierania aktualnych danych, co zapewnia automatyzację procesów bez bezpośredniego dostępu do bazy SQL. Więcej o możliwościach samego REST API do Comarch ERP Optima opisujemy osobno. Efekty synchronizacji są widoczne w czasie rzeczywistym zarówno w systemie ERP, jak i w sklepie internetowym, co pozwala użytkownikowi na bieżąco monitorować status operacji.
Architektura
Comarch Optima (baza SQL Server)
↓ [VerSync monitoruje zmiany w czasie rzeczywistym]
VerSync Engine
↓ [mapowanie pól + walidacja]
REST API sklepu
↓
Sklep internetowy (aktualizacja stanów)
VerSync od WebArm 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, dokumentów i kontrahentów. Wszystkie operacje synchronizacji są zapisywane w logach wraz ze statusem i komunikatem, co umożliwia późniejszą analizę, audyt oraz obsługę ewentualnych błędów.
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
Każdy parametr synchronizacji można tu zdefiniować indywidualnie — harmonogramy, częstotliwość, mapowanie pól, reguły retry. Dzięki temu pipeline można dopasować do konkretnego rozwiązania: inny interwał dla stanów magazynowych, inny dla cen, inny dla kontrahentów. Konfiguracja jako plik YAML oznacza, że każda zmiana jest wersjonowana, a nie ukryta w zakładce ustawień programu.
Co się dzieje w każdym cyklu
- VerSync sprawdza zmiany stanów, dokumentów i towarów w Optimie (od ostatniego cyklu), zgodnie z ustalonym harmonogramem
- Filtruje pozycje, które faktycznie się zmieniły, dbając o poprawność i integralność danych
- Mapuje pola na format docelowy (Optima → WooCommerce, Shopify, Comarch e-Sklep lub inna aplikacja)
- Wysyła aktualizacje do sklepu przez REST API — efekty są widoczne w czasie rzeczywistym po stronie e-commerce
- Loguje wynik każdej operacji — status, komunikat, czas trwania, pełny kontekst (jaki rekord, jaki błąd, o której)
- W razie błędu uruchamia automatyczny retry z exponential backoff, a w razie uporczywego błędu — wysyła alert
Tryby synchronizacji
VerSync od WebArm obsługuje 3 tryby:
| Tryb | Zastosowanie | Opis |
|---|---|---|
| Watch | Ciągła synchronizacja | Monitoruje zmiany co N minut i synchronizuje automatycznie według harmonogramu. Każda operacja zapisywana w logach ze statusem i komunikatem |
| Init | Pierwsza synchronizacja | Jednorazowy pełny eksport wszystkich stanów, towarów i dokumentów do sklepu — wyrównanie punktu startowego |
| Rollback | Cofnięcie błędu | Przywraca stany sprzed konkretnej operacji synchronizacji na podstawie historii w logach |
| Etap wdrożenia | Cel | Kryterium przejścia dalej |
|---|---|---|
| Dry-run | sprawdzić mapowanie bez zapisu | raport pokazuje oczekiwane zmiany |
| Init | wyrównać produkty i stany startowe | liczba rozbieżności po synchronizacji jest akceptowalna |
| Watch | aktualizować zmiany bieżące | cykle kończą się bez błędów przez ustalony okres |
| Rollback test | potwierdzić odwracalność | pojedyncza partia może zostać cofnięta bez ręcznej pracy |
Typowy setup: najpierw Init (pełne wyrównanie stanów i towarów), potem Watch (ciągłe monitorowanie zmian). Rollback trzymasz w zanadrzu na wypadek, gdyby jakaś partia danych trafiła do sklepu błędnie — zamiast ręcznie odkręcać, cofasz jeden cykl.
Monitoring i alerty
W planie Full dostępny jest dashboard Grafana z metrykami synchronizacji. Wszystkie operacje są zapisywane w logach wraz ze statusem i komunikatem, co umożliwia trwałe przechowywanie historii oraz późniejszą analizę. Użytkownik ma dostęp do aplikacji monitorujących proces, a obsługa błędów i weryfikacja poprawności danych są kluczowe dla sprawnego działania synchronizacji. Dashboard prezentuje m.in.:
- Liczbę zsynchronizowanych pozycji per cykl (stany, dokumenty, towary, kontrahenci)
- Czas trwania każdego cyklu synchronizacji
- Błędy z kontekstem — jaka pozycja, jaki komunikat, jaki status, kiedy
- Historię zmian dla konkretnego SKU, dokumentu lub kontrahenta
Alerty konfigurujesz na poziomie pipeline — email, Slack. Jeśli synchronizacja nie wykona się w 3 kolejnych cyklach, dostajesz powiadomienie. Odpowiedzi na typowe problemy i scenariusze znajdziesz też w naszym FAQ.
Wyzwania związane z synchronizacją
Wdrożenie automatycznej synchronizacji danych w systemie ERP wiąże się z kilkoma typowymi wyzwaniami, na które warto być przygotowanym:
- Mapowanie pól między systemami — pola w Optimie nie zawsze mają bezpośredni odpowiednik w sklepie. Konfiguracja mapowania to najważniejszy parametr pipeline’a
- Niezgodność formatów — ceny z przecinkiem vs kropką, kody SKU z polskimi znakami, daty w różnych strefach. Trzeba to rozwiązać na etapie walidacji
- Licencja na użytkownika integracyjnego — Comarch wymaga, żeby integracja pracowała na dedykowanym użytkowniku. Ułatwia to audyt i debug zmian w rekordach
- Obsługa błędów — co się dzieje, gdy sklep jest chwilowo niedostępny? Dobry pipeline ma retry, kolejkę i alerty
- Weryfikacja poprawności — na każdym etapie wdrożenia warto przeprowadzać testy: pojedynczy rekord, paczka 10 rekordów, pełny import. Dopiero po pozytywnych testach włączasz tryb Watch na produkcji
Stałe monitorowanie procesu i szybka reakcja na komunikaty błędów pozwalają zminimalizować ryzyko przestojów. Dlatego logi i dashboard to nie ozdoba — to pierwsze miejsce, do którego zaglądasz przy każdej nieprawidłowości.
Najlepsze praktyki
Żeby w pełni wykorzystać potencjał automatycznej synchronizacji danych w Comarch ERP Optima, warto trzymać się kilku sprawdzonych zasad:
- Regularnie przeglądaj logi — status i komunikat każdej operacji to pierwsze źródło wiedzy o tym, czy proces działa poprawnie
- Dostosuj konfigurację do specyfiki firmy — jeden harmonogram nie pasuje do wszystkich. Stany magazynowe co 5 minut, ceny co godzinę, kontrahenci raz dziennie
- Używaj harmonogramów zamiast ciągłych pętli — regularność i przewidywalność procesu są ważniejsze niż pozorna „natychmiastowość” co sekundę
- Aktualizuj Comarch ERP Optima — serwis operacji automatycznych i API zmieniają się między wersjami programu. Zgodność wersji = mniej problemów
- Przeszkol użytkownika integracyjnego — osoba odpowiedzialna za synchronizację powinna rozumieć, co dzieje się w każdym cyklu i gdzie szukać logów
- Zacznij od jednego pipeline’a — nie włączaj wszystkiego naraz. Najpierw stany magazynowe, potem dokumenty, potem kontrahenci. Każdy moduł oddzielnie przetestowany
Dodatkowo warto mieć dedykowanego użytkownika integracyjnego w systemie Comarch ERP Optima — ułatwia to audyt zmian w rekordach i oddziela ruch „ludzki” od „automatycznego” w logach.
FAQ — najczęściej zadawane pytania
Czy synchronizacja danych w Comarch ERP Optima wymaga pisania kodu? Nie. Konfiguracja pipeline’a odbywa się w pliku YAML — określasz źródło, cel, mapowanie pól i harmonogram. Proces synchronizacji jest obsługiwany przez VerSync i nie wymaga programowania. Każdy parametr synchronizacji można zmienić w zakładce pipeline bez przestoju.
Co z wydajnością przy tysiącach rekordów? VerSync synchronizuje tylko to, co się zmieniło od ostatniego cyklu. Dzięki temu proces działa szybko nawet przy dużej bazie dokumentów, towarów i kontrahentów. Baza SQL Optimy nie jest zalewana pełnymi zapytaniami, a sklep dostaje tylko te rekordy, które faktycznie wymagają aktualizacji.
Jak często dane są aktualizowane? Harmonogramy synchronizacji pozwalają określić, z jaką częstotliwością proces ma się wykonywać — domyślnie co 30 sekund dla stanów magazynowych, ale możesz ustawić dowolny interwał per pipeline (1 minuta, 5 minut, godzina). Każdy moduł — stany, dokumenty, towary, kontrahenci — może mieć własny harmonogram.
Co się dzieje, gdy sklep jest niedostępny? VerSync retry’uje operację z exponential backoff, a po 3 nieudanych cyklach wysyła alert. Status i komunikat każdej operacji trafiają do logów, więc użytkownik zawsze wie, co się wydarzyło.
Czy VerSync od WebArm działa z Comarch e-Sklep? Tak. Jeden pipeline może synchronizować dane do Comarch e-Sklep, inny do WooCommerce, trzeci do Allegro — wszystko z tego samego źródła w Comarch ERP Optima.
Ile licencji Optimy potrzebuję? Integracja powinna mieć dedykowanego użytkownika integracyjnego w Comarch ERP Optima. To jedna licencja — pozwala łatwiej śledzić, które zmiany w rekordach pochodzą z automatu, a które z ręcznej pracy w programie.
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 w czasie rzeczywistym. Definiujesz osobne pipeline’y dla każdego kanału — z własnym harmonogramem, mapowaniem i alertami. Wszystkie operacje są zapisywane w logach wraz ze statusem i komunikatem, co pozwala ocenić, który kanał zsynchronizował się poprawnie, a który wymaga interwencji.
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 — w zależności od tego, jak sklep powinien pokazywać dostępność towarów. Harmonogram, częstotliwość i zakres magazynów definiujesz w pipeline, a efekty synchronizacji są widoczne w czasie rzeczywistym po stronie sklepu.
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 wciąż leży na magazynie. VerSync może synchronizować stan dostępny (po odjęciu rezerwacji), żeby sklep nie sprzedał tego samego towaru drugi raz. Operacja jest logowana ze statusem i komunikatem — widać, ile sztuk zostało zarezerwowanych, ile wróciło po anulowaniu zamówienia, a ile faktycznie wyszło z magazynu.
mapping:
- from: stanDostepny
to: stock_quantity
Dlaczego WebArm
VerSync to autorski silnik synchronizacji firmy WebArm — producenta narzędzi integracyjnych dla Comarch ERP Optima. WebArm specjalizuje się wyłącznie w integracjach Optimy (REST API, synchronizacja danych, wdrożenia produkcyjne) i utrzymuje VerSync z aktualizacjami pod kolejne wersje Comarcha. Razem z VerSync WebArm dostarcza Optima API — lokalny serwer REST, który eksponuje wszystkie kluczowe encje Comarcha przez HTTP/JSON i jest fundamentem warstwy synchronizacji.
Klienci WebArm to producenci, dystrybutorzy i firmy handlowe prowadzący sprzedaż omnichannel — sklep + Allegro/marketplace + B2B z jednego źródła w Optimie. Wdrożenia realizujemy bezpośrednio: analiza, konfiguracja pipeline’ów, monitoring produkcyjny, utrzymanie. Pełen przykład z produkcji opisuje case study Kapelanczyk.
Podsumowanie
Automatyczna synchronizacja stanów magazynowych, dokumentów i towarów 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. Logi ze statusem i komunikatem dla każdej operacji. 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
Programista, właściciel firmy produkcyjno-handlowej, lider zespołu WebArm. Wraz z zespołem rozwija Optima API i VerSync: REST API oraz synchronizatory do Comarch ERP Optima używane też w jego własnych firmach.
LinkedIn →Masz pytania o integrację z Comarch Optima?