Zdjęcie produktu istnieje w panelu PrestaShop, ale na stronie sklepu pojawia się puste pole, znak zapytania albo komunikat o braku obrazu? Miniatury mogą zniknąć po migracji, aktualizacji motywu, zmianie rozmiarów grafik, nieudanym imporcie produktów lub problemie z zapisem plików na serwerze.

Nie zawsze oznacza to utratę oryginalnych zdjęć. Często PrestaShop nadal ma pliki źródłowe, ale nie może odnaleźć, wygenerować albo wyświetlić ich pomniejszonych wersji. W takim przypadku pomaga regeneracja miniatur, wyczyszczenie pamięci podręcznej lub naprawa uprawnień katalogów.

W tym wpisie przeczytasz, jak ustalić źródło problemu, przywrócić miniatury z panelu i konsoli, sprawdzić katalogi z obrazami oraz naprawić błędy związane z motywem, WebP, CDN i migracją sklepu.

Dlaczego obrazki znikają w PrestaShop?

PrestaShop nie wyświetla jednego pliku graficznego we wszystkich miejscach sklepu. Po przesłaniu zdjęcia produktu system tworzy jego różne warianty, dopasowane między innymi do listy kategorii, strony produktu, koszyka, modułów promocyjnych i panelu administracyjnego.

Rozmiary tych wariantów zależą od ustawień sklepu i używanego motywu. Jeżeli motyw oczekuje pliku o określonej nazwie lub wymiarach, a taka miniatura nie istnieje, klient może zobaczyć puste pole, symbol brakującego obrazu albo grafikę zastępczą.

Najczęstsze przyczyny braku miniatur

  • zmiana motywu lub aktualizacja jego plików,
  • dodanie nowego rozmiaru obrazów bez ponownego wygenerowania miniatur,
  • niepełne przeniesienie katalogu /img podczas migracji,
  • przerwana regeneracja obrazów z powodu limitu czasu lub pamięci PHP,
  • brak miejsca na koncie hostingowym,
  • nieprawidłowe uprawnienia albo właściciel plików,
  • stara wersja obrazu zapisana w cache sklepu, przeglądarki lub CDN,
  • konflikt modułu odpowiedzialnego za WebP, AVIF, lazy loading albo CDN,
  • błędne adresy sklepu po zmianie domeny lub włączeniu HTTPS,
  • brak powiązania obrazu z produktem, językiem albo sklepem w konfiguracji multistore.

Przyczynę warto ustalić przed rozpoczęciem masowej regeneracji. Jeżeli oryginalne pliki zostały usunięte, samo odtworzenie miniatur ich nie przywróci. Z kolei gdy pliki są na serwerze, ale sklep zwraca błąd 403, problemem mogą być uprawnienia, konfiguracja serwera albo reguły w pliku .htaccess.

Zanim zaczniesz wykonaj kopię bazy danych i katalogu /img. Nie wybieraj opcji usuwania dotychczasowych miniatur, dopóki nie upewnisz się, że obrazy źródłowe są kompletne.

Jak sprawdzić zakres problemu?

Zacznij od ustalenia, czy problem dotyczy wszystkich grafik, jednego produktu, wybranego typu miniatur czy tylko konkretnego miejsca w sklepie. Taka obserwacja pozwala znacznie szybciej wybrać właściwe rozwiązanie.

Sprawdź obraz oryginalny

Otwórz produkt w panelu administracyjnym. Jeżeli zdjęcie jest widoczne podczas edycji produktu, istnieje duża szansa, że plik źródłowy nadal znajduje się na serwerze, a problem dotyczy tylko miniatury lub jej adresu.

Następnie otwórz stronę produktu i spróbuj wyświetlić sam obraz w nowej karcie. Zwróć uwagę na kod odpowiedzi:

  • 404 – plik nie istnieje pod wskazanym adresem albo adres został zbudowany nieprawidłowo,
  • 403 – serwer odmawia dostępu do pliku,
  • 500 – występuje błąd aplikacji, konfiguracji PHP lub serwera,
  • 200, ale stara grafika – prawdopodobnym źródłem problemu jest cache albo CDN.

Porównaj różne miejsca w sklepie

Sprawdź ten sam produkt na stronie kategorii, karcie produktu, w wynikach wyszukiwania i w koszyku. Jeżeli duże zdjęcie działa, a grafika na liście produktów nie, najczęściej brakuje jednego konkretnego typu miniatury.

