Przejdź do treści

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

WariantGdzie działaCo zyskujeszRyzyko przy aktualizacji
Moduł z PrestaShop Addons lub od producenta programuw sklepieszybki start i gotowe ustawieniazależysz od autora, który musi nadążyć za nowymi wersjami
Moduł pisany na zamówieniew sklepiepełne dopasowanie do procesukod żyje w sklepie, więc każda większa aktualizacja wymaga przeglądu
Usługa zewnętrzna przez Webservicena osobnym serwerze albo w n8nczysty sklep i błędy w jednym dziennikuzmiany 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

  1. Kopia sklepu na serwerze testowym z bazą z ostatnich dni.
  2. Aktualizacja na kopii i przepuszczenie zestawu zamówień: zwykłe, z kombinacją, z rabatem i anulowane.
  3. Przegląd dziennika integracji: czy każde zamówienie dotarło do ERP i czy stany wróciły do sklepu.
  4. Aktualizacja produkcji poza godzinami sprzedaży, z kolejką, która w tym czasie wstrzymuje wysyłkę danych.
  5. 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ć.