Zawartość artykułu
Błąd podczas aktualizacji PrestaShop
Podczas aktualizacji sklepu w finalnej dla 1.7 (na czas pisania tego artykułu) wersji: 1.7.8.11 do najnowszej (obecnie) wersji PrestaShop 8.1.6 występuje błąd:
[INTERNAL] /prestashop/override/classes/Hook.php line 249 - Error: Access to undeclared static property: Hook::$_hook_modules_cache_exec #0 /prestashop/override/classes/Hook.php(13): Hook::getAllHookRegistrationsLG() #1 /prestashop/src/Adapter/LegacyHookSubscriber.php(76): Hook::getHookModuleExecList() #2 /prestashop/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php(197):
Po prostu proces aktualizacji jest „ubijany” na kroku aktualizacji struktury bazy danych i sklep jest uszkodzony..
Dlatego zachęcamy do wykonywania każdorazowo kopii bezpieczeństwa plików/bazy przed podjęciem próby aktualizacji. Albo o zlecenie tego dość trudnego zadania (jakim jest aktualizacja PrestaShop) specjalistom ! UWAGA! Ceny podane na tym ogłoszeniu są orientacyjne. Zapraszamy do uprzedniego kontaktu!
W folderze [KATALOG-GŁÓWNY]/override
są tzw. nadpisywania. Po prostu domyślne klasy PHP silnika PrestaShop albo modułów mają tutaj swoje zamienniki. Mówiąc obrazowo. Błąd wynika z braku kompatybliności zawartego tam skryptu PHP dla wersji PrestaShop 8.x.
Istotnie w folderze [KATALOG-GŁÓWNY]/override
znajduje się plik Hook.php
o zawartości:
Został on tam umieszczony podczas instalacji modułu shoptopay
. Dla wersji PrestaShop 8.x (tak jak dla PrestaShop 1.7) ten moduł nie będzie już potrzebny. Te funkcje będziesz mieć już wbudowane w panelu PrestaShop:
Ship2Pay, shiptopay – łączenie wysyłek i metod dostawy w PrestaShop [Aktualizacja]
Jeśli nadpisywania dotyczą innych modułów niż tutaj przedstawiony
shoptopay
– skontaktuj się z autorami tego modułu aby uzyskać moduł kompatybilny dla wersji PrestaShop 8.x
Naprawa aktualizacji
Aby rozwiązać ten problem zainstaluj na boku czystą wersję PrestaShop 1.7.8.11 (albo inną – tę z której wykonujesz aktualizację). Następnie w Twoim sklepie usuń folder [KATALOG-GŁÓWNY]/override
(ewentualnie wytnij go z folderu głównego sklepu) i na jego miejsce wstaw domyślny folder [KATALOG-GŁÓWNY]/override
z wersji pudełkowej PrestaShop. Następnie wykonaj jeszcze raz aktualizację.
Oczywiście należy najpierw przywrócić stan sklepu z kopii bezpieczeństwa z przed aktualizacji.
Dodatkowa porada
Może być konieczne wyłączenie wszystkich napisywań i modułow nie-od PrestaShop. Znajdziesz to w dziale „Wydajność”:
Ponadto nasz zespół zauważył, że przeglądarka Google Chrome lepiej sobie radzi z najnowszą (na czas pisania tego artykułu) wersją modułu „Aktualizacja 1 kliknięciem” (nazwa kodowa: autoupgrade
) w wersji v5.0.1:
Pomyślna akualizacja!
Po tych zabiegach – aktualizacja powinna się udać:
Uzyskujemy najnowszą wersję, co potwierdza panel logowania do sklepu:
Oraz informacja w listingu konfiguracji ogólnych PrestaShop:
Oferta wykonania profesjonalnej aktualizacji PrestaShop
Jeśli natrafiasz na ten albo inne błędy podczas aktualizacji Twojego sklepu PrestaShop, zleć tę pracę fachowcom!
Każdy moment niedostępności Twojego sklepu to straty:
- wizerunkowe
- błędy pozycjonowania – utrata pozycji SEO
- straty pieniężne – brak zamówień, kiedy sklep nie działa
Ponadto źle wykonana akutualizacja prędzej czy później odbije się czkawką. Mogą pojawić się niespodziewane błędy i nieprawidłowości w funkcjonowaniu aplikacji. Szczególnie jeśli pozostawione są w sklepie skrypty/tabele w MySQL ze starych wersji – PrestaShop 1.6, PrestaShop 1.7..
Z tego powodu, preferujemy wgranie całego sklepu (baza klientów, zamówień, produktów) w nową wersję silnika PrestaShop przez co od razu od momentu aktualizacji sklep funkcjonuje jak świeżo zainstalowana wersja PrestaShop 8.x. Bez żadnego „spadku” po starej wersji skryptu.
I taki sposób wykonania akutalizacji oferujemy naszym Klientom.
Więcej na temat wgrywania danych starego sklepu do zupełnie nowej instalacji PrestaShop:
Aktualizacja PrestaShop do 1.7 – dane starego sklepu w zupełnie czystej instalacji PS17 [UPDATE]
grafika:wallpaperup.com