Les images de produit ne s’affichent pas malgré les rôles d’image de modification de produit

Cet article fournit un correctif lorsque les images du produit ne s’affichent pas sur votre storefront, malgré les rôles d’image définis sur la page de modification du produit.

Cause : sur les instances Adobe Commerce comportant plusieurs magasins, certaines images de produit peuvent avoir les valeurs no_selection pour les attributs de rôle d’image image, small_image, thumbnail, swatch. Ces valeurs no_selection’émergent lorsque le rôle d’image du produit est défini sur la portée globale de tous les magasins au lieu de la portée d’un magasin particulier (en d’autres termes, sur le toutes les vues de magasin au lieu d’une vue de magasin particulière). Pour comprendre si c’est votre cas, exécutez le script SQL à partir de la section Cause ci-dessous.

Solution : supprimez des lignes avec les valeurs no_selection pour ces images à l’aide du script SQL de la section Solution ci-dessous.

Description description

Environnement

  • Adobe Commerce On-Premise 2.X.X
  • Adobe Commerce sur Cloud Infrastructure 2.X.X

Problème

Les images du produit peuvent ne pas s’afficher sur votre storefront, bien que les rôles d’image (Base, Petit, Miniature, Échantillon) aient été correctement définis sur la page du produit de votre panneau d’administration.

Lorsque vous vérifiez la page Produit avec l’option Vue du magasin définie sur Toutes les vues du magasin, les rôles sont définis sur l’écran Détails de l’image.
all_store_views.png
image_roles.png

Cependant, sur le storefront, l’image ne s’affiche pas ; lorsque vous vérifiez la page Produit au niveau du magasin en particulier (en changeant la vue Store View), l’image est là mais les rôles ne sont pas définis.

image_roles_not_set.png

Cause

Sur les instances Adobe Commerce multi-magasin (qui comptent plusieurs magasins), certaines images de produit peuvent avoir les valeurs no_selection pour les attributs image, small_image, thumbnail, swatch (ces attributs correspondent aux rôles de l’image). Ces valeurs no_selection’émergent lorsque le rôle d’image du produit est défini sur la portée globale de tous les magasins au lieu de la portée d’un magasin particulier (en d’autres termes, sur le toutes les vues de magasin au lieu d’une vue de magasin particulière).

D’un point de vue technique : sur store_id=0 (qui contient les paramètres globaux de tous les magasins de votre instance Adobe Commerce), les rôles d’image de produit peuvent être définis. Cela signifie que les attributs image, small_image, thumbnail swatch ont des valeurs valides (chemin d’accès aux images). En même temps, sur store_id=1 (qui est une représentation de magasin particulière), les valeurs de ces attributs sont no_selection.

Comment vérifier que c’est bien votre problème

Exécutez cette requête SQL :

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';

Si la requête renvoie un résultat comme ci-dessous, vous gérez le problème décrit dans cet article :

+----------+--------------+----------+--------+--------------+----------------------------+
| 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)

Pourquoi cela arrive-t-il ?

Si l’application Adobe Commerce comporte plusieurs magasins, elle peut ne pas synchroniser les données entre un magasin spécifique et les paramètres du magasin global.

Les valeurs sur store_id=1 ont une priorité supérieure à celle du magasin (global) par défaut (store_id=0). Ainsi, l’application peut ignorer les paramètres d’image globaux et utiliser la configuration de l’étendue du magasin (no_selection pour les attributs de rôle d’image) lors de l’affichage d’une image.

Résolution resolution

Supprimez les attributs avec les valeurs no_selection à l’aide de ce script SQL :

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';

Une fois ces attributs supprimés, les rôles de magasins spécifiques sont définis et les images sont affichées sur le storefront.

Détails supplémentaires

Vous ne pourrez pas voir immédiatement les résultats de la correction si le Cache de page complet est activé dans votre instance Adobe Commerce.

Pour que les modifications s’affichent, actualisez le cache de page à l’aide du menu Gestion du cache de votre panneau d’administration.

Informations supplémentaires

Magasins et étendues

Magasins et étendues de magasin dans notre guide de l’utilisateur

Images

Chargement des images du produit dans notre guide de l’utilisateur

Cache

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f