Sklep internetowy spięty z SAP Business One: jak to działa w praktyce
Największym problemem takiego wdrożenia nie jest API, tylko ustalenie, który system ma rację przy rozbieżności danych. Praktyczny przewodnik po integracji e-commerce z SAP B1.
Marek Panasiewicz, Founder & lead developer
Firma z wdrożonym SAP Business One, która chce sprzedawać online, staje przed pytaniem pozornie technicznym: jak spiąć sklep z ERP. W praktyce jest to pytanie organizacyjne, a odpowiedź na nie decyduje o powodzeniu całego projektu.
Czym jest Service Layer i dlaczego to dobra droga
Service Layer to oficjalne API SAP Business One w wersji na HANA: interfejs REST z modelem OData, przez który da się czytać i zapisywać dokumenty handlowe. Alternatywy, czyli pisanie bezpośrednio do bazy albo wymiana plików, są tańsze na starcie i drogie na dłuższą metę: pierwsza łamie spójność systemu, druga rozjeżdża się przy każdej zmianie formatu.
- Odczyt katalogu towarów, jednostek, cenników i stanów magazynowych.
- Odczyt kontrahentów wraz z ich indywidualnymi warunkami handlowymi.
- Zapis zamówień sprzedaży jako dokumentów gotowych do realizacji.
- Odczyt statusów dokumentów, żeby klient widział w sklepie, co dzieje się z jego zamówieniem.
Pytanie, od którego wszystko zależy
Który system jest źródłem prawdy dla której danej. To brzmi jak formalność, a jest sednem projektu. Jeśli cena towaru może zostać zmieniona zarówno w SAP-ie, jak i w panelu sklepu, to prędzej czy później te dwie wartości się rozjadą, a wtedy klient kupi za złą cenę i ktoś będzie musiał tę różnicę pokryć.
Integracja nie psuje się na błędzie w kodzie. Psuje się w miejscu, w którym dwie osoby mogą zmienić tę samą liczbę.
Rozsądny podział wygląda zwykle tak: SAP odpowiada za towary, ceny, stany i kontrahentów, a sklep za treści marketingowe, zdjęcia, opisy i koszyk. Wszystko, co idzie z SAP-a, w sklepie jest tylko do odczytu, również w panelu administracyjnym.
Wydajność, czyli o czym warto pomyśleć wcześniej
Service Layer nie jest szybkim interfejsem i nie lubi masowego odpytywania. Katalog na dziesięć tysięcy pozycji przeładowywany w całości co godzinę potrafi obciążyć system w godzinach pracy handlowców, czyli dokładnie wtedy, gdy nie może.
- Synchronizacja przyrostowa: pobieramy tylko rekordy zmienione od ostatniego przebiegu.
- Kolejka z ponowieniami: nieudana operacja wraca po chwili, zamiast przepadać po cichu.
- Pamięć podręczna po stronie sklepu, żeby każde wyświetlenie produktu nie było zapytaniem do ERP.
- Pełne przeładowanie tylko w nocy i tylko jako mechanizm naprawczy.
Monitoring nie jest dodatkiem
Najkosztowniejsza awaria integracji to ta, której nikt nie zauważył. Synchronizacja stanów staje w piątek wieczorem, sklep przez weekend sprzedaje towar, którego nie ma, a w poniedziałek trzeba dzwonić do klientów i anulować zamówienia. Alert wysyłany po drugim nieudanym przebiegu kosztuje kilka godzin pracy przy wdrożeniu i oszczędza takich weekendów całkiem sporo.
Ile to trwa
Sama integracja katalogu i zamówień to zwykle sześć do dziesięciu tygodni, licząc od momentu uzyskania dostępu do środowiska testowego SAP-a. Ten dostęp bywa najdłużej oczekiwaną częścią projektu, więc warto załatwić go z partnerem SAP jeszcze przed startem prac, a nie w ich trakcie.