Gdy problem występuje wyłącznie w nowym motywie, porównaj nazwy typów obrazów wymaganych przez ten motyw z typami skonfigurowanymi w PrestaShop. Motyw może odwoływać się do rozmiaru, który nie został utworzony albo był charakterystyczny dla poprzedniej konfiguracji.

Wykonaj test na nowym produkcie

Dodaj mały testowy obraz JPG lub PNG do nowego albo roboczego produktu. Jeżeli nowe zdjęcie zapisuje się i jest prawidłowo wyświetlane, konfiguracja generowania obrazów prawdopodobnie działa, a problem dotyczy starszych plików, migracji lub konkretnej partii produktów.

Jeżeli PrestaShop nie pozwala zapisać nawet nowego zdjęcia, sprawdź wolne miejsce, limity PHP, logi serwera i uprawnienia katalogów. Pomocny będzie również poradnik naprawy uprawnień w PrestaShop.

Jak zregenerować miniatury w panelu PrestaShop?

Jeżeli oryginalne zdjęcia produktów są dostępne, najprostszym rozwiązaniem jest ponowne wygenerowanie ich wariantów z poziomu panelu administracyjnego. W PrestaShop 8 odpowiednią funkcję znajdziesz najczęściej w sekcji Wygląd → Ustawienia obrazów. Nazwy pozycji mogą nieznacznie różnić się zależnie od wersji, tłumaczenia i używanego panelu.

Oficjalna dokumentacja PrestaShop opisuje regenerację w sekcji Image Settings. Narzędzie pozwala wybrać rodzaj zawartości, typ obrazu oraz sposób postępowania ze starymi miniaturami.

Bezpieczna regeneracja krok po kroku

  1. Wykonaj kopię bazy danych i katalogu /img.
  2. Sprawdź, czy na koncie hostingowym jest wystarczająco dużo wolnego miejsca.
  3. Przejdź do ustawień obrazów w panelu PrestaShop.
  4. Zweryfikuj listę typów obrazów i ich wymiary.
  5. W sekcji regeneracji wybierz najpierw obrazy produktów.
  6. Wybierz pojedynczy typ miniatury, jeżeli wiesz, którego wariantu brakuje.
  7. Na pierwszą próbę pozostaw dotychczasowe miniatury.
  8. Uruchom operację poza godzinami największego ruchu.
  9. Po zakończeniu wyczyść cache PrestaShop i sprawdź sklep w trybie incognito.

Przy dużym katalogu nie regeneruj od razu wszystkich wariantów produktów, kategorii, producentów i dostawców. Zacznij od jednego typu obrazu lub niewielkiej grupy. Dzięki temu łatwiej ocenisz, czy operacja działa i czy serwer nie przerywa jej z powodu przekroczenia limitu czasu.

Czy usuwać stare miniatury?

Usunięcie wcześniejszych miniatur pomaga uporządkować katalogi i pozbyć się nieaktualnych rozmiarów, ale zwiększa ryzyko pojawienia się pustych miejsc, jeżeli regeneracja zostanie przerwana. Dlatego tę opcję najlepiej wykorzystać dopiero po wykonaniu kopii i udanym teście regeneracji bez kasowania plików.

Pamiętaj też, że ręcznie przygotowane miniatury mogą zostać zastąpione wersjami wygenerowanymi automatycznie. Jeżeli część grafik była kadrowana indywidualnie, zachowaj ich kopię.

Dobra praktyka po zmianie wymiarów obrazów najpierw wygeneruj jeden typ miniatury i sprawdź kilka produktów o różnych proporcjach zdjęć. Zobaczysz, czy kadrowanie nie ucina ważnych części produktu.

Jak przywrócić miniatury przez CLI?

Regeneracja z panelu odbywa się przez przeglądarkę. Przy tysiącach produktów żądanie może trwać długo i zostać przerwane przez limit PHP, serwera proxy lub połączenia administratora. W takim przypadku wygodniejsza jest konsola PrestaShop.

Aktualna dokumentacja developerska PrestaShop opisuje komendę prestashop:thumbnails:regenerate. Przed wykonaniem polecenia sprawdź jego dostępność i składnię w swojej wersji sklepu:

php bin/console list | grep thumbnails php bin/console prestashop:thumbnails:regenerate --help

Przykład regeneracji miniatur produktów:

php bin/console prestashop:thumbnails:regenerate products

