Błąd w panelu administracyjnym PrestaShop gdy nie działają serwery Addons – przyczyna i rozwiązanie
Czasami w panelu administracyjnym PrestaShop mogą pojawiać się błędy lub bardzo długie ładowanie stron. Problem ten nie zawsze wynika z błędu w samym sklepie. Często przyczyną jest niedostępność serwerów PrestaShop Addons, z którymi panel administracyjny próbuje się komunikować, aby pobierać informacje o modułach i usługach z marketplace.
Powód
Panel administracyjny PrestaShop regularnie łączy się z serwerami PrestaShop Addons, aby pobierać dane o modułach, aktualizacjach oraz innych elementach związanych z marketplace.
Jeżeli serwery Addons są chwilowo niedostępne, przeciążone lub zwracają nieprawidłową odpowiedź, panel administracyjny może działać nieprawidłowo. Najczęściej objawia się to:
- bardzo długim ładowaniem panelu administracyjnego
- wolnym działaniem sekcji Moduły / Menedżer modułów
- błędami informującymi o uszkodzonym lub niepoprawnym XML
W niektórych przypadkach PrestaShop zapisuje odpowiedzi z serwera Addons w katalogu:
/config/xml/
Jeżeli serwer Addons zwróci niepoprawną odpowiedź (np. stronę HTML z komunikatem maintenance zamiast pliku XML), w tym katalogu mogą pojawić się:
- puste pliki
- niekompletne pliki XML
- pliki zawierające kod HTML zamiast poprawnego XML
Powoduje to później błędy podczas odczytu tych plików przez PrestaShop.
Rozwiązanie
Najprostszym sposobem rozwiązania problemu jest wyłączenie sprawdzania dostępności serwerów PrestaShop Addons w kodzie sklepu.
W tym celu należy edytować plik:
/classes/Tools.php
Następnie znaleźć linię:
public static $is_addons_up = true;
i zmienić ją na:
public static $is_addons_up = false;
Dzięki temu panel administracyjny przestanie próbować łączyć się z serwerami PrestaShop Addons, co zazwyczaj eliminuje problem z długim ładowaniem i błędami w sekcji modułów.
Dodatkowo warto usunąć uszkodzone pliki zapisane wcześniej przez system w katalogu:
/config/xml/
Na ogół zamiast poprawnych plików XML znajdują się tam puste pliki lub niepoprawne dane, np. zapisany kod HTML z komunikatem maintenance zamiast odpowiedzi API.
Po usunięciu tych plików oraz wyłączeniu sprawdzania serwerów Addons panel administracyjny powinien ponownie działać poprawnie.