Integracja Drupala z ERP, sklepem lub CRM wymaga ustalenia, który system zarządza danymi i jak często zmiany mają trafiać do drugiej strony. Sam endpoint nie rozwiązuje konfliktów, duplikatów ani problemów z dostępem, dlatego projekt zaczynamy od przepływu danych i odpowiedzialności za rekordy.
Krótka odpowiedź
Drupal może udostępniać encje przez JSON:API, skonfigurowany Drupal RESTful Web Services albo moduł GraphQL, a system zewnętrzny może dane pobierać lub wysyłać aktualizacje. JSON:API jest RESTful i dobrze obsługuje encje Drupal; RESTful Web Services pozwala konfigurować zasoby i metody, a własny zasób wymaga implementacji pluginu.
Przed wdrożeniem ustal źródło prawdy dla każdego pola, kierunek wymiany, uwierzytelnianie, obsługę błędów i testy ponownej synchronizacji.
Usługi KC Mobile
Potrzebujesz pomocy w tym temacie?
Czytasz poradnik „Drupal i REST API: jakie integracje można wdrożyć w firmie?”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny.
Do czego służy REST API w Drupal?
REST API w Drupal służy do wymiany danych między witryną a inną aplikacją za pomocą żądań HTTP i odpowiedzi w ustalonym formacie. Drupal może udostępniać dane, przyjmować aktualizacje albo realizować oba kierunki.
API, czyli interfejs programistyczny aplikacji, określa, jak systemy przekazują sobie dane. Endpoint to adres, pod którym aplikacja udostępnia określony zasób lub operację.
Przykłady zastosowań firmowych:
- CMS udostępnia artykuły, strony i taksonomie aplikacji mobilnej lub osobnemu frontendowi.
- ERP przekazuje ceny, stany lub dane produktowe, które Drupal publikuje na stronie.
- Formularz wysyła leady do CRM, a CRM zwraca status obsługi.
- Sklep przekazuje zamówienia do systemu sprzedaży lub ERP.
Wymiana jednokierunkowa jest prostsza do kontrolowania, gdy tylko jeden system może zmieniać dane. Synchronizacja dwukierunkowa wymaga reguł rozstrzygania konfliktów, ponieważ edycja tego samego rekordu po obu stronach może nadpisać poprawną wartość.
Drupal udostępnia RESTful Web Services do konfigurowania zasobów oraz JSON:API jako interfejs RESTful oparty na encjach. Jeśli projekt nie wymaga funkcji Drupala i ważniejsze jest wdrożenie firmowej witryny na innej platformie, strony firmowe na WordPressie mogą być alternatywą do oceny. Kryteria wyboru platformy opisuje porównanie WordPressa, Drupala i innych CMS.
Czytasz poradnik „Drupal i REST API: jakie integracje można wdrożyć w firmie?”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny. Omów temat tego poradnika
Jakie dane można udostępnić lub pobierać?
Drupal może udostępniać lub pobierać treści, produkty, zamówienia, klientów i stany magazynowe, jeśli model danych oraz moduły witryny obsługują taki zakres. Kierunek wymiany i źródło prawdy ustala się osobno dla każdego pola.
Tabela pokazuje przykładową macierz danych do zaplanowania integracji. Przypisanie źródła prawdy jest decyzją projektową, a nie domyślną właściwością Drupala.
| Typ danych | Kierunek wymiany | System docelowy | Źródło prawdy |
|---|---|---|---|
| Treści i taksonomie | Drupal do aplikacji | Aplikacja mobilna | Drupal |
| Produkty i ceny | ERP do Drupal | Drupal | ERP |
| Zamówienia | Drupal do ERP | ERP | Ustalony system zamówień |
| Klienci i leady | Drupal do CRM | CRM | CRM po utworzeniu kontaktu |
| Stany magazynowe | ERP do Drupal | Drupal | ERP |
Tabela przedstawia wzorce projektowe, które trzeba dopasować do procesu firmy. ERP może kontrolować stan, podczas gdy Drupal zarządza opisem marketingowym produktu.
Przy integracji zamówień określ identyfikator zewnętrzny, walutę, statusy i zachowanie przy ponownym wysłaniu komunikatu. Stały identyfikator pozwala odbiorcy rozpoznać istniejący rekord i ograniczyć tworzenie duplikatów.
Które podejście wybrać: Drupal RESTful Web Services, JSON:API czy GraphQL?
JSON:API jest dobrym punktem wyjścia dla encji Drupal, Drupal RESTful Web Services dla konfigurowanych zasobów i niestandardowej logiki, a GraphQL dla klientów, którzy potrzebują wybierać strukturę odpowiedzi. JSON:API również jest API RESTful, więc nie jest odrębnym stylem architektury od REST.
Tabela porównuje podejścia dostępne dla projektu Drupal. Własny zasób w Drupal RESTful Web Services wymaga implementacji pluginu, a nie samej konfiguracji modułu.
| Podejście | Dostępność w Drupal | Kontrola odpowiedzi | Typowe zastosowanie |
|---|---|---|---|
| JSON:API | Moduł rdzenia dla encji | Konwencje JSON:API i pola encji | Treści, produkty i inne encje |
| Drupal RESTful Web Services | Moduł rdzenia, zasoby konfigurowane | Metody, formaty i uwierzytelnianie dla zasobu | Encje i zasoby REST |
| Własny plugin REST | Implementacja w module własnym | Logika i kontrakt zasobu | Dane lub operacje niestandardowe |
| GraphQL | Moduł dodatkowy zależny od projektu | Klient wybiera pola zapytania | Frontend składający złożone zapytania |
Tabela rozdziela RESTful Web Services i własny plugin, ponieważ konfiguracja zasobu nie tworzy automatycznie nowej logiki domenowej. Dokumentacja Drupal opisuje implementację własnego zasobu przez plugin REST, a JSON:API jako interfejs RESTful skupiony na encjach. Dokumentację producenta sprawdziliśmy w październiku 2026 roku.
Zalecamy wybrać najprostsze podejście, które spełnia wymagania kontraktu API. Sama elastyczność GraphQL nie uzasadnia wdrożenia, jeśli klient potrzebuje kilku stabilnych operacji na encjach.
Jak zaplanować integrację krok po kroku?
Integrację planuje się przez wskazanie właściciela danych, mapowanie pól, wyzwalacza synchronizacji, częstotliwości, procedury błędów i środowiska testowego. Taka kolejność ogranicza ryzyko utraty zmian i ręcznego uzgadniania rekordów.
Przykładowy kontrakt dla przyjęcia zamówienia może używać metody POST pod endpointem `/api/v1/orders`. System wysyłający przekazuje `external_id`, który odbiorca zapisuje jako klucz idempotencji, czyli identyfikator pozwalający rozpoznać ponowione żądanie i nie tworzyć drugiego zamówienia.
POST /api/v1/orders
Content-Type: application/json
Authorization: Bearer <token>
{
"external_id": "erp-order-78421",
"status": "paid",
"currency": "PLN",
"items": [
{"sku": "SKU-104", "quantity": 2}
]
}Powyższy endpoint i format są przykładem kontraktu, a nie gotowym adresem w każdym Drupalu. Dla własnego zasobu trzeba zaimplementować plugin REST, ustalić obsługiwane metody oraz formaty, a następnie skonfigurować dostęp do zasobu.
Procedura przygotowania:
1. Spisz obiekty wymieniane między systemami i wskaż system źródłowy dla każdego pola.
2. Zmapuj nazwy pól, formaty dat, waluty, identyfikatory, słowniki statusów i wartości opcjonalne.
3. Wybierz wyzwalacz: zdarzenie w systemie, zadanie cykliczne albo ręczne uruchomienie importu.
4. Ustal, jak system rozpozna ponownie wysłany rekord i zapobiegnie duplikatom.
5. Zdefiniuj logi, alerty, limity ponowień i kolejkę rekordów wymagających ręcznej kontroli.
6. Przygotuj środowisko testowe z danymi, które nie zawierają niepotrzebnych danych osobowych.
Rozdziel pierwsze pobranie danych od późniejszych zmian. Import początkowy może obejmować pełną kolekcję, a synchronizacja przyrostowa powinna wskazywać, które rekordy zmieniły się od poprzedniego przebiegu.
Zapisz regułę rozstrzygania konfliktów obok mapowania pól. Jeśli ERP i Drupal edytują to samo pole, określ, czy wygrywa system nadrzędny, nowsza zmiana czy ręczna decyzja operatora.
Jak zabezpieczyć endpointy i dostęp do danych?
Endpointy Drupala zabezpiecza się przez HTTPS, minimalne uprawnienia, właściwe uwierzytelnianie i ograniczenie danych dostępnych dla danej integracji. Publiczny odczyt nie powinien oznaczać dostępu do prywatnych pól ani możliwości zapisu.
JSON:API respektuje kontrolę dostępu do encji i pól oraz walidację przy modyfikacji, ale konfiguracja projektu nadal wymaga audytu. Dokumentacja Drupal podaje też, że tryb tylko do odczytu można ustawić w `/admin/config/services/jsonapi`; jego dostępność i domyślne ustawienie zależą od wersji oraz konfiguracji modułu.
Przed uruchomieniem sprawdź:
- czy endpoint działa wyłącznie przez HTTPS;
- czy użytkownik techniczny ma tylko wymagane role i uprawnienia;
- czy odpowiedź nie zawiera nieuzasadnionych danych osobowych ani pól administracyjnych;
- czy klucze i hasła są przechowywane poza kodem i logami;
- czy poświadczenia można unieważnić i wymienić bez przestoju;
- czy logi nie zapisują tokenów ani pełnych danych klienta.
Drupal RESTful Web Services pozwala konfigurować dozwolone metody, formaty serializacji i mechanizmy uwierzytelniania dla zasobu. Własny plugin wymaga również przeglądu uprawnień i walidacji danych wejściowych; sama obecność endpointu nie zabezpiecza logiki aplikacyjnej.
Jak obsłużyć błędy i ponawianie synchronizacji?
Błąd synchronizacji diagnozuje się od kodu HTTP, przez uwierzytelnienie i uprawnienia, po dostępność systemu zewnętrznego oraz treść żądania. Ponowienie powinno zależeć od rodzaju błędu, a nie uruchamiać się bezwarunkowo dla każdego kodu.
Tabela pokazuje typowe obszary diagnostyczne i reakcje. Konkretna przyczyna wymaga sprawdzenia odpowiedzi API, logów i konfiguracji obu systemów.
| Kod HTTP | Obszar kontroli | Reakcja |
|---|---|---|
| 401 | Brak lub błędne uwierzytelnienie | Sprawdź poświadczenia i metodę logowania |
| 403 | Brak uprawnień do zasobu lub operacji | Sprawdź rolę, dostęp do encji i pól |
| 404 | Nieprawidłowy adres lub brak rekordu | Sprawdź ścieżkę, typ zasobu i identyfikator |
| 429 | Ograniczenie liczby żądań | Zastosuj opóźnienie i kontrolowane ponowienie |
| 5xx | Błąd serwera Drupal lub systemu zewnętrznego | Zapisz identyfikator żądania i ponów zgodnie z limitem |
Tabela podpowiada kierunek diagnostyki, a nie jedną przyczynę każdego kodu. Przy 401 nie ponawiaj bez końca tego samego żądania z niezmienionym sekretem. Przy 429 lub przejściowym błędzie 5xx zastosuj opóźnienie, limit prób i kolejkę nierozwiązanych rekordów.
Log powinien zawierać identyfikator korelacyjny, czas, endpoint, metodę, identyfikator rekordu i wynik. Identyfikator korelacyjny łączy wpisy dotyczące jednego żądania w logach kilku systemów. Nie zapisuj tokenów ani pełnych payloadów zawierających dane klienta.
Ile pracy wymaga integracja Drupal z ERP lub sklepem?
Nakład pracy zależy od liczby systemów, kierunków synchronizacji, jakości danych i zakresu niestandardowej logiki, dlatego sama nazwa integracji nie wystarcza do rzetelnej estymacji. Zakres dzieli się na analizę, mapowanie, implementację, testy i utrzymanie.
Praca rośnie, gdy integracja obejmuje wiele źródeł danych, zapisy w obu kierunkach, złożone warianty produktów albo historyczne rekordy o niespójnych identyfikatorach. Dodatkowe zadania powodują różne statusy zamówień, synchronizacja poza godzinami pracy i brak środowiska testowego dostawcy.
Perspektywa KC Mobile: dwukierunkowa synchronizacja wymaga ustalenia reguł konfliktów edycji. Jeśli kilka systemów zmienia te same pola, zespół potrzebuje reguł pierwszeństwa, historii zmian i procedury ręcznej korekty.
Wycenę oprzyj na próbce danych i spisanych scenariuszach, w tym obsłudze błędów i ponowień. Jeśli wymagania firmy pasują do Drupala, zakres wdrożenia trzeba ocenić dla tej architektury; jeśli dopuszczasz zmianę platformy, wdrożenie strony na WordPressie jest alternatywą do porównania z kosztami i wymaganiami integracji.