W zależności od wersji komenda może przyjmować identyfikator konkretnego typu obrazu. Pozwala to ograniczyć operację do jednego wariantu zamiast przebudowywania całej biblioteki.

php bin/console prestashop:thumbnails:regenerate products ID_TYPU_OBRAZU

Opcja usuwająca wcześniejsze miniatury powinna być używana szczególnie ostrożnie:

php bin/console prestashop:thumbnails:regenerate all --delete

Nie uruchamiaj jej jako pierwszego testu na sklepie produkcyjnym. Jeżeli proces zostanie zatrzymany, część starych plików może już nie istnieć, a nowe nie zdążą się wygenerować.

Jak uruchomić długą operację?

Jeżeli regeneracja potrwa długo, wykonuj ją w sesji, która nie zostanie przerwana po zamknięciu terminala, na przykład z użyciem screen lub tmux. Obserwuj wykorzystanie procesora, pamięci i miejsca na dysku. W dużym sklepie lepiej regenerować obrazy etapami niż jedną ciężką operacją.

Więcej przykładów pracy z konsolą znajdziesz w artykule CLI w PrestaShop – 10 komend, które przyspieszą Twoją pracę.

Co zrobić, gdy regeneracja nie działa?

Komunikat o błędzie podczas regeneracji jest ważniejszy niż sam fakt, że obraz nadal się nie wyświetla. Zapisz jego treść, godzinę wystąpienia i typ obrazów, który był właśnie przetwarzany. Następnie porównaj te informacje z logami PrestaShop, PHP i serwera www.

Brak pamięci lub przekroczenie czasu

Jeżeli proces kończy się komunikatem memory exhausted, maximum execution time exceeded, błędem 502 albo 504, operacja jest zbyt ciężka dla bieżących limitów lub sposobu uruchomienia.

  • regeneruj jeden typ obrazów zamiast wszystkich,
  • wykonaj operację przez CLI,
  • przetwarzaj grafiki poza godzinami szczytu,
  • sprawdź limity pamięci i czasu wykonywania PHP,
  • zweryfikuj, czy inne procesy, importy lub kopie zapasowe nie obciążają sklepu.

Brak miejsca na dysku

Jeden obraz produktu może mieć wiele wariantów. Jeżeli włączysz dodatkowo obrazy wysokiej rozdzielczości, WebP lub AVIF, liczba plików rośnie. PrestaShop może wtedy przyjąć oryginalne zdjęcie, ale nie zdołać zapisać wszystkich nowych wersji.

Sprawdź całkowite wykorzystanie przestrzeni, liczbę plików i ewentualny limit inode. Usuń niepotrzebne kopie, pliki tymczasowe i stare cache, ale nie kasuj zawartości katalogu obrazów bez aktualnej kopii.

Nieprawidłowe uprawnienia

Proces PHP musi mieć prawo do odczytu obrazów źródłowych oraz zapisu nowych plików w odpowiednich podkatalogach /img. Problemy pojawiają się często po ręcznym kopiowaniu plików, migracji wykonanej z konta administratora systemu albo rozpakowaniu archiwum z innym właścicielem.

Nie naprawiaj problemu przez ustawienie 777 dla całego sklepu. Tak szerokie uprawnienia zwiększają ryzyko bezpieczeństwa i mogą maskować nieprawidłowego właściciela plików. Najpierw ustal, z jakiego użytkownika działa PHP i jakie ustawienia rekomenduje operator serwera.

Problem z biblioteką graficzną

PHP potrzebuje biblioteki obsługującej przetwarzanie obrazów, najczęściej GD lub Imagick. Jeżeli po zmianie wersji PHP rozszerzenie przestało być aktywne, sklep może nie generować wariantów JPG, PNG lub WebP.

Sprawdź aktywne moduły PHP w panelu hostingowym albo za pomocą polecenia:

php -m | grep -Ei "gd|imagick"

Uszkodzony lub nietypowy plik źródłowy

Jeżeli regeneracja zatrzymuje się zawsze przy tym samym produkcie, pobierz jego oryginalne zdjęcie i sprawdź je lokalnie. Plik może mieć błędne rozszerzenie, uszkodzone metadane, nietypowy profil kolorów, bardzo duże wymiary albo format, którego bieżąca konfiguracja PHP nie obsługuje.

Otwórz zdjęcie w edytorze i zapisz je ponownie jako standardowy JPG, PNG lub WebP. Następnie podmień obraz w produkcie i ponów test.

