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.

all_store_views.png

image_roles.png

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.

image_roles_not_set.png

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

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a