Jak sprawdzić integrację przed uruchomieniem?
Integrację przed uruchomieniem sprawdza się pod kątem zgodności pól, duplikatów, brakujących rekordów, opóźnień, uprawnień i ponownej synchronizacji. Testy powinny objąć pełny przepływ danych w obie strony, jeśli systemy mają wzajemnie zapisywać zmiany.
Checklista odbiorowa:
- porównaj przykładowe rekordy źródłowe i docelowe, w tym wartości opcjonalne;
- wyślij ten sam rekord ponownie i potwierdź, że nie powstaje duplikat;
- sprawdź reakcję na brak wymaganego pola lub nieznany status;
- przerwij połączenie i potwierdź, że synchronizację można wznowić;
- zweryfikuj odpowiedzi dla konta bez uprawnień i poprawnego użytkownika technicznego;
- porównaj dane po ponownym imporcie, aby wykryć nadpisane wartości.
Zapisz wynik testu dla każdej operacji, identyfikator użytego rekordu i sposób naprawienia niezgodności. Po wdrożeniu kontroluj kolejkę błędów oraz czas ostatniego udanego przebiegu synchronizacji.
Więcej poradników w tym temacie
Wspomniane narzędzia
Najczęściej zadawane pytania
Do czego można wykorzystać Drupal REST API?
Jak połączyć Drupal z systemem ERP?
Czy Drupal REST API obsługuje JSON:API?
Jak zabezpieczyć endpoint REST w Drupal?
Ile kosztuje integracja Drupala z innym systemem?
Potrzebujesz pomocy w tym temacie?
Czytasz poradnik „Drupal i REST API: jakie integracje można wdrożyć w firmie?”. Napisz, co chcesz zrobić i na jakim etapie jesteś. Ustalimy, czy możemy pomóc i jaki zakres prac będzie potrzebny.