Obrazy po migracji, zmianie motywu i włączeniu CDN

Obrazy po migracji sklepu

Podczas przenoszenia PrestaShop sama kopia bazy danych nie wystarczy. Pliki produktów znajdują się na serwerze, przede wszystkim w katalogu /img/p. Obrazy kategorii, producentów, dostawców i innych elementów korzystają z kolejnych podkatalogów /img.

Oficjalna dokumentacja migracji PrestaShop zwraca uwagę zarówno na przeniesienie katalogu obrazów, jak i zachowanie danych wiążących zdjęcia z produktami. Po migracji miniatury należy ponownie wygenerować, jeżeli wymaganych wariantów nie ma na nowym serwerze.

  • porównaj rozmiar i liczbę plików w katalogu /img na starym i nowym serwerze,
  • sprawdź, czy transfer nie pominął plików ukrytych albo głęboko zagnieżdżonych katalogów,
  • zweryfikuj właściciela i uprawnienia po rozpakowaniu kopii,
  • upewnij się, że w bazie i plikach użyto tego samego zestawu danych,
  • sprawdź, czy migracja nie zmieniła identyfikatorów produktów lub obrazów.

Obrazy po zmianie motywu

Nowy motyw może wymagać innych nazw i wymiarów miniatur. Po jego aktywacji przejdź do ustawień obrazów, sprawdź typy przypisane do produktów, kategorii, producentów i dostawców, a następnie wygeneruj brakujące warianty.

Jeżeli obraz działa w domyślnym motywie, a nie działa w motywie komercyjnym, sprawdź dokumentację szablonu, jego nadpisania oraz pliki szablonów odpowiedzialne za budowanie adresów grafik. Przyczyną może być również niekompatybilny moduł lazy loading lub optymalizacji zdjęć.

WebP, AVIF i lazy loading

Moduł może pozostawić oryginalne pliki JPG, ale zmienić kod strony tak, aby przeglądarka pobierała wariant WebP albo AVIF. Jeżeli wariant nie został wygenerowany lub jego adres jest nieprawidłowy, klient zobaczy pustą przestrzeń mimo obecności oryginału.

  • tymczasowo wyłącz moduł optymalizujący obrazy,
  • wyłącz konwersję do WebP lub AVIF i sprawdź plik źródłowy,
  • sprawdź kod HTML elementów picture, source i img,
  • zweryfikuj wartości atrybutów src, srcset i atrybutów lazy loading,
  • po zmianach wyczyść cache modułu oraz PrestaShop.

Na hostingu PrestaShop w cyber_Folks dostępne rozwiązanie cyber_Boost pozwala między innymi optymalizować obrazy i tworzyć ich wersje WebP. Sposób działania oraz ustawienia opisuje artykuł PrestaShop z cyber_Boost – co to jest i dlaczego warto włączyć?.

Cache przeglądarki i CDN

Po regeneracji plik może być już prawidłowy na serwerze, ale CDN nadal zwracać jego starszą wersję albo zapamiętany błąd 404. Wyczyść kolejno:

  • cache PrestaShop,
  • cache modułu wydajnościowego,
  • cache serwera lub reverse proxy,
  • cache CDN,
  • cache przeglądarki.

Po czyszczeniu otwórz sklep w oknie prywatnym i sprawdź bezpośredni adres obrazu. W narzędziach deweloperskich przeglądarki zobaczysz, skąd został pobrany plik i jaki kod odpowiedzi zwrócił serwer.

HTTP, HTTPS i zmiana domeny

Jeżeli sklep został przeniesiony na inną domenę lub włączono HTTPS, sprawdź konfigurację adresów sklepu. Obraz może istnieć, ale kod strony nadal odwoływać się do starej domeny, nieaktualnego katalogu albo protokołu HTTP.

Otwórz konsolę przeglądarki i poszukaj komunikatów Mixed Content, błędów CORS oraz przekierowań. Sprawdź też, czy certyfikat obejmuje domenę używaną w adresach grafik.

Jak zapobiegać problemom z obrazami?

Obrazki produktowe wpływają na odbiór oferty, szybkość sklepu i decyzje zakupowe. Nie warto traktować ich wyłącznie jako plików, które można odtworzyć dopiero po awarii. Dobrze przygotowany proces publikacji i utrzymania zdjęć ogranicza ryzyko problemów podczas migracji, aktualizacji i zmiany motywu.

