Integracja PrestaShop, która przeżywa aktualizacje sklepu
PrestaShop działa na Twoim serwerze, więc masz dostęp do kodu, bazy i wszystkich ustawień. Ta swoboda ma cenę: każda aktualizacja sklepu, PHP albo modułu może przerwać połączenie z magazynem czy programem do faktur.
Autor: Szymon Łakomy. Aktualizacja:
Moduł z rynku, moduł na zamówienie czy usługa obok sklepu
| Wariant | Gdzie działa | Co zyskujesz | Ryzyko przy aktualizacji |
|---|---|---|---|
| Moduł z PrestaShop Addons lub od producenta programu | w sklepie | szybki start i gotowe ustawienia | zależysz od autora, który musi nadążyć za nowymi wersjami |
| Moduł pisany na zamówienie | w sklepie | pełne dopasowanie do procesu | kod żyje w sklepie, więc każda większa aktualizacja wymaga przeglądu |
| Usługa zewnętrzna przez Webservice | na osobnym serwerze albo w n8n | czysty sklep i błędy w jednym dzienniku | zmiany w zasobach API, zwykle łatwe do wychwycenia testem |
Moduł z rynku jest rozsądny, gdy łączysz sklep z popularnym programem i nie masz nietypowych reguł. Przy kilku systemach i wyjątkach wybieram usługę obok sklepu.
Jak wygląda Webservice API od środka
- Klucz z uprawnieniami. Webservice włącza się w panelu, w parametrach zaawansowanych, i tworzy klucz z dostępem do konkretnych zasobów, osobno do odczytu, zapisu i usuwania.
- Zasoby. Zamówienia, historia statusów, produkty, kombinacje, stany, klienci i adresy. Integracja z ERP zwykle korzysta z kilku naraz.
- Format. Dane wymienia się w XML, a odczyt może zwracać także JSON.
- Zdarzenia. Podstawowa instalacja nie wysyła webhooków tak jak platformy SaaS. Nowe zamówienie zgłasza mały moduł podpięty pod hook wywoływany po zatwierdzeniu zamówienia albo integracja odpytuje API co kilka minut.
Zakres zasobów i zachowanie API zależą od wersji PrestaShop, więc przed projektem sprawdzam je w dokumentacji i na kopii Twojego sklepu, a nie na czystej instalacji.
Dlaczego aktualizacja PrestaShop psuje moduły
Nadpisania klas
Moduły podmieniają fragmenty kodu sklepu. Po aktualizacji oryginał się zmienia, a nadpisanie zostaje stare, co kończy się błędem albo cichą zmianą działania.
Nowa wersja PHP
Hosting podnosi PHP, a moduł napisany dawno temu przestaje się ładować. Zwykle wychodzi to dopiero przy pierwszym zamówieniu po zmianie.
Zmienione hooki i pola
Między głównymi wersjami sklepu zmieniają się nazwy i parametry hooków oraz pola w API. Moduł podpięty pod stary hook po prostu przestaje się wywoływać.
Konflikty między modułami
Dwa moduły modyfikują to samo zamówienie albo te same stany. O wyniku decyduje kolejność ich działania, a po aktualizacji ta kolejność może się zmienić.
Moja lista przed każdą aktualizacją sklepu
- Kopia sklepu na serwerze testowym z bazą z ostatnich dni.
- Aktualizacja na kopii i przepuszczenie zestawu zamówień: zwykłe, z kombinacją, z rabatem i anulowane.
- Przegląd dziennika integracji: czy każde zamówienie dotarło do ERP i czy stany wróciły do sklepu.
- Aktualizacja produkcji poza godzinami sprzedaży, z kolejką, która w tym czasie wstrzymuje wysyłkę danych.
- Pierwszy dzień po aktualizacji z podglądem błędów na bieżąco.
Ta lista działa tylko wtedy, gdy integracja nie siedzi w nadpisaniach. Dlatego nowy kod piszę bez nadpisywania klas sklepu, a stary przy okazji przeglądu przenoszę na zewnątrz.
Z czym najczęściej łączę PrestaShop
Magazyn i dokumenty to zwykle Subiekt lub Optima, a szczegóły po ich stronie opisują teksty o integracji Subiekta i Comarch Optimy. Faktury i numery KSeF obsługuje program do faktur, o czym piszę w tekstach automatyzacja fakturowania oraz KSeF w sklepie internetowym; stronę podatkową potwierdź z księgową, bo to nie porada podatkowa. Cenniki dostawców to integracja z hurtownią XML, a etykiety i paczkomaty to integracja z InPost i kurierami.
Gdy obok sklepu sprzedajesz na Allegro lub Empiku, sprawdzam, czy prościej nie będzie zebrać zamówień w BaseLinkerze, jak na stronie integracja BaseLinker. Resztę procesów sprzedaży online porządkuje strona co zautomatyzować w sklepie internetowym.
Usługa łącząca PrestaShop z jednym systemem kosztuje od około 800 zł netto. Gdy systemów jest kilka, a logikę trzeba przenieść z istniejących modułów i obsłużyć stany w obie strony, to projekt od około 2000 zł netto.
Najczęstsze pytania
Mam starą wersję PrestaShop. Czy da się ją zintegrować bez aktualizacji?
Zwykle tak, bo Webservice jest w sklepie od dawna. Najpierw sprawdzam jednak, czy stara wersja i jej PHP są jeszcze bezpieczne, bo integracja z nieaktualizowanym sklepem przenosi ryzyko na kolejne systemy.
Czy odpytywanie API co kilka minut obciąży serwer sklepu?
Przy rozsądnym odstępie i pobieraniu tylko zmian od ostatniego razu nie. Gdy zamówień jest dużo, wolę moduł zgłaszający zdarzenia, bo wtedy integracja pyta sklep tylko wtedy, gdy coś się wydarzyło.
Kupiłem moduł do Subiekta i przestał działać po aktualizacji. Co teraz?
Najpierw sprawdzam, czy autor wydał wersję zgodną z Twoją wersją sklepu. Jeśli nie, mogę przenieść tę wymianę do usługi poza sklepem, z Webservice po stronie PrestaShop i interfejsem Subiekta po drugiej stronie.
Czy kilka sklepów PrestaShop może korzystać z jednego magazynu?
Tak. Z jednym ERP da się połączyć zarówno tryb wielu sklepów w jednej instalacji, jak i osobne instalacje. Ważne, żeby każdy sklep miał jasno przypisany magazyn i ceny, a stany zmniejszały się wspólnie.
Powiązane strony
Masz PrestaShop i obawiasz się aktualizacji?
Napisz, jaką wersję sklepu masz, jakie moduły integracyjne są zainstalowane i z czym sklep ma się łączyć.