VulCode

Moduły i integracje PrestaShop z ERP, płatnościami i kurierami

PrestaShop daje trzy drogi do danych sklepu: Webservice, nowe Admin API z wersji 9 i własny moduł, który reaguje na zdarzenia w sklepie. Dobieramy drogę do procesu i piszemy moduły, które przetrwają kolejną aktualizację.

Platformy sklepowe
Kolejka zdarzeń modułu PrestaShop w panelu integracji: moduł zapisuje zdarzenia sklepu, a zadanie w tle wysyła je do ERP, także po awarii

Trzy drogi do danych PrestaShop

Każda nadaje się do czego innego, więc do każdego zadania bierzemy tę, która zrobi je najpewniej. Często integracja łączy dwie.

Nowe zamówienie trafia do ERP

Webservice albo Admin API
z zewnątrz sklepu
  1. Integracja regularnie pyta sklep o zamówienia, bo API nie reaguje na zdarzenia w sklepie.
  2. Klucz z dostępem tylko do zamówień.
  3. Zamówienie dociera przy kolejnym odczycie.
Własny moduł
kod w sklepie
  1. Moduł reaguje na nowe zamówienie w trakcie zakupu.
  2. Moduł tylko zapisuje zdarzenie w swojej tabeli, więc klient nie czeka.
  3. Zadanie w tle wysyła je do ERP, także gdy ERP wróci po awarii.
Wniosek dla tego przykładu: Własny moduł

Moduł, bo tylko on reaguje na zdarzenia w sklepie.

Stan z ERP do sklepu na PrestaShop 8

Webservice albo Admin API
z zewnątrz sklepu
  1. Webservice działa w PrestaShop 8, Admin API dopiero od 9.
  2. Klucz ma dostęp tylko do stanów magazynowych.
  3. Każdy zapis stanu wskazuje, którego sklepu dotyczy.
Własny moduł
kod w sklepie
  1. Moduł też działa w 8, ale ma pełny dostęp do sklepu.
  2. Pełne uprawnienia oznaczają kod do przejrzenia.
  3. Przy aktualizacji sklepu musi mieć zgodny zakres wersji.
Wniosek dla tego przykładu: Webservice albo Admin API

Webservice z kluczem tylko do stanów: najmniej uprawnień, działa w 8 i 9.

Złożona operacja w sklepie

Webservice albo Admin API
z zewnątrz sklepu
  1. Webservice tylko czyta i zapisuje obiekty, więc złożonej akcji nie wykona.
  2. Admin API z PrestaShop 9 wykonuje ją jako jedną operację sklepu.
  3. Dostęp z wąskimi uprawnieniami, w działającym sklepie tylko przez szyfrowane połączenie.
Własny moduł
kod w sklepie
  1. Moduł ma dostęp do całej logiki sklepu.
  2. Działa także w PrestaShop 8.
  3. Kod trzeba przejrzeć, bo uprawnienia są pełne.
Wniosek dla tego przykładu: Zależy od wersji

W PrestaShop 9 Admin API z zakresami, w 8 własny moduł.

Webservice tylko odczytuje i zapisuje dane, więc złożonej akcji nie wykona. Admin API z PrestaShop 9 wykonuje całe operacje sklepu, a moduł ma dostęp do całej jego logiki.

Moduł, który zgłasza zamówienia do integracji

Hooki działają w trakcie składania zamówienia przez klienta, więc moduł tylko zapisuje zdarzenie. Wysyłka do ERP idzie w tle.

  1. Sklep

    klient składa zamówienie
    • nowe zamówienie
    • zmiana statusu zamówienia
    Zakup kończy się bez czekania na ERP

    Moduł reaguje na dwa zdarzenia sklepu: nowe zamówienie i zmianę jego statusu.

  2. Tabela modułu

    Kolejka zdarzeń
    zdarzeniezamówieniestan
    nowe zamówienie1047wysłane
    zmiana statusu1039czeka
    nowe zamówienie1031czeka

    Moduł ma zapisany zakres wersji PrestaShop, z którymi działa, bo przy aktualizacji niezgodne moduły są odinstalowywane.

  3. Zadanie w tle

    w kolejności zdarzeń

    Gdy ERP nie odpowiada, zdarzenie zostaje w tabeli i wychodzi przy kolejnym przebiegu.

    przerwa
  4. ERP

    nie odpowiada

    Zdarzenia z czasu awarii wychodzą, gdy znowu odpowiada.

