Press "Enter" to skip to content

Instalacja szablonu – generowanie miniatur i brak oryginalnych zdjęć, problemy w wyświetlaniem okładek i podłączone zdjęcia widmo

Admin 0

Tytuł artykułu jest dość enigmatyczny 🙂 Jednak jeśli ktoś borykał się z instalacją nowego szablonu, a zdjęcia przy produktach są wybrakowane – może na to się natknąć.

Na początek wykonujemy kopię bezpieczeństwa bazy danych: Zaplecze Presta Shop -> Zaawansowane -> Kopia bezpieczeństwa DB

Ale po kolei. Problem zaczyna się przy generowaniu miniatur w nowym szablonie. Już wtedy skrypt raportuje brak zdjęć. Ma to postać komunikatu:

Brakuje oryginalnego zdjęcia lub jest puste (/img/p/1/6/9/9/1699.jpg) dla produktu o identyfikatorze 1285
Brakuje oryginalnego zdjęcia lub jest puste (/img/p/1/7/0/0/1700.jpg) dla produktu o identyfikatorze 1286
Brakuje oryginalnego zdjęcia lub jest puste (/img/p/1/7/0/1/1701.jpg) dla produktu o identyfikatorze 1287
Brakuje oryginalnego zdjęcia lub jest puste (/img/p/1/7/0/2/1702.jpg) dla produktu o identyfikatorze 1288
........

Dodatkowo na sklepie w kategoriach i innych miejscach zamiast zdjęć produktów widać pytajniki.

Jak to naprawić?

Na początek usuwamy zdjęcia o podanych ID. Niestety jak nie ma ich oryginałów – ich nie użyjemy.

Poprzez odp. edycję podanego wyżej komunikatu wyłuskujemy same te numery ID. Czyli jak wyżej:

1699
1700
1701
1702

Następnie wywołujemy te 3 partie komend w SQL na tych numerach ID:

DELETE FROM `ps_image` WHERE `ps_image`.`id_image` = 1699;
DELETE FROM `ps_image` WHERE `ps_image`.`id_image` = 1700;
DELETE FROM `ps_image` WHERE `ps_image`.`id_image` = 1701;
DELETE FROM `ps_image` WHERE `ps_image`.`id_image` = 1702;
DELETE FROM `ps_image_lang` WHERE `ps_image_lang`.`id_image` = 1699;
DELETE FROM `ps_image_lang` WHERE `ps_image_lang`.`id_image` = 1700;
DELETE FROM `ps_image_lang` WHERE `ps_image_lang`.`id_image` = 1701;
DELETE FROM `ps_image_lang` WHERE `ps_image_lang`.`id_image` = 1702;
DELETE FROM `ps_image_shop` WHERE `ps_image_shop`.`id_image` = 1699;
DELETE FROM `ps_image_shop` WHERE `ps_image_shop`.`id_image` = 1700;
DELETE FROM `ps_image_shop` WHERE `ps_image_shop`.`id_image` = 1701;
DELETE FROM `ps_image_shop` WHERE `ps_image_shop`.`id_image` = 1702;

Jednak przy dużej ilości takich niedziałających zdjęć, część z nich mogło być coverami (okładkami). Możemy w sklepie ręcznie oznaczyć które teraz mają spełniać rolę okładki albo wywołać poniższe komendy.

Globalnie usuwamy wszystkie okładki:

UPDATE `ps_image_shop` SET `cover` = NULL;

Pozyskujemy unikalne numery ID produktów i powiązanych z nimi zdjęć aby na podstawie tych dwóch numerów potem ustawić globalnie nowe okładki:

SELECT DISTINCT `id_product`, `id_image` FROM `ps_image_shop` WHERE `cover` IS NULL GROUP BY id_product HAVING COUNT(*) >=1

W PhpMyAdmin w ten sposób uzyskujemy wyciągnięcie 2 kolumn. Wyniki zapytania eksportujemy do SQL – opcja na dole:

  • Sekcja „Operacja na wynikach zapytania” pod wynikami zapytania
  • Link „Export”
  • Metoda exportu: Szybka
  • Format:  CSV dla MS Excel

Taki plik włączamy w Excelu lub Libre Office Calc i odp. ustawiamy kolumny oraz ich zawartości aby w efekcie utworzyć następujący format danych który cały zaznaczamy i kopiujemy do notatnika:

UPDATE `ps_image_shop` SET  `cover` = 1 WHERE id_product = 556 AND id_image =	12343 ;
UPDATE `ps_image_shop` SET  `cover` = 1 WHERE id_product = 557 AND id_image =	12345 ;

(użyte numery ID są przykładowe). Gotowe. Niedziałające zdjęcia są usunięte, a nowe okładki ustawione.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

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

Zobacz także !
Jeśli chcemy aby wybrana kategoria sklepu pojawiała się na jego…