ix
ix

informatix

EN version Porozmawiajmy o projekcie
E-commerce (anonimowo) Case study

Integracja sprzedaży omnichannel

Jak sklep na PrestaShop sprzedający równolegle na Allegro i Amazonie poskładał zawodną integrację: idempotencja zamówień, kolejki z ponowieniami, bufor magazynowy i alerty rozjazdów stanów.

KS Krzysztof Słonina Opublikowano: Aktualizacja: 9 min czytania

Najważniejsze

Problem nie polegał na braku integracji, tylko na tym, że integracja była zawodna — zamówienia się dublowały, stany rozjeżdżały, a zespół sprawdzał wszystko ręcznie. Naprawa nie wymagała zmiany platformy. Wymagała przebudowy przepływu: idempotencji, kolejek z ponowieniami, bufora magazynowego i monitoringu rozjazdów. Efekt: obsługa zamówienia krótsza o 40% i koniec ręcznej weryfikacji.

Problem

Sklep na PrestaShop sprzedawał równolegle w sklepie własnym, na Allegro i na Amazonie. Synchronizacja stanów magazynowych i cen odbywała się ręcznie — pracownik przepisywał dane między panelami. Efekt: sprzedaż produktów, których fizycznie nie było na stanie, reklamacje klientów, opóźnienia w realizacji zamówień i rosnąca nieufność zespołu do systemu. Integracja formalnie istniała i „działała" — w tym sensie, że dane przepływały. Problem był w jakości tego przepływu: duplikaty zamówień, rozjazdy stanów i brak jakiegokolwiek sygnału o awarii.

Rozwiązanie

Zaprojektowaliśmy i wdrożyliśmy integrację opartą na BaseLinker API i webhookach, zbudowaną na Laravelu. Każde zamówienie z marketplace niesie własny identyfikator, który służy jako klucz idempotencji — duplikaty nie powstają u źródła, zamiast być filtrowane po fakcie. Zapytania do API trafiają do kolejki z ograniczeniem tempa i trzema poziomami priorytetu, a błędy przejściowe wracają do kolejki z opóźnieniem rosnącym wykładniczo. Na kanałach zewnętrznych wystawiamy stan pomniejszony o bufor, a zamówienie z marketplace natychmiast rezerwuje towar w sklepie. Dziennik zdarzeń i alerty rozjazdów zamieniają wykrywanie problemów z „dowiemy się z reklamacji" na „alert w ciągu godziny".

Efekt

Czas obsługi zamówienia skrócony o 40%. Zero duplikatów zamówień — wyeliminowanych u źródła, nie filtrowanych po fakcie. Spójne stany i ceny we wszystkich kanałach. Rozjazdy wykrywane w ciągu godziny przez alerty, a nie przez reklamacje klientów. Oszczędność około 15 godzin pracy tygodniowo. Zespół przestał weryfikować każde zamówienie ręcznie — to najważniejszy efekt projektu.

Wyniki przed i po

Wskaźnik Przed Po
Czas obsługi zamówienia baseline −40%
Duplikaty zamówień występowały regularnie 0
Ręczna weryfikacja zamówień każde zamówienie tylko wyjątki
Wykrycie rozjazdu stanów z reklamacji klientów alert w ciągu godziny
Zamówienia wymagające interwencji kilkanaście procent poniżej 2%

Punkt wyjścia — integracja, która „działała", ale nikt jej nie ufał

Sklep na PrestaShop sprzedawał równolegle na trzech kanałach: własnym sklepie, Allegro i Amazonie. Integracja z marketplace’ami istniała, ale była zawodna w szczegółach, które w e-commerce decydują o wszystkim. To samo zamówienie trafiało do sklepu dwukrotnie, gdy odpowiedź API przekroczyła limit czasu i system ponowił żądanie. Stany magazynowe aktualizowały się w różnych momentach, więc zdarzała się sprzedaż produktu, którego fizycznie nie było. Zespół przestał ufać automatyzacji i sprawdzał każde zamówienie w dwóch systemach — integracja zamiast oszczędzać czas, dokładała pracy. O problemach dowiadywano się z reklamacji klientów, nie z systemu. To klasyczny stan, w którym integracja formalnie istnieje, ale organizacyjnie została porzucona, bo nikt jej nie ufa.

