Logo GRVision - Strony i sklepy internetowe
Darmowa konsultacja 881 932 088 kontakt@grvision.pl

Regeneracja miniatur - kiedy jej potrzebujesz i jak jej nie zawiesić

Publikacja: · Grzegorz Rapczyński

PrestaShop nie pokazuje oryginalnych zdjęć - pokazuje ich pomniejszone wersje, osobne dla listy produktów, karty, podglądu i koszyka. Jeden produkt z pięcioma zdjęciami to kilkanaście albo kilkadziesiąt plików na dysku.

Regeneracja tworzy je wszystkie od nowa. Przy stu produktach to chwila. Przy pięciu tysiącach to operacja, którą trzeba zaplanować - bo potrafi obciążyć serwer na tyle, że sklep przestanie odpowiadać klientom.

Kiedy jest naprawdę potrzebna

Cztery sytuacje, w których nie ma innego wyjścia:

  • Po migracji, gdy przeniosły się oryginały, a miniatury nie. Objaw: karta produktu pokazuje duże zdjęcie, lista kategorii puste ramki. Opisałem to szerzej przy znikających zdjęciach po przeniesieniu sklepu.
  • Po zmianie szablonu, który używa innych rozmiarów obrazków niż poprzedni.
  • Po dodaniu nowego formatu obrazka w ustawieniach - wtedy wystarczy wygenerować tylko ten jeden.
  • Gdy miniatury są rozmyte albo mają złe proporcje po zmianie ustawień przycinania.

I jedna sytuacja, w której ludzie ją uruchamiają niepotrzebnie: gdy zdjęcia się nie wyświetlają. Zanim puścisz regenerację, sprawdź, czy pliki w ogóle są na serwerze i czy serwer je oddaje. Regeneracja z brakujących oryginałów nie stworzy niczego, a zajmie godziny.

Dlaczego się przerywa

To jedna z najcięższych operacji, jakie sklep potrafi wykonać. Każde zdjęcie trzeba wczytać do pamięci, przeskalować kilka razy i zapisać. Przy dużym katalogu uderza w oba limity naraz: czas wykonania i pamięć.

Objaw jest charakterystyczny: pasek postępu dochodzi mniej więcej do tego samego miejsca i staje. Za każdym razem w podobnym punkcie, bo za każdym razem kończy się ten sam limit.

Jak to przeprowadzić, żeby doszło do końca

  1. Zrób kopię katalogu ze zdjęciami. Regeneracja nadpisuje istniejące miniatury - jeśli coś pójdzie nie tak, wracasz do stanu sprzed.
  2. Wybierz porę najniższego ruchu. Operacja obciąża serwer, a klienci odczuwają to jako spowolnienie całego sklepu.
  3. Generuj po jednym formacie naraz, jeśli sklep na to pozwala, zamiast wszystkich jednocześnie.
  4. Nie zaznaczaj usuwania starych obrazków przy pierwszym podejściu. Ta opcja kasuje istniejące miniatury na początku - jeśli operacja się przerwie, zostaniesz bez jednych i bez drugich.
  5. Nie zamykaj karty przeglądarki w trakcie. Przy klasycznym uruchomieniu z panelu zamknięcie okna przerywa całość.

Jeśli mimo to się przerywa, zostaje najskuteczniejsza metoda: podniesienie limitów na czas operacji albo uruchomienie jej z konsoli serwera, gdzie limit czasu wykonania zwykle nie obowiązuje. To drugie wymaga dostępu, którego nie każdy hosting udziela.

Ile to trwa i co z tym zrobić

Jeśli operacja przerywa się zawsze w tym samym momencie, przyczyną są limity serwera - ten sam mechanizm, który zatrzymuje import produktów w połowie.

Czas zależy od liczby zdjęć, liczby formatów i mocy serwera - przy kilku tysiącach produktów mówimy o godzinach, nie minutach. Dwie rzeczy, które realnie go skracają:

  • Usunięcie nieużywanych formatów obrazków. Sklepy po zmianach szablonów potrafią mieć kilkanaście zdefiniowanych rozmiarów, z których połowa nie jest już nigdzie używana. Każdy z nich to osobny plik na każde zdjęcie.
  • Rozsądne oryginały. Zdjęcia w rozdzielczości aparatu przeskalowują się wielokrotnie dłużej niż przygotowane wcześniej. Pisałem o tym w tekście o zdjęciach produktów do sklepu.

Czego nie robić

  • Nie puszczaj regeneracji w szczycie sprzedaży. Sklep spowolni dla wszystkich.
  • Nie uruchamiaj jej dwa razy równolegle w dwóch kartach. To najszybszy sposób na położenie serwera.
  • Nie kasuj katalogu z miniaturami ręcznie w nadziei, że sklep odtworzy je sam. Odtworzy, ale dopiero przy regeneracji - a do tego czasu sklep będzie bez obrazków.

Jeśli po regeneracji klienci dalej widzą stare zdjęcia, problem leży już poza miniaturami - w warstwach cache, z których część jest po stronie serwera, a nie sklepu.

Najczęstsze pytania

Czy regeneracja może pogorszyć jakość zdjęć?

Może, jeśli oryginały zostały wcześniej nadpisane pomniejszonymi wersjami. Miniatura nigdy nie będzie lepsza niż plik, z którego powstaje.

Da się zregenerować miniatury tylko dla części produktów?

Standardowo operacja obejmuje cały katalog. Obejście polega na tymczasowym ograniczeniu liczby formatów - przy większych katalogach zwykle i tak trzeba to podzielić inaczej.

Ile miejsca na dysku zajmują miniatury?

Przy kilku formatach i kilku zdjęciach na produkt zwykle więcej niż same oryginały. To jedna z głównych przyczyn niespodziewanego zapełnienia dysku w rosnącym sklepie.

Regeneracja nie chce dojść do końca

Przy dużym katalogu to zwykle kwestia limitów albo nadmiaru zdefiniowanych formatów. Napisz - sprawdzę jedno i drugie i puszczę to tak, żeby doszło. Formularz kontaktowy, 881 932 088 lub kontakt@grvision.pl.