Produktbilder visas inte trots produktredigeringsroller
I den här artikeln finns en korrigering för när produktbilder inte visas i din butik, trots att bildroller har angetts på sidan för produktredigering.
Orsak: på Adobe Commerce-instanser med mer än en butik kan vissa produktbilder ha no_selection
-värden för bildrollsattribut image
, small_image
, thumbnail
, swatch
. Sådana no_selection
-värden uppstår när produktavbildningsrollen anges i det globala, helt lagrade omfånget i stället för i en viss butiks omfång (d.v.s. i alla butiksvyer i stället för i en viss butiksvy). Om du vill veta om det är ditt fall kör du SQL-skriptet från avsnittet Orsak nedan.
Lösning: Ta bort rader med värdena no_selection
för sådana bilder med hjälp av SQL-skriptet i lösningsavsnittet nedan.
Berörda versioner
- Adobe Commerce lokal 2.X.X
- Adobe Commerce i molninfrastruktur 2.X.X
Problem
Produktbilder kanske inte visas i din butik, även om bildrollerna (Bas, Liten, Miniatyrbild, Färgruta) har angetts korrekt på sidan Produkt på panelen Admin.
När du kontrollerar produktsidan med butiksvyn inställd på Alla butiksvyer har bilden rollerna inställda på skärmen Bildinformation.
I butiken visas dock inte bilden. När du kontrollerar produktsidan på den aktuella butiksnivån (växlar butiksvyn) finns bilden där men rollerna är inte angivna.
Orsak
På Adobe Commerce-instanser för flera butiker (med fler än en butik) kan vissa produktbilder ha no_selection
-värden för attributen image
, small_image
, thumbnail
, swatch
(dessa attribut motsvarar bildroller). Sådana no_selection
-värden uppstår när produktavbildningsrollen anges i det globala, helt lagrade omfånget i stället för i en viss butiks omfång (d.v.s. i alla butiksvyer i stället för i en viss butiksvy).
Tekniskt sett: på store_id=0
(som innehåller globala inställningar för alla butiker på din Adobe Commerce-instans) kan produktavbildningsrollerna anges: det innebär att attributen image
, small_image
, thumbnail
, swatch
har giltiga värden (sökväg till bilder). På store_id=1
(som är en särskild butiksrepresentation) är värdena för dessa attribut samtidigt no_selection
.
Så här kontrollerar du att det är ditt problem
Kör den här SQL-frågan:
SELECT `cpev_s`.*, `cpev_0`.`value` AS `store_value` FROM `catalog_product_entity_varchar` `cpev_s` JOIN `eav_attribute` `ea` ON `cpev_s`.`attribute_id` = `ea`.`attribute_id` LEFT JOIN `catalog_product_entity_varchar` `cpev_0` ON `cpev_0`.`row_id` = `cpev_s`.`row_id` AND `cpev_0`.`attribute_id` = `cpev_s`.`attribute_id` AND `cpev_0`.`store_id` = 0 WHERE `cpev_s`.`value` = 'no_selection' AND `ea`.`attribute_code` IN ('image', 'small_image', 'thumbnail') AND `cpev_s`.`store_id` > 0 AND `cpev_s`.`value` != `cpev_0`.`value` AND `cpev_s`.`value` = 'no_selection';
Om frågan returnerar ett resultat som det nedan, hanterar du problemet som beskrivs i den här artikeln:
+----------+--------------+----------+--------+--------------+----------------------------+
| value_id | attribute_id | store_id | row_id | value | store_value |
+----------+--------------+----------+--------+--------------+----------------------------+
| 67722 | 87 | 1 | 481 | no_selection | /3/5/355sss1_main.jpg |
| 67723 | 88 | 1 | 481 | no_selection | /3/5/355sss1_main.jpg |
| 67724 | 89 | 1 | 481 | no_selection | /3/5/355sss1_main.jpg |
| 67814 | 87 | 1 | 503 | no_selection | /s/k/skb2031_main.jpg |
| 6769 | 87 | 2 | 503 | no_selection | /s/k/skb2031_main.jpg |
| 67815 | 88 | 1 | 503 | no_selection | /s/k/skb2031_main.jpg |
| 6770 | 88 | 2 | 503 | no_selection | /s/k/skb2031_main.jpg |
| 67816 | 89 | 1 | 503 | no_selection | /s/k/skb2031_main.jpg |
| 6771 | 89 | 2 | 503 | no_selection | /s/k/skb2031_main.jpg |
+----------+--------------+----------+--------+--------------+----------------------------+
9 rows in set (0.06 sec)
Varför händer det här?
Om Adobe Commerce-programmet har mer än en butik kanske det inte synkroniserar data mellan en viss butik och den globala lagringsinställningarna.
Värden på store_id=1
har högre prioritet än standardlagret (globalt) (store_id=0
). Programmet kan därför ignorera de globala bildinställningarna och använda lagringsomfångskonfigurationen (no_selection
för bildrollsattribut) när en bild visas.
Lösning solution
Ta bort attribut med no_selection
-värdena med det här SQL-skriptet:
DELETE `cpev_s`.* FROM `catalog_product_entity_varchar` `cpev_s` JOIN `eav_attribute` `ea` ON `cpev_s`.`attribute_id` = `ea`.`attribute_id` LEFT JOIN `catalog_product_entity_varchar` `cpev_0` ON `cpev_0`.`row_id` = `cpev_s`.`row_id` AND `cpev_0`.`attribute_id` = `cpev_s`.`attribute_id` AND `cpev_0`.`store_id` = 0 WHERE `cpev_s`.`value` = 'no_selection' AND `ea`.`attribute_code` IN ('image', 'small_image', 'thumbnail') AND `cpev_s`.`store_id` > 0 AND `cpev_s`.`value` != `cpev_0`.`value` AND `cpev_s`.`value` = 'no_selection';
När attributen har tagits bort ställs rollerna för vissa butiker in och bilderna visas i butiken.
Ytterligare information
Du kommer inte att kunna se korrigeringsresultaten direkt om helsidescache är aktiverat i din Adobe Commerce-instans.
Uppdatera sidcachen med hjälp av menyn Cachehantering på Admin-panelen för att se vilka ändringar som ska visas.
Mer information
Lager och omfång
Lagrar och lagra omfattningar i vår användarhandbok
Bilder
Överför produktbilder i vår användarhandbok
Cache
- Cachehantering i vår användarhandbok för Admin System.
- Hantera cachen i utvecklardokumentationen