Integracja BaseLinkera z ERP: gdzie się sypie
BaseLinker zbiera zamówienia ze sklepu i marketplace’ów, ERP wystawia dokumenty i trzyma stany magazynu. Oba systemy działają dobrze osobno. Problemy zaczynają się na styku: kiedy nie wiadomo, który z nich ma rację co do stanu, ceny albo statusu zamówienia.
- Autor
- Wojciech Wawrzyniak
- Aktualizacja
- Czytanie
- 6 min
Każda dana ma mieć jednego właściciela
Pierwsze pytanie przy każdej integracji brzmi: który system jest źródłem prawdy dla danej informacji. Jeśli dwa systemy mogą zmieniać ten sam stan albo tę samą cenę, prędzej czy później nadpiszą się nawzajem i nikt nie będzie wiedział, która wartość jest dobra.
- Stany magazynowe: ERP albo system magazynowy (WMS). BaseLinker i sklep tylko je odczytują.
- Ceny: ERP albo system do danych produktowych (PIM). Promocje ustawione ręcznie w sklepie są osobną regułą, którą trzeba opisać, a nie wyjątkiem, o którym wie jedna osoba.
- Zamówienia: powstają w sklepie i na marketplace’ach, BaseLinker je zbiera, a do ERP trafiają jako dokument.
- Statusy i numery przesyłek: BaseLinker i kurier, stamtąd wracają do sklepu i do klienta.
Rozpisanie tego na jednej stronie zajmuje godzinę i zwykle od razu pokazuje problem: na przykład ceny zmieniane zarówno w ERP, jak i w panelu sklepu.
Opóźnienia się sumują
Stan z ERP nie trafia do sklepu bezpośrednio. Idzie z ERP do BaseLinkera, a z BaseLinkera do sklepu i na każdy marketplace osobno. Jeśli każdy z tych odcinków działa co kilkanaście minut, klient może kupić produkt, który sprzedał się pół godziny wcześniej na Allegro. Poniżej model: sklep, w którym 300 razy w miesiącu jakiś produkt schodzi do ostatniej sztuki, a na pozostałych kanałach taki produkt sprzedaje się średnio raz na 10 godzin.
| Stan idzie co | Średnie opóźnienie | Sprzedane 2 razy / mies. | Rocznie |
|---|---|---|---|
| 60 min | 30 min | 14,6 | 176 |
| 15 min | 7,5 min | 3,7 | 45 |
| 5 min | 2,5 min | 1,2 | 15 |
| przy każdej zmianie | ok. 10 s | 0,08 | 1 |
Każda podwójnie sprzedana sztuka to anulowane zamówienie: zwrot pieniędzy, przeprosiny, czas obsługi i klient, który kupi gdzie indziej. Na marketplace’ach anulacje z winy sprzedawcy liczą się do ocen jakości konta. Najwięcej daje przejście z aktualizacji co godzinę na aktualizację przy każdej zmianie stanu, a nie skracanie odstępu z 15 do 5 minut.
To jest model. W praktyce ryzyko skupia się na produktach, które sprzedają się szybko i mają mały zapas. Dla nich prostym zabezpieczeniem jest bufor: marketplace widzi o jedną lub dwie sztuki mniej, niż jest w magazynie.
Siedem miejsc, w których integracja się sypie
- Identyfikatory produktów. Sklep zna produkt po SKU, marketplace po EAN, ERP po własnym symbolu, a warianty (rozmiar, kolor) mają jeszcze inne numery. Produkt, który nie jest powiązany we wszystkich systemach, sprzedaje się dalej, a jego stan stoi w miejscu.
- Zestawy. Komplet trzech produktów w sklepie jest jednym towarem, w magazynie trzema. Jeśli integracja nie liczy stanu zestawu ze składników, zestaw sprzedaje się dalej, kiedy jednego ze składników już nie ma.
- Rezerwacje. Wiele ERP-ów zdejmuje stan dopiero przy wystawieniu dokumentu wydania. Między przyjęciem zamówienia a wydaniem towar jest formalnie dostępny i można go sprzedać drugi raz.
- Dokumenty sprzedaży. Paragon czy faktura, NIP, dane firmy, stawki VAT na pozycjach. KSeF odrzuci fakturę niezgodną ze schemą, ale błędów merytorycznych nie wyłapie: przepuści złą stawkę VAT na pozycji albo fakturę bez NIP-u nabywcy, która wtedy nie trafi do jego firmy w KSeF. Takie błędy wychodzą dopiero przy korekcie, więc integracja powinna je łapać przed wysyłką.
- Grosze na dokumencie. Sklep liczy VAT od pozycji, ERP od sumy dokumentu, i kwoty różnią się o kilka groszy. Taki dokument trzeba poprawiać ręcznie.
- Zwroty i korekty. Zwrot przyjęty w BaseLinkerze nie tworzy sam korekty w ERP. Towar wraca na półkę, a w systemie go nie ma, albo odwrotnie, i stany rozjeżdżają się z każdym tygodniem.
- Awarie i limity. ERP na serwerze w biurze bywa wyłączony w nocy albo w trakcie aktualizacji, a każde API ma limit zapytań na minutę. Bez kolejki i ponowień zamówienia z tego czasu nie trafiają do ERP i nikt o tym nie wie, dopóki klient nie zapyta o paczkę.
Wspólny mianownik: integracja działa w typowym przypadku, a sypie się na wyjątkach. Dlatego przy wdrożeniu testujemy właśnie wyjątki: zestaw, zwrot, fakturę na firmę, awarię ERP w trakcie zamówienia. Tak budujemy integracje z ERP i magazynem: z kolejką, która czeka na ERP, i z logiem każdej operacji.
Jak sprawdzić swoją integrację w godzinę
- Porównaj stany. Wybierz 20 produktów, w tym kilka zestawów i wariantów, i porównaj stan w ERP, w BaseLinkerze, w sklepie i na marketplace’ach. Każda różnica to konkretny błąd do znalezienia.
- Złóż zamówienie testowe w każdym kanale i zmierz, po ilu minutach pojawia się w ERP i po ilu zmienia się stan w pozostałych kanałach.
- Zrób zwrot testowy i sprawdź, czy powstała korekta, czy stan wrócił i czy klient dostał zwrot pieniędzy.
- Wystaw fakturę na firmę z zamówienia ze sklepu i sprawdź, czy dane z formularza trafiły do dokumentu bez ręcznego przepisywania.
- Zapytaj, kto dostaje powiadomienie, gdy synchronizacja stoi. Jeśli nikt, dowiesz się o awarii od klientów.
Gotowa integracja czy własny łącznik
Gotowe integracje BaseLinkera z popularnymi ERP-ami wystarczają, gdy katalog jest prosty, kanałów jest kilka, a zwroty i faktury obsługuje się w jednym miejscu. Warto je najpierw dobrze skonfigurować, zanim cokolwiek się dopisze. Własny łącznik ma sens przy zestawach, cenach dla firm, kilku magazynach albo ERP-ie, który nie ma gotowej integracji. Wtedy piszemy go jako osobną usługę z kolejką, ponowieniami i alertami, a kod i dokumentacja zostają u Ciebie.
Jeśli integracja jest częścią większej zmiany, na przykład przeprowadzki z platformy abonamentowej, zacznij od niej: to ona decyduje, ile potrwa cały projekt. Piszemy o tym w tekście Kiedy przejść z Shopify lub innego SaaS na własny sklep. Zmiany w samej integracji wdrażaj tak jak zmiany w sklepie, przez środowisko testowe, o czym piszemy w tekście Jak bezpiecznie wdrażać zmiany w sklepie.
Comarch, Subiekt, Symfonia, enova365, SAP i BaseLinker: stany, ceny, zamówienia i dokumenty z kolejką i logiem każdej operacji.
Zobacz, jak łączymy systemy