GitHub to miejsce, w którym powstaje PrestaShop, a nie sklep, który klient dostaje do ręki. Oficjalna organizacja PrestaShop zawiera repozytorium Core (PrestaShop/PrestaShop), repozytoria modułów natywnych i motyw classic, ale paczki instalacyjne dla produkcji są przygotowywane osobno. Branch develop to bieżąca praca nad kodem, a tagi typu 8.1.x czy 8.2.x odpowiadają wydaniom. Poniżej porządkujemy pojęcia, pokazujemy jak odsiać wiarygodne repozytoria od porzuconych forków i kiedy w ogóle warto klonować kod. Jeśli szukasz gotowego wdrożenia, a nie pracy z kodem źródłowym, zajrzyj do naszego PrestaShop wprowadzenia.
GitHub to warsztat, w którym powstaje PrestaShop, a nie sklep, który dostajesz do ręki. Cały kod źródłowy leży w organizacji PrestaShop. Najważniejsze repozytorium to PrestaShop/PrestaShop – pełny Core: kontrolery, klasy, szablony Smarty, instalator, tłumaczenia. Obok niego funkcjonują osobne repozytoria modułów natywnych (m.in. blockreassurance, ps_checkpayment) i motywu classic. Każde z nich ma własne wersjonowanie i własny cykl wydań – moduł działający na 1.7 nie musi działać na 8.2, mimo że leży w tej samej organizacji.
Drugie rozróżnienie, które najczęściej myli się w praktyce: develop vs tagi. Branch develop to bieżąca praca programistów – kod między commitami bywa niespójny, funkcje są w połowie, a testy nie przechodzą. Tagi (np. 8.1.x, 8.2.x) to zamrożone stany kodu odpowiadające konkretnym wydaniom. Gdy sprawdzasz, czy błąd w sklepie klienta jest błędem PrestaShop, patrz na tag zgodny z jego wersją, nie na develop. Inaczej porównujesz dwie różne rzeczy i wyciągasz błędne wnioski.
Trzecia rzecz: instalacja z GitHuba to nie instalacja produkcyjna. Repozytorium nie zawiera skompilowanych assetów (CSS/JS), nie ma w nim zależności PHP pobieranych przez Composer ani finalnej struktury paczki. Paczki release dla produkcji są przygotowywane i publikowane osobno. Klonowanie kodu ma sens w trzech sytuacjach: zgłaszasz błąd, piszesz pull request albo chcesz przetestować poprawkę przed wydaniem. W pozostałych przypadkach tracisz czas.
Z naszych wdrożeń: większość zgłoszeń „PrestaShop ma błąd, widziałem to na GitHubie” dotyczy kodu z develop, który nigdy nie trafił do wydania. Zanim zaczniesz panikować, sprawdź, jak czytane są wydania PrestaShop i kiedy warto aktualizować.
| Repozytorium | Co zawiera | Kiedy realnie zaglądasz |
|---|---|---|
| PrestaShop/PrestaShop | Core, instalator, panel administracyjny | analiza błędu, test poprawki przed aktualizacją |
| blockreassurance | moduł natywny z sekcją zaufania | sprawdzenie zmian w module po aktualizacji sklepu |
| ps_checkpayment | moduł płatności przelewem | weryfikacja logiki płatności i statusów zamówień |
| classic | domyślny motyw | punkt odniesienia przy nadpisywaniu szablonów |
Szukając modułu na GitHubie, wpisujesz frazę i dostajesz kilkanaście wyników. Pierwszy z listy bywa forkiem porzuconym trzy lata temu. Sprawdzasz więc cztery liczby: liczbę commitów (kilka commitów to zwykle eksperyment, nie produkt), datę ostatniej aktywności, liczbę otwartych issues i tempo odpowiedzi na nie oraz obecność pliku LICENSE. Brak licencji to nie formalność – bez niej nie masz jasno określonych praw do używania kodu w komercyjnym sklepie.
Fork poznasz po etykiecie „forked from …” pod nazwą repozytorium i po tym, że nie ma własnych release’ów ani tagów. Skutek przy aktualizacji PrestaShop jest banalnie prosty: nie ma się do czego odwołać. Gdy przechodzisz z PHP 7.4 na 8.1/8.2, porzucony moduł sypie błędami (typowo: dynamiczne właściwości, przestarzałe funkcje mcrypt, brak wsparcia dla intl), a Ty nie masz skąd pobrać poprawki. Zostaje własny patch albo wymiana modułu – obie opcje generują koszt, którego nikt nie zaplanował w budżecie.
Konkretne sygnały ostrzegawcze:
composer.json zapis "php": ">=7.1" przy sklepie na PHP 8.2,tests/ i brak CI (GitHub Actions),Zanim wgrasz moduł na produkcję, otwórz composer.json i config.xml: sprawdź wymagania PHP, rozszerzenia (intl, gd, zip) i deklarowaną wersję MySQL/MariaDB. Strukturę modułu i wymagania opisuje dokumentacja dla deweloperów PrestaShop. Jeśli nie chcesz analizować kodu, zleć to komuś, kto robi wdrożenia PrestaShop na co dzień – taniej niż gaszenie sklepu po nieudanej instalacji.
To procedura dla środowiska lokalnego albo stagingowego. Nigdy na sklepie klienta.
Wymagania wstępne: Git, Composer 2, Node.js LTS + npm, PHP 8.1 lub 8.2 z rozszerzeniami intl, mbstring, gd, zip, curl, pdo_mysql, MySQL 5.7+/MariaDB 10.4+, oraz Laragon, DDEV albo Docker. Bazę twórz z kodowaniem utf8mb4 – konwersja później to niepotrzebna robota.
Kolejność działań:
git clone --branch 8.1.x https://github.com/PrestaShop/PrestaShop.git – klonuj tag/branch wydania, nie develop, jeśli nie testujesz konkretnej poprawki.composer install w katalogu głównym – pobiera zależności PHP. Bez tego instalator w przeglądarce się nie uruchomi.npm install, a następnie skrypt budujący assety administracyjne z package.json. Motyw classic ma osobny katalog _dev z własnym package.json – assety motywu kompilujesz tam. Nazwy skryptów różnią się między wersjami, więc sprawdź sekcję scripts w package.json swojej wersji, zamiast kopiować komendę z bloga.app/config/parameters.php: w części wydań znajdziesz wzór z rozszerzeniem .dist. Jeśli go nie ma, parameters.php wygeneruje instalator w przeglądarce. Wpisujesz tam host, nazwę bazy, użytkownika, hasło i prefiks tabel.var/, img/, modules/, app/config/, translations/ zapisywalne dla użytkownika PHP (np. www-data), typowo 755 dla katalogów i 644 dla plików. Nie ustawiaj 777 „na wszelki wypadek”.Ostrzeżenie: branch develop może zawierać niedokończone zmiany i nie jest wspierany produkcyjnie. Instalator może się wywalić w połowie, a migracje bazy nie przejść. Testuj na kopii bazy, nie na danych klienta. Jeśli dopiero porównujesz wersje, zamiast klonować kod, wygodniej zacząć od wersji demo i sprawdzenia, co realnie działa przed wdrożeniem, a przy własnych szablonach przeczytaj, jak wygląda wybór i wdrożenie motywu PrestaShop.
Moduł w PrestaShop to katalog, którego nazwa musi być identyczna z nazwą pliku głównego: /modules/mojmodul/mojmodul.php. Układ, który przechodzi walidację i nie sprawia kłopotów przy aktualizacjach:
mojmodul.php – klasa dziedzicząca po Module; w konstruktorze name, version, author, ps_versions_compliancy,controllers/front/ i controllers/admin/ – kontrolery frontu i zaplecza,views/templates/front/, views/templates/admin/, views/css/, views/js/,translations/pl.php oraz pozostałe pliki językowe,upgrade/upgrade-1.4.0.php – skrypty migracji uruchamiane przy aktualizacji modułu,config.xml – metadane czytane przez panel i Addons,vendor/ – zależności Composera, poza repozytorium.Wersję trzymasz w dwóch miejscach: $this->version = '1.4.2' w pliku głównym oraz w config.xml. Jeśli te wartości się rozjadą, panel może nie zaproponować aktualizacji, a osoba utrzymująca sklep nie odtworzy stanu kodu. Semver stosuj dosłownie: MAJOR, gdy zmieniasz sygnaturę hooka, usuniesz opcję konfiguracyjną albo strukturę tabeli; MINOR, gdy dodajesz nowy hook, kontroler lub ustawienie; PATCH przy poprawkach, które nie zmieniają API modułu.
Wydanie zamykasz tagiem: git tag -a v1.4.2 -m "wydanie 1.4.2", potem git push origin v1.4.2. Paczkę ZIP budujesz tak, aby w archiwum był katalog modułu, a nie luźne pliki – inaczej panel zwróci błąd struktury archiwum. W .gitignore trzymaj vendor/, node_modules/, var/cache/, *.zip, .idea/, .env. Kluczy API (płatności, kurierzy, BaseLinker) nie commituj nigdy – w historii Git zostają na zawsze. Trzymaj je w konfiguracji sklepu lub poza repozytorium, a jeśli już wyciekły, natychmiast rotuj klucz. Jeśli moduły ma utrzymywać ktoś z zewnątrz, ustal to wcześniej – to wątek, który rozwijamy w tekście o tym, jak wygląda praca przy PrestaShop i ile realnie zajmuje utrzymanie sklepu: role, stawki i godziny utrzymania sklepu. Punkt odniesienia dla struktury modułu znajdziesz w dokumentacji dla deweloperów PrestaShop.
| Zmiana | Podbicie wersji | Przykład | Co widzi klient |
|---|---|---|---|
| Zmiana sygnatury hooka, usunięcie opcji, zmiana tabeli | MAJOR | 1.3.7 → 2.0.0 | Konieczna aktualizacja motywu lub integracji |
| Nowy hook, nowa zakładka w panelu, nowe ustawienie | MINOR | 1.3.7 → 1.4.0 | Można wgrać bez zmian w motywie |
| Poprawka błędu bez zmiany API | PATCH | 1.3.7 → 1.3.8 | Aktualizacja bezpieczna |
Dobry issue to instrukcja odtworzenia, nie opis frustracji. Kolejność działania jest zawsze taka sama:
classic i wyłączonymi modułami zewnętrznymi. Jeśli błąd znika – to nie Core.PrestaShop/PrestaShop, wypełniając szablon issue.Co musi znaleźć się w zgłoszeniu: wersja PrestaShop i PHP, wersja MySQL, dokładne kroki reprodukcji (1., 2., 3.), oczekiwany i faktyczny wynik, pełny stack trace oraz fragment logu z var/logs/ (dev.log lub prod.log), lista modułów zewnętrznych i nazwa motywu. Włącz tryb debug w Advanced Parameters → Performance, wyczyść cache i powtórz test – bez tego połowa zgłoszeń wraca z prośbą o uzupełnienie.
Zanim wpiszesz cokolwiek w Issues, sprawdź, czy nie modyfikowaliście plików rdzenia, czy w override/ nie ma nadpisań z poprzedniej wersji i czy winny nie jest moduł płatności lub dostawy. Błędy konfiguracji, limity PHP, OPcache i uprawnienia do katalogu var/ szybciej rozwiążesz na forum PrestaShop lub pisząc do autora modułu. GitHub Issues służy do błędów Core i propozycji zmian kodu, nie do pytań typu „jak ustawić podatek”.
Pull requesty: fork repozytorium, branch od develop, zmiany zgłaszasz do develop, nie do master. Zacznij od małych poprawek – literówka w tłumaczeniu, brakujący typ w PHPDoc, walidacja w kontrolerze. Mały PR przechodzi review w kilka dni, a duży refaktor potrafi leżeć tygodniami. Zasady kontrybucji są opisane w plikach CONTRIBUTING i szablonach issue w repozytorium – przeczytaj je przed pierwszym commitem.
| Kanał | Do czego służy | Czego tam nie zgłaszamy |
|---|---|---|
| GitHub Issues (PrestaShop/PrestaShop) | Potwierdzone błędy Core, propozycje zmian, PR-y | Pytania o konfigurację sklepu, prośby o darmowe poprawki modułu |
| Forum PrestaShop i kanały społeczności | Pytania „jak to ustawić”, dyskusje o wdrożeniach | Błędy Core bez kroków reprodukcji |
| Zgłoszenie do autora modułu | Błędy modułu z Addons, konflikt z motywem | Problemy wynikające z edycji plików rdzenia |
| Kanał prywatny zespołu bezpieczeństwa | Podatności i wycieki danych | Publiczne opisywanie podatności przed naprawą |
Najczęstsza przyczyna sklepu, który po aktualizacji się nie podnosi, jest prosta: ktoś poprawił plik w classes/ albo controllers/, wrzucił zmianę do repozytorium i wdrożył na produkcję. Przy kolejnej aktualizacji nowa wersja nadpisuje ten plik albo – gorzej – ona sama się nie aplikuje, bo plik różni się od oryginału. Zasada jest jedna: Core zostaje bez modyfikacji.
Zmiany funkcjonalne robisz przez override/classes/ i override/controllers/, własne moduły w modules/, a wygląd w themes/. Każdy z tych obszarów trzymaj w osobnym repozytorium – moduł w swoim, motyw w swoim. Wtedy aktualizacja Core nie wchodzi w konflikt z Twoją pracą, a Ty widzisz w historii commitów, co zmieniła Twoja firma, a co przyszło z zewnątrz.
Przed wdrożeniem zawsze staging: kopia plików i bazy, aktualizacja na kopii, test koszyka, płatności, wysyłki, maili i panelu. Backup bazy wykonaj bezpośrednio przed deploymentem (mysqldump z pełnym zrzutem, nie tylko eksport tabel), a pliki zabezpiecz snapshotem serwera – nie licz na to, że „cofniesz Git-em” aktualizację, która zdążyła zmienić schemat bazy. Po aktualizacji sprawdź, czy override/ działa z nowym Core, wyczyść cache i wygeneruj ponownie .htaccess oraz mapę URL-i. Jeśli motyw bazuje na classic, nie edytuj katalogu classic – trzymaj własny motyw, żeby aktualizacja go nie nadpisała. Kupionych modułów z Addons zwykle nie commitujemy ze względu na licencje – aktualizuj je z panelu, a w repozytorium trzymaj tylko te pisane na zamówienie. Warto też śledzić numery wydań, bo nie każda gałąź, np. 8.1.x, wymaga natychmiastowej aktualizacji – pomaga w tym nasze zestawienie PrestaShop news: jak czytać wydania i kiedy aktualizować.
| Ścieżka | Repozytorium | Co się dzieje przy aktualizacji Core |
|---|---|---|
| classes/, controllers/, config/ (Core) | brak – tylko do porównania diffem | Pliki nadpisywane nową wersją |
| override/ | osobne repo, np. sklep-overrides | Zostaje, ale wymaga sprawdzenia zgodności z nowym Core |
| modules/mojmodul/ | repo modułu, tagowane wersje | Zostaje, aktualizujesz świadomie |
| themes/mojmotyw/ | repo motywu | Zostaje, wymaga testów po zmianie Core |
| themes/classic/ | nie edytować | Nadpisywane bez ostrzeżenia |
Zanim sklonujesz cokolwiek z PrestaShop GitHub, otwórz plik LICENSE w katalogu głównym repozytorium. Rdzeń (PrestaShop/PrestaShop) działa na Open Software License 3.0 (OSL-3.0), czyli licencji copyleft. To nie jest „róbta, co chceta”.
Co to znaczy w praktyce:
/override/ i modyfikacje motywu zostają Twoją sprawą.Licencja rdzenia to jedno, licencje modułów to drugie. Moduły natywne w organizacji PrestaShop mają własne pliki LICENSE – najczęściej OSL-3.0 lub AFL-3.0, ale nie zakładaj tego z góry, tylko sprawdź. Moduły z Addons mają licencję producenta: zwykle własnościową, przypisaną do jednej domeny, z zakazem redystrybucji. Wrzucenie takiego kodu do publicznego repozytorium to najczęstszy błąd, jaki widzimy w audytach.
Prawnika warto zaangażować w trzech sytuacjach: chcesz sprzedawać lub udostępniać zmodyfikowany rdzeń albo jego pochodną, łączysz kod OSL-3.0 z własnym kodem, który ma zostać zamknięty, budujesz moduł na bazie cudzego kodu i planujesz go dystrybuować. Dokumentacja deweloperska PrestaShop opisuje strukturę kodu i hooki, ale nie zastąpi analizy licencyjnej. Jeśli nie chcesz wchodzić w temat kodu źródłowego, sprawdź, ile realnie kosztuje wdrożenie PrestaShop, i porównaj to z własnymi godzinami pracy.
| Element | Typowa licencja | Dystrybucja zmodyfikowanej wersji |
|---|---|---|
| Rdzeń PrestaShop/PrestaShop | OSL-3.0 | Wymagane udostępnienie źródeł na OSL-3.0 |
| Moduły natywne z organizacji PrestaShop | Plik LICENSE w repo (często OSL-3.0 lub AFL-3.0) | Zależnie od pliku LICENSE – sprawdź przed użyciem |
| Moduły komercyjne z Addons | Licencja producenta, zwykle własnościowa, 1 domena | Zwykle zakaz redystrybucji |
| Twój moduł wewnętrzny | Twoja licencja | Bez ograniczeń z OSL-3.0 |
GitHub ma sens wtedy, gdy wchodzisz w kod świadomie i masz czas go utrzymywać. Trzy scenariusze, w których warto działać samodzielnie:
.gitignore: app/config/parameters.php (1.7 i 8.x) oraz settings.inc.php (1.6) nie mogą trafić do repozytorium.Temat warto oddać, gdy pojawia się migracja 1.6 → 8.x (motyw, override'y, moduły bez wsparcia), integracja z ERP (Subiekt GT/nexo, Comarch Optima, Baselinker), optymalizacja wydajności (Core Web Vitals, cache, indeksy w bazie przy 20+ GB) albo obsługa serwera (PHP-FPM, MariaDB, Redis, kopie zapasowe, WAF, aktualizacje bezpieczeństwa). Jedna pomylona aktualizacja na produkcji kosztuje więcej niż cały etap prac.
Opieka po wdrożeniu w praktyce wygląda tak: reakcja na zgłoszenie krytyczne w 4 h w dni robocze, pozostałe zgłoszenia do 1 dnia roboczego, kopia zapasowa co 24 h z testem odtworzenia raz na kwartał, aktualizacje modułów i motywu najpierw na staging, monitoring dostępności i raport miesięczny. Zakres godzinowy i stawki opisujemy szerzej w materiale o pracy przy PrestaShop i godzinach utrzymania sklepu.
Punkt wejścia dla firm, które potrzebują wsparcia zamiast eksperymentów: zaplecze PrestaShop DropDigital.
| Zadanie | Orientacyjny czas pracy | Rekomendacja |
|---|---|---|
| Prosty moduł wewnętrzny (eksport CSV, pole w formularzu) | 16–40 h | Można zrobić samodzielnie |
| Moduł z integracją API (płatności, kurier, faktury) | 40–120 h | Zależnie od doświadczenia zespołu |
| Migracja 1.6 → 8.x z motywem i modułami | 80–250 h | Zleć – ryzyko przestoju sprzedaży |
| Integracja z ERP (Subiekt, Comarch, Baselinker) | 60–160 h | Zleć – wymaga testów na żywych danych |
| Optymalizacja wydajności (Core Web Vitals, baza) | 40–100 h | Zleć po audycie |
| Opieka po wdrożeniu (SLA, aktualizacje, kopie) | 8–20 h/mies. | Zleć, jeśli nie masz etatu na utrzymanie |
Instalowanie PrestaShop na produkcji wprost z brancha develop, bo ma najnowsze funkcje.
Jak wykryć: W panelu sklepu wersja zawiera dopisek dev, a pliki zmieniają się bez Twojej ingerencji po każdym pobraniu kodu.
Jak naprawić: Zatrzymaj wdrożenie i pobierz oficjalną paczkę wydania z sekcji Releases w repozytorium PrestaShop/PrestaShop albo z prestashop.com. Branch develop trzymaj wyłącznie na środowisku lokalnym.
Pobieranie modułu z przypadkowego forka zamiast z repozytorium autora lub z panelu Addons.
Jak wykryć: Nad nazwą repozytorium widnieje informacja typu forked from, a ostatni commit forka jest starszy niż w oryginale.
Jak naprawić: Wejdź w oryginalne repozytorium autora, porównaj historię commitów i pobierz paczkę ZIP z tagu wydania. Fork traktuj jako kod do czytania, nie jako źródło aktualizacji.
Wgranie modułu sklonowanego z GitHuba bez uruchomienia composer install, co kończy się błędem brakującej klasy.
Jak wykryć: Po instalacji w panelu pojawia się biały ekran lub komunikat o nieznalezionej klasie, a w katalogu modułu nie ma folderu vendor/.
Jak naprawić: Przed instalacją sprawdź plik composer.json, uruchom composer install bez flagi --no-dev i dopiero potem spakuj katalog modułu do ZIP.
Commitowanie do repozytorium katalogów vendor/, node_modules/, cache/ oraz kluczy API i haseł do bazy.
Jak wykryć: git status pokazuje setki plików bibliotek, a w historii commitów da się znaleźć plik parameters.php lub plik z tokenem.
Jak naprawić: Dodaj .gitignore na początku pracy, wycofaj wrażliwe pliki z historii i unieważnij ujawnione klucze. Klucze trzymaj w zmiennych środowiskowych lub w pliku poza repozytorium.
Zgłaszanie jako błąd Core sytuacji, która wynika z konfiguracji sklepu lub modułu zewnętrznego.
Jak wykryć: Po wyłączeniu modułu zewnętrznego lub powrocie do motywu classic problem znika, a na czystej instalacji nie da się go odtworzyć.
Jak naprawić: Przeprowadź test na czystej instalacji z domyślnym motywem i bez modułów zewnętrznych. Jeśli błąd nadal występuje, zgłoś go w repozytorium Core z krokami reprodukcji.
Zadawanie pytań o wdrożenie i konfigurację w GitHub Issues zamiast na forum lub Slacku.
Jak wykryć: Issue zostaje zamknięte z etykietą pytania lub brakiem informacji, a odpowiedzi nie ma.
Jak naprawić: Do Issues trafiają błędy i propozycje zmian w kodzie (Pull Requesti). Pytania o hosting, konfigurację i wybór modułów kieruj na forum lub kanały społeczności.
GitHub to warsztat, w którym powstaje PrestaShop, a nie kanał dystrybucji gotowego sklepu. Repozytorium Core, moduły natywne i motyw classic są publiczne, ale do produkcji trafiają paczki wydań, nie branch develop. Przy modułach z GitHuba oceniaj datę ostatniego commita, licencję, otwarte zgłoszenia i wymagania w composer.json, zanim cokolwiek wgrasz. Wiarygodność źródła sprawdzasz przed instalacją, nie po awarii sklepu.
Technicznie tak, ale nie powinieneś. Branch develop zawiera niedokończone zmiany i nie jest wspierany produkcyjnie, a kod z repozytorium nie przechodzi procesu przygotowania paczki wydania. Do produkcji używaj paczki z sekcji Releases albo z prestashop.com.
Develop to bieżąca praca nad kodem: zmiany trafiają tam codziennie, bez gwarancji stabilności. Tag, np. 8.1.x, oznacza konkretny punkt w historii odpowiadający wydaniu i to on jest podstawą paczek instalacyjnych. Jeśli nie rozwijasz samego PrestaShop, pracuj na tagach.
Sprawdź cztery rzeczy: datę ostatniego commita, liczbę otwartych zgłoszeń i tempo odpowiedzi autora, obecność pliku LICENSE oraz wymagania w composer.json. Dodatkowo porównaj wersję w config.xml z tagiem wydania. Brak testów i brak zmian od ponad 18 miesięcy to sygnały ostrzegawcze.
Błędy w samym Core zgłaszaj w GitHub Issues w repozytorium PrestaShop/PrestaShop, podając wersję sklepu, wersję PHP, kroki reprodukcji, wynik oczekiwany i faktyczny oraz logi. Forum i Slack służą do pytań o wdrożenia, konfigurację i wybór rozwiązań. Błąd modułu zewnętrznego zgłoś w repozytorium jego autora.
Sam fork nie jest wadą, ale bywa pułapką. Jeśli korzystasz z forka, tracisz aktualizacje i poprawki bezpieczeństwa z oryginału, a przy aktualizacji PrestaShop możesz zostać z kodem, którego nikt nie utrzymuje. Fork ma sens wtedy, gdy sam wprowadzasz zmiany i jesteś w stanie je utrzymywać.
Nie. Sklep produkcyjny aktualizujesz z panelu i z paczek wydań, a moduły wgrywasz z plików ZIP. Git przydaje się wtedy, gdy sam tworzysz moduły, śledzisz zmiany w motywie albo pracujesz z agencją, która wersjonuje kod.
Jeśli chcesz zweryfikować, które moduły i rozszerzenia w Twoim sklepie są bezpieczne po aktualizacji, napisz do nas – sprawdzimy kod i wymagania środowiska. Punktem wyjścia jest dokumentacja dla deweloperów dostępna pod devdocs.prestashop-project.org, a zakres prac omówimy na bieżąco z wydaniami PrestaShop.