Zawartość artykułu
Objawy problemu
Podczas migracji z PrestaShop 1.5.6.1 do najnowszej obecnie wersji 1.7.8.10 nasz zespól natrafił na problem z zapisaniem co po niektórych produktów. Objawia się wyświetleniem chmórki: „Nie można zaktualizować ustawień”
Następnie przyciski zapisu są blokowane i nie działa podgląd produktu (link do karty produktu) od strony klienta sklepu…
Sklep był zapełniany danymi poprzez sposób zaprezentowany w tym artykule:
Aktualizacja PrestaShop do 1.7 – dane starego sklepu w zupełnie czystej instalacji PS17 [UPDATE]
Niestety analiza logów nic nie dała. Także włączenie trybu debugowania czy analiza samych błędów na serwerze.
Sprawdź jak łatwo możesz włączyć zapisywanie błędów Apache’a poprzez parę wpisów w .htaccess: https://linuxporady.pl/szybkie-pokazywanie-bledow-php-przez-wpis-w-htaccess/
Po prostu pojawia się enigmatyczny komunikat i nie wiadomo co go powoduje..
Dziwny sposób na naprawę
Co ciekawe w wyniku przeprowadzonych testów – po przełączeniu języka admina na angielski:
Zapis problematycznego produktu już… działa?
Natomiast po powrocie do języka polskiego i ponownym zapisie – zapis jest już naprawiony…. 🙂
No OK. Jeden produkt można tak poprawić. Jednak co jeśli sklep posiada kilka tys potencjalnie niemożliwych do zapisu produtów… ? Przenież nie będziemy każdego zapisywać z osobna?
Skuteczna naprawa
Po analizie zapisu do bazy danych MySQL udało znaleźć się przyczynę problemu. Była to kolumna: id_category_default
w tabelach: ps_product
oraz ps_product_shop
:
Sklep jak napisano na początku był podnoszony z wersji 1.5 do 1.7. Spowodowało to odmienny sposób przypisania do kategorii „Strona głowna” czy też „Home„. W tamtych wersjach byla to kategoria o ID=1 w późniejszych już ID=2 (której to nadrzędna kategoria dopiero była ta o ID=1).
Wystarczy zatem wykonać nieskomplikowane zapytanie w PhpMyAdmin:
UPDATE `ps_product_shop` SET `id_category_default` = 2 WHERE `id_category_default` = 1; UPDATE `ps_product` SET `id_category_default` = 2 WHERE `id_category_default` = 1;
Oczywiście wykonaj uprzednio kopię bezpieczeństwa bazy danych i dopiero sprawdź czy ten problem udało się tak rozwiązać!
Inne przyczyny wystąpienia tego błędu
W tym filmie
Autor przytacza inne przyczyny wystąpienia tego błędu. Są to:
- Pusta nazwa produktu podczas zapisu (tutaj nie miało to miejsca)
- Zbyt obszerny opis produktu (przekroczenie limitu)
Sprawdź, może to też okaże się pomocne.
grafika:wallpapercave.com