Przygotuj obraz przed wgraniem

  • kadruj zdjęcia w spójnych proporcjach,
  • nie przesyłaj plików znacznie większych niż potrzebne w sklepie,
  • kompresuj zdjęcia przed publikacją,
  • używaj standardowych formatów i poprawnych rozszerzeń,
  • unikaj bardzo długich nazw oraz nietypowych znaków,
  • zachowuj oryginalne materiały poza serwerem sklepu.

Więcej wskazówek dotyczących fotografii produktowej znajdziesz w poradniku jak robić dobre zdjęcia, aby sprzedawać więcej w PrestaShop.

Testuj zmiany na stagingu

Zmianę motywu, aktualizację modułu obrazów i masową regenerację najlepiej przeprowadzić najpierw na kopii sklepu. Sprawdź kilka typów produktów, fotografie pionowe i poziome, warianty oraz obrazy w koszyku. Dopiero po takim teście wykonaj operację na środowisku produkcyjnym.

Kontroluj kopie i zasoby serwera

Kopia bazy bez plików nie zabezpiecza zdjęć produktów. Backup PrestaShop powinien obejmować oba elementy i być przechowywany również poza głównym serwerem. Regularnie sprawdzaj, czy kopię da się odtworzyć.

Monitoruj również wolne miejsce, liczbę plików i błędy PHP. Specjalistyczny hosting PrestaShop zapewnia środowisko przygotowane z myślą o wymaganiach sklepów działających na tej platformie. Odpowiednie zasoby, dostęp do narzędzi administracyjnych i możliwość pracy z cache ułatwiają zarówno codzienne utrzymanie sklepu, jak i wykonywanie cięższych operacji technicznych.

Lista kontrolna po naprawie

  • sprawdź produkty ze zdjęciami poziomymi, pionowymi i kwadratowymi,
  • otwórz stronę kategorii, produktu, wyszukiwarkę i koszyk,
  • przetestuj sklep na komputerze i telefonie,
  • sprawdź warianty produktów i dodatkowe zdjęcia galerii,
  • zweryfikuj odpowiedzi 404 i 403 w logach,
  • upewnij się, że WebP lub AVIF są generowane dla nowych zdjęć,
  • dodaj nowy produkt testowy,
  • wyłącz tryb debugowania po zakończeniu diagnozy,
  • wykonaj nową kopię sprawnego sklepu.

Stabilne środowisko serwerowe, regularne kopie i testowanie większych zmian na stagingu pozwalają ograniczyć ryzyko, że problem z grafikami wpłynie na sprzedaż. Zobacz hosting przygotowany do obsługi sklepów PrestaShop.

FAQ – odzyskiwanie obrazków i miniatur w PrestaShop

Nie. Regeneracja tworzy nowe warianty na podstawie istniejących obrazów źródłowych. Jeżeli oryginalny plik został usunięty, trzeba przywrócić go z kopii zapasowej lub ponownie dodać do produktu.

Zdjęcia produktów są przechowywane przede wszystkim w katalogu /img/p, w strukturze podkatalogów wynikającej z identyfikatora obrazu. Pozostałe rodzaje grafik korzystają z innych katalogów wewnątrz /img.

Najczęstsze przyczyny to limit pamięci PHP, przekroczenie czasu wykonania, brak miejsca na dysku, nieprawidłowe uprawnienia albo uszkodzony obraz źródłowy. Przy dużym katalogu warto użyć CLI i regenerować pliki etapami.

Nie. Bezpieczniej rozpocząć od regeneracji bez usuwania dotychczasowych plików. Opcję kasowania warto włączyć dopiero po wykonaniu kopii zapasowej i udanym teście.

Może brakować miniatury wymaganej przez motyw, sklep może korzystać ze starego cache albo moduł WebP, CDN lub lazy loading może tworzyć nieprawidłowy adres pliku. Sprawdź kod odpowiedzi obrazu i jego adres w narzędziach deweloperskich.

Tak. Regeneracja wykorzystuje procesor, pamięć PHP, przestrzeń dyskową i operacje na plikach. Znaczenie mają też dostęp SSH, właściwe rozszerzenia graficzne PHP oraz poprawna konfiguracja uprawnień.

jak-przywrocic-miniatury-i-obrazki-w-prestashop
>
Kasia Bielawska

Dodaj komentarz

Twój adres e-mail nie będzie opublikowany.

Szukasz dalej?