Integracje między PrestaShopem a systemami ERP (Comarch, Subiekt, SAP, inne) wykonujemy kilka razy w roku. Każdy projekt ma swoją specyfikę, ale pewne problemy powtarzają się na tyle regularnie, że warto je opisać zanim zaczniesz.
Pierwszy problem: model danych po obu stronach
PrestaShop i systemy ERP mają inny sposób reprezentowania tych samych rzeczy. Produkt w PS może mieć kombinacje (kolor + rozmiar), w ERP to mogą być osobne indeksy magazynowe. Zamówienie w PS ma inne stany niż zamówienie w ERP.
Zanim zaczniesz pisać kod, siadasz z obiema stronami i mapujesz pojęcia. To zajmuje czas, ale oszczędza wielokrotnie więcej później.
Drugi problem: kierunek synchronizacji
Najczęściej integracja działa w obie strony:
- Ze sklepu do ERP: nowe zamówienia, dane klientów
- Z ERP do sklepu: stany magazynowe, ceny, nowe produkty
Ale co jest źródłem prawdy? Jeśli cena produktu jest zmieniana i w PS i w ERP - który system wygrywa? To trzeba ustalić na początku, a nie po tym, jak integracja zacznie nadpisywać dane.
Trzeci problem: obsługa błędów
Integracja będzie się psuć. ERP będzie niedostępne podczas backupu, PS zwróci 500 przy imporcie dużego pliku, format daty się nie zgodzi. Dobra integracja obsługuje błędy: loguje je, powtarza nieudane operacje i informuje o problemach zamiast cicho gubić dane.
To jeden z elementów, na który najczęściej brakuje budżetu przy estymowaniu projektu - i jeden z elementów, który najbardziej kosztuje, gdy go nie ma.
Czwarty problem: wolumen danych
Import 1000 produktów z ERP do PS jest szybki. Import 50 000 produktów ze zdjęciami w trybie live jest innym projektem. Trzeba myśleć o kolejkowaniu, przetwarzaniu w tle i nie blokowaniu sklepu podczas synchronizacji.
Jak się przygotować do projektu
Przed rozmową z programistami przygotuj:
1. Listę danych, które mają się synchronizować w obie strony
2. Częstotliwość synchronizacji (real-time, co godzinę, raz na dobę)
3. Dostęp do dokumentacji API Twojego ERP (albo kontakt do dostawcy ERP)
4. Przykładowe dane - kilka produktów, kilka zamówień - żebyśmy mogli zobaczyć jak wyglądają w obu systemach
Dobra integracja nie jest trudna technicznie - jest trudna organizacyjnie. Kluczowe jest zebranie wymagań od ludzi, którzy faktycznie używają obu systemów.