Idempotencja zamówień — duplikaty usunięte u źródła

Każde zamówienie z marketplace’u niesie własny identyfikator. Wprowadziliśmy klucz idempotencji oparty na tym identyfikatorze i kontrolę przed zapisem: jeśli zamówienie o danym identyfikatorze już istnieje, system je aktualizuje, zamiast tworzyć nowe. To usunęło duplikaty u źródła — nie filtrując je później, ale nie pozwalając im powstać. Idempotencja to fundament każdej odpornej integracji: sieć może zgubić odpowiedź, ale system nie może zgubić zamówienia ani zdublować go po ponowieniu żądania.

Kolejka z ponowieniami zamiast równoległych zapytań

Zapytania do API marketplace’ów trafiają do kolejki z ograniczeniem tempa, a nie są wysyłane równolegle — dzięki temu nie przekraczamy limitów API i nie tracimy zadań. Kolejka ma trzy poziomy priorytetu: zamówienia i stany bestsellerów, stany pozostałych produktów, aktualizacje opisów i cen. Gdy API zwraca błąd przejściowy (limit tempa, timeout, chwilowa niedostępność), zadanie wraca do kolejki z opóźnieniem rosnącym wykładniczo — zamiast przepadać. Każde ponowienie jest rejestrowane, więc widać, które integracje są niestabilne.

Bufor magazynowy i rezerwacja stanów w czasie rzeczywistym

Na kanałach zewnętrznych wystawiamy stan pomniejszony o bufor bezpieczeństwa, a zamówienie z marketplace’u natychmiast rezerwuje towar w sklepie. Bufor jest konfigurowalny per produkt: dla bestsellerów większy, dla produktów o niskiej rotacji mniejszy lub zerowy. To proste rozwiązanie eliminuje najbardziej kosztowny scenariusz w sprzedaży wielokanałowej — sprzedaż towaru, którego nie ma — i daje czas na dosynchronizowanie stanów bez ryzyka reklamacji.

Dziennik zdarzeń i alerty rozjazdów — monitoring, który działa

Każde zdarzenie — odebrane zamówienie, zmiana stanu, błąd API, ponowienie — trafia do dziennika zdarzeń. Osobny mechanizm porównuje stany w sklepie i na kanałach, i wysyła alert, gdy rozjazd przekroczy ustalony próg. To zamieniło wykrywanie problemów z „dowiemy się z reklamacji" na „dowiemy się w ciągu godziny". W praktyce monitoring okazał się ważniejszy niż sama integracja: integracja bez alertów to system, o którego awarii dowiadujesz się od klienta.

Testy na wycinku danych przed uruchomieniem

Przed uruchomieniem na całości przepuściliśmy proces przez próbkę zamówień, w tym przypadki brzegowe: zamówienia zbiorcze, anulowania po rezerwacji, zwroty i produkty wycofane ze sprzedaży. Najwięcej czasu zajął nie kod, tylko mapowanie wariantów produktów i różnice w statusach między kanałami. Testy na wycinku danych pozwoliły wychwycić te różnice przed produkcją, a nie po pierwszej fali zamówień.

Architektura integracji omnichannel — sklep PrestaShop i ERP połączone przez middleware Laravel z marketplace Allegro i Amazon oraz kurierami
Architektura rozwiązania: jeden przepływ danych między sklepem, ERP, marketplace’ami i kurierami zamiast ręcznego przepisywania.
Przepływ zamówienia z marketplace do sklepu — webhook, kolejka z priorytetami, klucz idempotencji, rezerwacja stanu, bufor magazynowy, dziennik zdarzeń i alerty rozjazdów
Przepływ zamówienia po przebudowie: klucz idempotencji i kolejka z ponowieniami eliminują duplikaty, a alerty wykrywają rozjazdy w ciągu godziny.
Wyniki wdrożenia przed i po — czas obsługi zamówienia krótszy o 40%, zero duplikatów, wykrycie rozjazdu stanów w ciągu godziny, interwencje ręczne poniżej 2 procent
Metryki operacyjne przed wdrożeniem i po — dane z anonimizowanego projektu e-commerce.

