Integracja sklepu z ERP przez API, plik CSV czy bazę danych: kiedy co ma sens
Trzy sposoby połączenia sklepu z programem magazynowym porównane pod kątem kosztu, awaryjności, utrzymania i bezpieczeństwa. Kiedy wystarczy plik, kiedy potrzebne jest API i dlaczego zapis prosto do bazy to zwykle zły pomysł.
Zrobimy to za Ciebie. Opisz problem, a odpowiemy w ciągu 24 godzin roboczych.
Opisz projektKażda integracja sklepu z programem magazynowym sprowadza się do przeniesienia danych z jednego systemu do drugiego. Technicznie są trzy drogi: przez interfejs programistyczny, czyli API, przez wymianę plików, najczęściej CSV, albo bezpośrednio przez bazę danych. Każda działa. Różnią się tym, co się stanie za rok, gdy producent wyda aktualizację, zmieni się pracownik albo ktoś przez pomyłkę wgra plik z zeszłego tygodnia.
W skrócie
- API to zalecana droga, gdy oba systemy je mają. Jest najbezpieczniejsze i najodporniejsze na aktualizacje, ale wymaga programisty i czasem licencji.
- Plik CSV wystarcza do rzadkich, jednokierunkowych przepływów: import cennika raz dziennie, eksport zamówień dla biura rachunkowego. Nie nadaje się do stanów w czasie rzeczywistym.
- Zapis bezpośrednio do bazy ERP omija logikę programu i łamie zwykle warunki wsparcia producenta. Odczyt z bazy bywa akceptowalny, zapis prawie nigdy.
- Wybór zależy od częstotliwości, kierunku, wrażliwości danych i tego, kto będzie to utrzymywać. Mieszanie metod w jednej integracji jest normalne.
Trzy drogi w jednej tabeli
| Kryterium | API | Plik CSV | Bezpośrednio baza danych |
|---|---|---|---|
| Koszt wdrożenia | średni do wysokiego, wymaga programisty | niski, czasem bez programisty | niski na start, wysoki po pierwszej aktualizacji |
| Częstotliwość | od czasu rzeczywistego do dowolnej | od godzin do dni | dowolna technicznie |
| Odporność na aktualizacje systemów | wysoka, API jest wersjonowane | wysoka, format pliku zmienia się rzadko | niska, każda zmiana struktury bazy psuje integrację |
| Walidacja danych | robi ją system docelowy | brak, plik przyjmie wszystko | brak, zapis omija logikę programu |
| Obsługa błędów | odpowiedź z opisem błędu dla każdej operacji | wiersz się nie wczytał, zwykle bez informacji dlaczego | błąd widoczny dopiero w działaniu programu |
| Bezpieczeństwo | uprawnienia per operacja, klucze, dziennik | plik na dysku lub FTP, trudno kontrolować | pełny dostęp do wszystkiego, w tym danych osobowych |
| Wsparcie producenta ERP | tak | tak | zwykle nie przy zapisie |
| Utrzymanie | niskie po wdrożeniu | wysokie, dużo ręcznych kroków | wysokie i nieprzewidywalne |
API: kiedy i dlaczego
Interfejs programistyczny to wejście do systemu zaprojektowane przez producenta. PrestaShop ma własne API, a wersja 9 dodała nowe Admin API. Programy ERP mają swoje: Sfera w Subiekcie, interfejsy w Optimie, enova365 czy wFirma i Fakturowni. Operacja przez API przechodzi przez logikę programu: dokument dostaje numer, towar zmienia stan, kontrahent jest sprawdzany. Jeśli coś jest nie tak, dostajesz odpowiedź z błędem, a nie uszkodzone dane.
Zalety, które widać po roku
- Aktualizacja ERP albo sklepu nie psuje integracji, bo API jest utrzymywane przez producenta.
- Każda operacja ma wynik, więc dziennik integracji pokazuje, co się udało, a co nie i dlaczego.
- Uprawnienia są ograniczone do potrzebnych operacji. Konto integracji może tworzyć dokumenty, ale nie może czytać kadr.
- Da się pracować na zdarzeniach: zamówienie wpływa i od razu trafia do ERP, bez czekania na plik.
Wady, o których trzeba wiedzieć
- Wymaga programisty i czasu na wdrożenie, zwykle od tygodni do miesięcy zależnie od zakresu.
- W części programów API jest dodatkowo licencjonowane, np. Sfera w Subiekcie.
- API ma ograniczenia: nie każda funkcja programu jest dostępna, a liczba zapytań na minutę bywa limitowana.
- Integracja przez API to oprogramowanie, które trzeba utrzymywać, choć koszt jest niski w porównaniu z pozostałymi metodami.
Plik CSV: kiedy wystarczy
Wymiana plików to najstarsza metoda i nadal ma zastosowania. Dostawca wysyła cennik raz dziennie, sklep go importuje. Sklep eksportuje zamówienia z dnia dla biura rachunkowego. Hurtownia bez API udostępnia stany w pliku na serwerze. W tych przypadkach plik działa dobrze, bo przepływ jest rzadki, jednokierunkowy i nikt nie oczekuje odpowiedzi.
Plik przestaje działać, gdy liczy się czas albo poprawność. Stany magazynowe z pliku co godzinę to gotowy przepis na oversell, co opisaliśmy w artykule o synchronizacji stanów. Zamówienia przez plik oznaczają, że błąd w jednym wierszu zatrzymuje wczytanie reszty albo, gorzej, wczytuje się połowa i nikt nie wie która. Do tego dochodzą kodowanie znaków, separatory, kropki i przecinki w kwotach oraz człowiek, który wgrywa plik z wczoraj.
Uwaga
Jeśli dziś integracja działa na plikach, nie wyrzucaj jej tylko dlatego, że „API jest nowocześniejsze”. Sprawdź, które przepływy są rzadkie i jednokierunkowe. Te mogą zostać na pliku. Na API przenieś te, w których liczy się czas i w których błędy kosztują: stany, zamówienia, dokumenty.
Bezpośrednio do bazy: dlaczego zwykle nie
Trzecia droga kusi, bo jest szybka. Programista łączy się z bazą ERP, odczytuje tabelę towarów, wpisuje zamówienie do tabeli dokumentów. Żadnych licencji na API, żadnych limitów. Działa do pierwszej aktualizacji, w której producent zmieni strukturę tabel. Albo do pierwszego dokumentu, który został wpisany bez numeru, bez skutku magazynowego i bez zapisu w rejestrze VAT, bo zapis ominął logikę programu.
Druga sprawa to wsparcie. Producenci ERP w warunkach licencji zwykle wykluczają zapis do bazy poza programem. Gdy coś się zepsuje, pomoc techniczna najpierw zapyta, czy ktoś modyfikował bazę. Trzecia sprawa to bezpieczeństwo: konto z dostępem do bazy ma dostęp do wszystkiego, w tym do danych osobowych klientów i pracowników. Wyciek z takiego konta to zgłoszenie do UODO w 72 godziny.
Kiedy odczyt z bazy jest akceptowalny
Odczyt bywa rozsądnym kompromisem, gdy program nie ma API albo API nie udostępnia potrzebnych danych, a przepływ jest jednokierunkowy do sklepu, np. stany i ceny. Pod trzema warunkami: konto tylko do odczytu, ograniczone do konkretnych tabel lub widoków; zgoda opiekuna systemu; oraz świadomość, że aktualizacja ERP może wymagać poprawki. Zapis do bazy ERP odradzamy w każdym przypadku.
Z naszej praktyki
Hurtownia artykułów biurowych miała integrację zapisującą zamówienia ze sklepu prosto do bazy programu magazynowego. Działała trzy lata, aż aktualizacja programu dodała nowe wymagane pole w tabeli dokumentów. Przez dwa dni zamówienia zapisywały się bez błędu, ale program ich nie widział, bo pole było puste. Wyszło to, gdy magazyn zapytał, dlaczego od wtorku nic nie przychodzi. Przepisaliśmy integrację na interfejs programu, z kolejką i dziennikiem. Przy następnej aktualizacji nic się nie zmieniło, poza wpisem w dzienniku, że API zgłosiło nową wersję.
Jak wybrać metodę dla każdego przepływu
Nie wybierasz jednej metody dla całej integracji. Wybierasz metodę dla każdego przepływu osobno, według czterech pytań.
Krok po kroku
- Jak często? Raz dziennie lub rzadziej: plik może wystarczyć. Co godzinę lub częściej: API albo zdarzenia.
- W którą stronę? Jednokierunkowo bez odpowiedzi: plik dopuszczalny. Dwukierunkowo albo z potrzebą potwierdzenia: API.
- Co się stanie przy błędzie? Jeśli błąd kosztuje pieniądze lub klienta, potrzebujesz walidacji i dziennika, czyli API.
- Kto to utrzyma? Jeśli w firmie nie ma nikogo, kto codziennie sprawdzi plik, automat przez API jest tańszy w utrzymaniu, choć droższy na start.
Typowy wynik w małej firmie: zamówienia, stany i dokumenty przez API, cennik od dostawcy przez plik, eksport dla księgowej przez plik, a dane, których API nie daje, przez odczyt z bazy za zgodą opiekuna systemu.
Metoda integracji to decyzja o tym, kto dowie się o błędzie jako pierwszy: program, Ty czy klient.
Bezpieczeństwo w każdej z metod
Niezależnie od metody integracja ma dostęp do danych osobowych klientów i danych handlowych firmy. Kilka zasad, których przestrzegamy w każdym wdrożeniu: osobne konto dla integracji z minimalnymi uprawnieniami, klucze i hasła poza kodem i poza repozytorium, szyfrowane połączenia, dziennik operacji z datą i wynikiem oraz powiadomienia o nietypowej aktywności, np. o nagłym pobraniu całej bazy kontrahentów. Przy plikach dodatkowo: nie przez zwykłe FTP, nie na publicznym adresie i z usuwaniem plików po wczytaniu.
Pytania, które słyszymy najczęściej
Mój ERP nie ma API. Co wtedy?
Sprawdź najpierw, czy na pewno nie ma, bo często jest dostępne jako osobny moduł lub licencja. Jeśli naprawdę nie ma, rozważ odczyt z bazy dla danych do sklepu i plik albo półautomat dla danych do ERP, z jasnym opisem ograniczeń.
Czy API jest zawsze droższe niż plik?
Na start tak. Po roku zwykle nie, bo plik wymaga ludzi: ktoś go eksportuje, sprawdza, wgrywa i poprawia błędy. Przy codziennym przepływie koszt tych godzin przekracza różnicę w cenie wdrożenia.
Gotowy łącznik z marketplace’u modułów też używa API?
Zwykle tak, ale warto zapytać. Część tanich łączników do ERP pisze bezpośrednio do bazy, co widać dopiero, gdy aktualizacja ERP je wyłączy.
Czy można zacząć od pliku i przejść na API później?
Tak i to częsta droga. Ważne, żeby już na etapie pliku ustalić identyfikatory towarów i format danych, bo te przechodzą do integracji przez API bez zmian.
Nie wiesz, którą metodą połączyć sklep z programem magazynowym, albo masz integrację, która psuje się po każdej aktualizacji? Opisz systemy i przepływy, a powiemy, co zostawić, a co przenieść na API. Zobacz, jak robimy integracje z ERP.