Press "Enter" to skip to content

Brak miniatur w zdjęciach po imporcie produktów, mimo przebudowania zdjęć w szablonie

Admin 1

Dziś przyjrzymy się bardzo enigmatycznemu błędowi odkrytemu w PrestaShop 1.6.1.23 (czyli w stosunkowo nowej wersji dla gałęzi 1.6).

Opis błędu

Po imporcie produktów przez plik CSV mimo, że zdjęcia są prawidłowo (na pierwszy rzut oka, ale o tym dalej) podłączone do produków:

Prawidłowo (na pierwszy rzut oka) zaimportowane zdjęcie do produktu

Nie wyświetlają się:

  • na liście produktów w adminie
  • na listach w kategoriach
  • na listach produków powiązanych
  • w innych kluczowych sekcjach
Brak miniaturek zdjęć na listach

Tak naprawdę tylko pojawiają się na karcie produktu:

Prawidłowo zaladowane zdjęcie na karcie produktu

Dramat trwa dalej… każde wywołanie miniatury produktu to brak obrazka:

Brak miniaturki po dodaniu produktu do koszka – PrestaShop

Ponadto, wszędzie tam, gdzie nie można wczytać miniaturki – mają one ten sam adres:

img/p/pl-default-home_default.jpg

lub dla innej wersji językowej:

img/p/en-default-home_default.jpg

Czyli sugeruje to brak zdjęcia, ktore …przecież jest!

Co ważne zauważenia – nie pomaga:

  • przebudowanie miniatur (wygenerowanie ich od nowa w dziale „Zdjęcia„)
  • zmiana uprawnień na 777 w folderze /img i w jego podfolderach
  • zmiana wersji PHP na serwerze lub inne zabiegi konfiguracyjne

Rozwiązanie problemu – mozolne wyklikanie

Okazuje się, że importer produktów CSV źle oznacza okładki produktów. Widać to juz na pierwszym screenie powyżej. Któreś ze zdjęć powinno mieć zaznaczoną kratkę (checkbox) że jest okładką. Nigdzie nie ma zaznaczenia. I tu tkwi problem.

Rozwiąznie jest proste – wystarczy wyklikać w każdym produkcie te okładki i zapisać.

Jednak co w sytuacji, gdy produtków w sklepie jest 500? 1000 ? 3000 ?

Wtedy wystarczy zrealizować odp. zapytanie SQL do bazy danych.

O tym piszemy dalej.

Rozwiązanie problemu – zapytanie w bazie danych

  1. Po „pierwsze primo” zrób kopię bezpieczeństwa bazy sklepu – jak zrobić kopię bezpieczeństa PrestaShop
  2. Po „drugie primo” – ustal link do phpmyadmin na Twoim serwerze – więcej informacji
  3. I po „trzecie primo” – ustal dostępy do bazy danych oraz jak się baza danych nazywa:
    1. dla PrestaShop 1.6 znajdziesz to w pliku
      config/setting.inc.php
    2. dla PrestaShop 1.7 (jeśli też w tej wersji masz problem) znajdziesz to w pliku
      app/config/parameters.php

       

Zaznacz następnie bazę danych w PhpMyAdmin i włącz zakladkę SQL aby zrezlizować zapytanie

Uwaga, użyliśmy tutaj standardowego prefixu dla tabel: ps_ w swoich zapytaniach odp. go zmodyfikuj jak masz inny

1) Zerowanie okładek:

UPDATE `ps_image` SET `cover` = NULL

2) Ustawianie okładek dla wszystkich zdjęć na pozycji nr.1:

UPDATE `ps_image` SET `cover` = 1 WHERE `position` = 1;

3) Analogiczne zapytanie dla tabeli multistore bazujące na poprzednich zapytaniach:

UPDATE `ps_image_shop` SET `cover` = 1 WHERE `id_image` IN (SELECT `id_image` FROM `ps_image` WHERE `cover` = 1);

FIXED!

Tym oto sposobem rozwiązaliśmy problem i wszędzie już działają miniaturki:

Widok list po rozwiązaniu problemu

 

 

grafika: pexels.com

  1. Łukasz Bęben Łukasz Bęben

    Witam, starałem się użyć kodu by pokazało miniatury na zapleczu w liście produktów, z tego co widzę nie chce ustawić mi okładki gdy mam tylko jedno zdjęcie, czy inne odniesienie mają te produkty?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Jak przeformatować tekst wklejany w sklepie internetowym np. z pliku…