Czym jest sprzedaż omnichannel — kontekst projektu

Sprzedaż omnichannel to model, w którym klient kupuje w wielu kanałach — sklepie internetowym, marketplace’ach, aplikacji, sklepie stacjonarnym — a wszystkie kanały korzystają ze wspólnych danych: stanów magazynowych, zamówień, cen i historii klienta. Kluczowe słowo to „wspólne": w omnichannelu kanały nie są obok siebie, tylko zsynchronizowane w czasie rzeczywistym. Fundamentem takiego modelu jest integracja systemów — bez niej omnichannel istnieje tylko w nazwie, a pracownicy ręcznie przepisują dane między panelami.

Omnichannel a multichannel — różnica, która zmienia architekturę

Multichannel to sprzedaż w wielu kanałach prowadzona niezależnie: osobne stany, osobne opisy, często osobne zespoły. Omnichannel to te same kanały, ale spięte wspólną warstwą danych i procesów — jedno źródło prawdy o stanie magazynowym, jedna kolejka zamówień, jedna historia klienta. Różnica jest architektoniczna, nie marketingowa: multichannel da się prowadzić ręcznie (do pewnej skali), omnichannel bez integracji nie istnieje. To rozróżnienie warto znać przy każdej decyzji o wdrożeniu — sprzedaż na Allegro i Amazonie bez synchronizacji to nadal multichannel.

Wnioski dla Twojego sklepu

Integracja bez monitoringu nie istnieje — jeśli nie masz alertu na rozjazd stanów, nie wiesz, czy integracja działa; wiesz tylko, że nie dostałeś jeszcze reklamacji. Duplikaty to problem projektowy, nie operacyjny — nie da się ich trwale „obsłużyć" ręcznie, trzeba je wyeliminować na poziomie klucza idempotencji. Zaufanie zespołu jest metryką — największym zyskiem projektu nie był 40% krótszy czas obsługi, ale to, że zespół przestał weryfikować każde zamówienie ręcznie; dopóki tego nie zrobi, automatyzacja nie zwraca się niezależnie od tego, jak dobrze działa.

Ile trwa i ile kosztuje taka przebudowa

Przebudowa przepływu z idempotencją, kolejką i monitoringiem to zwykle 3–6 tygodni, zależnie od liczby kanałów i jakości katalogu produktów. Najwięcej czasu zajmuje mapowanie wariantów produktów i testy przypadków brzegowych. Koszt zależy od zakresu: integracje e-commerce startują od kilku tysięcy złotych, a projekty z dedykowaną logiką i ERP sięgają kilkudziesięciu tysięcy złotych netto. Jeśli prowadzisz sklep wielokanałowy i chcesz poznać orientacyjny budżet dla swojego przypadku, napisz — wycenę przygotuję po bezpłatnej analizie zakresu.

Najczęściej zadawane pytania

Czy trzeba przebudowywać integrację od zera?

Zwykle nie. Jeśli przepływ danych działa, ale zawodzi na szczegółach — duplikaty, rozjazdy stanów, brak monitoringu — wystarczy przebudować te elementy. W opisanym projekcie platforma i podłączenia zostały; zmieniła się logika przetwarzania (idempotencja, kolejka) i warstwa obserwowalności (dziennik zdarzeń, alerty).

Ile trwa przebudowa integracji omnichannel?

Przebudowa przepływu z idempotencją, kolejką i monitoringiem to zwykle 3–6 tygodni, zależnie od liczby kanałów i jakości katalogu produktów. Najwięcej czasu zajmuje mapowanie wariantów produktów i testy przypadków brzegowych: zamówień zbiorczych, anulowań po rezerwacji i zwrotów.

Ile kosztuje integracja sprzedaży omnichannel?