Stan produktu w PrestaShop a kartoteka w ERP

Każdy wariant produktu, w PrestaShop zwany kombinacją, ma osobny stan. Tak łączymy go z kartoteką w ERP.

Stan kombinacji produktu w PrestaShop i w ERP dla dwóch sklepów jednej instalacji, z kluczem Webservice i odczytem stanów
PrestaShopERP albo hurtownia
  • produkttowar w kartotece

    Przez mapę produktów po kodzie.

  • kombinacja, czyli wariantwariant, np. rozmiar

    Każda kombinacja ma własny wiersz stanu.

  • ilośćstan dostępny

    Ze źródła prawdy, bez sumowania w dwóch miejscach.

  • sprzedaż przy brakuzasada sprzedaży przy braku

    Ustalana raz, razem z Tobą.

  • sklepmagazyn albo kanał

    Przy kilku sklepach w jednej instalacji.

Każda zmiana stanu w sklepie uruchamia zdarzenie, z którego moduł może od razu wysłać nowy stan dalej.

Zasady Webservice, które kształtują integrację

Większość problemów z integracjami PrestaShop zaczyna się od jednej z tych zasad, więc każdą ustawiamy od pierwszego dnia.

  • Webservice: domyślnie wyłączony
    Webservice: włączony, gdy integracja go używa

    Włączenie

    Włączamy go tylko wtedy, gdy integracja go używa.

  • ••••••••••••••••••••••••••••Q7KD32 znaki
    odczytzapis
    stany magazynowe
    produkty
    zamówienia

    Pozostałe dane: brak dostępu.

    Klucz

    Osobny klucz na integrację, tylko z dostępem do potrzebnych danych.

  • Zapytanie integracji o stany
    klucz w ukrytej części zapytaniabez hasła
    klucz w adresie

    Klucz poza adresem

    Klucz nigdy nie trafia do adresu, gdzie zostałby w dziennikach serwera.

  • Odczyt
    lekki format JSON
    ilość: 6
    Zapis
    pusty wzór z PrestaShop
    ilość: do uzupełnienia

    Odczyt i zapis

    Czytamy w lekkim formacie JSON, a zapisujemy według pustego wzoru z PrestaShop, więc zapis ma dokładnie taki kształt, jakiego oczekuje sklep.

  • zapytanie dla sklepu 1
    Sklep 1, detalSklep 2, hurt

    Klucz przypisany do obu sklepów, a zapytanie wskazuje jeden.

    Wiele sklepów

    Każde zapytanie z jawnym sklepem, żeby stan nie trafił do złego.

Aktualizacja sklepu z własnymi modułami

Asystent aktualizacji robi kopię i aktualizację sklepu, a my pilnujemy modułów i integracji, żeby po aktualizacji wszystko działało.

Plan aktualizacji sklepu do PrestaShop 9.0 w panelu integracji: etapy, wymagania PHP obu serwerów, spis modułów z zakresem zgodności i testy na kopii
  1. Spis modułów

    Sprawdzamy zakres wersji każdego modułu i to, czy ma wersję dla docelowego PrestaShop.

    Każdy moduł ma zapisany zakres wersji PrestaShop, z którymi działa, np. od 8 do 9.

    Wynik: lista: aktualizacja, zamiana, przepisanie

  2. Kopia sklepu

    Aktualizujemy kopię na serwerze testowym z właściwą wersją PHP.

    Sprawdzamy, czy serwer ma wersję PHP, której wymaga nowy PrestaShop.

    Wynik: działająca kopia na nowej wersji

  3. Moduły i integracje

    Poprawiamy własne moduły i sprawdzamy zamówienie, płatność i wysyłkę od początku do końca.

    Asystent aktualizacji odinstaluje moduł niezgodny z nową wersją.

    Wynik: lista sprawdzonych procesów

  4. Produkcja

    Kopia zapasowa, aktualizacja w trybie konserwacji i lista kontrolna po aktualizacji.

    Wynik: sklep na nowej wersji

Najczęstsze pytania o PrestaShop

Odpowiedzi o wersjach, aktualizacji, wydajności, awariach ERP, modułach i wycenie.

Masz sklep na PrestaShop?

Napisz, jaką masz wersję i co chcesz połączyć albo zaktualizować. Odpowiemy w godzinę z pytaniami i wyceną.