Koszt zależy od liczby kanałów, systemów do spięcia (ERP, księgowość, kurierzy) i zakresu logiki biznesowej. Integracje e-commerce startują od kilku tysięcy złotych netto, a projekty z dedykowanym middleware i ERP sięgają kilkudziesięciu tysięcy złotych. Widełki dla typowych zakresów opisujemy w przewodniku o kosztach integracji e-commerce — ostateczną wycenę przygotowuję po bezpłatnej analizie zakresu.

Jak uniknąć duplikatów zamówień przy integracji?

Kluczem jest idempotencja: każde zamówienie z marketplace’u niesie własny identyfikator, który zapisujemy razem z zamówieniem w sklepie. Przed zapisem system sprawdza, czy zamówienie o tym identyfikatorze już istnieje — jeśli tak, aktualizuje je zamiast tworzyć nowe. Dzięki temu ponowienie żądania po timeoucie API nie tworzy duplikatu.

Jak często synchronizować stany magazynowe między kanałami?

Stany powinny płynąć zdarzeniowo, w czasie zbliżonym do rzeczywistego: każde zamówienie i każda zmiana stanu wywołuje aktualizację pozostałych kanałów przez webhook lub kolejkę. Dodatkowo warto uruchamiać okresową rekoncyliację (np. raz na godzinę) i alert, gdy rozjazd przekroczy próg. Same aktualizacje zdarzeniowe nie wystarczą — błędy sieciowe i limity API zawsze generują jakieś rozjazdy.

Czym różni się omnichannel od multichannel?

Multichannel to sprzedaż w wielu kanałach prowadzona niezależnie — osobne stany, opisy i często zespoły. Omnichannel to te same kanały spięte wspólną warstwą danych: jednym źródłem prawdy o stanach magazynowych, jedną kolejką zamówień i jedną historią klienta. Multichannel da się prowadzić ręcznie do pewnej skali; omnichannel bez integracji nie istnieje.

Co zrobić, gdy stany rozjeżdżają się między Allegro a sklepem?

Po pierwsze, ustal jedno źródło prawdy dla stanów (zwykle magazyn sklepu) i wystawiaj na kanałach stan pomniejszony o bufor bezpieczeństwa. Po drugie, rezerwuj towar natychmiast przy zamówieniu z marketplace’u. Po trzecie, uruchom rekoncyliację porównującą stany między kanałami z alertem przy przekroczeniu progu — żeby rozjazd wykrywać w godzinę, a nie z reklamacji.

Czy integracja przez BaseLinker wystarczy, czy potrzebna jest dedykowana?

BaseLinker pokrywa standardowe przepływy: oferty, zamówienia, stany, kurierów i księgowość. Dedykowana integracja ma sens, gdy pojawia się własna logika biznesowa: niestandardowe reguły cenowe (B2B, grupy klientów), łączenie wielu magazynów, złożone workflow zamówień albo specyficzne wymagania ERP. Najlepsze efekty daje połączenie: BaseLinker jako hub kanałów plus dedykowana warstwa dla procesów, których hub nie obsługuje.

KS

Krzysztof Słonina

Full stack developer · 16 lat doświadczenia

Buduję i stabilizuję aplikacje webowe, integracje e-commerce i automatyzacje. Jeśli Twoja integracja dubluje zamówienia albo rozjeżdża stany — opisz problem, odpowiem w ciągu 24 godzin.

O autorze

Technologie

Laravel PHP 8.4 Baselinker API PostgreSQL Redis Webhooki RabbitMQ

Podobny problem w Twoim sklepie?

Bezpłatna konsultacja — przeanalizujemy Twoją integrację i oszacujemy naprawę.

Umów rozmowę

Powiązana usługa

Integracje e-commerce

Integracje API, webhooki i marketplace z kolejkami, retry i monitoringiem.

Zobacz usługę

Powiązane usługi

Powiązane artykuły

Potrzebujesz podobnego efektu?

Porozmawiajmy o Twoim projekcie. Bezpłatna konsultacja.

Umów rozmowę