Vous avez peut-être rencontré ce problème suite à une migration de votre Prestashop 1.7 vers une version plus récente. L’impossibilité d’ajouter plusieurs images d’un coup à votre produit. Voici comment résoudre ce problème.
Une erreur de base de données
Suite à la migration de votre site, certaines tables en base de données n’ont pas été mises à jours pour Prestashop 1.7. Pour rappel une table va correspondre à certaines données (clients, produits etc). Dans notre cas actuel, c’est un problème avec les tables VOTREPREFIXE_image et VOTREPREFIXE_image_shop.
Si vous essayez d’importer une image et que vous avez un message en rouge qui indique : “erreur lors de la création de l’image supplémentaire” alors à coup sûr la suite de l’article va vous plaire !
En activant le mode débug de Presta voici le message d’erreur :
Vérifiez l’erreur de votre côté en affichant les erreurs en suivant mon article ou ma vidéo :
Corriger le problème avec la table image_shop
Attention, si vous ne connaissez pas PhpMyAdmin et la gestion de base données je vous conseil fortement de faire appel à un freelance Prestashop. Avant toute intervention il est impératif de faire des sauvegardes de votre bdd.
Pour corriger le problème j’ai commencé par exporter mes 2 tables ps_image et ps_image_shop.
Ensuite j’ouvre mon éditeur de texte pour pouvoir faire mes remplacements.
Le but est d’appliquer la valeur NULL à 0 pour chaque élément :
Du coup j’ai fais une recherche des éléments (ctrl+f) “0),” et un remplacement en masse par “NULL),“.
Ce qui donne :
J’ai fais une modification aussi au niveau de la structure de la table ps_image, voici ce que j’avais :
J’ai remplacé “NOT NULL DEFAULT ‘0’” par “DEFAULT NULL” sur la ligne cover.
Le résultat :
Une fois les fichiers édités j’ai supprimé les 2 tables sur PhpMyAdmin et j’ai importé mes 2 fichiers sql. Cela a corriger le problème.
Cependant je suis conscient qu’il y a un moyen plus simple de corriger cela. Si jamais un développeur lis ces lignes il peut mettre la requête SQL en commentaire pour aider la communauté 🙂
Je rappelle qu’il faut absolument faire une sauvegarde de votre base de données Prestashop avant d’intervenir.
Vous pouvez faire appel à un professionnel. Je suis Freelance expert Prestashop et pour me contacter rendez-vous sur ma page contact.
Merci pour cet article ! Nous avions ce problème suite à une MAJ 1.6 -> 1.7
Pour ceux qui souhaitent passer directement depuis PhpMyAdmin, voici les requêtes SQL :
UPDATE ps_image SET cover=NULL WHERE cover = 0
UPDATE ps_image_shop SET cover=NULL WHERE cover = 0
Bien penser au préalable à changer les structures des deux tables ps_image & ps_image_shop en NULLable (et retirer cover de l’index ID_product si besoin) :
https://imgur.com/a/UGv039L
Merci pour la requête, très utile !
Bonjour,
Je rencontre ce soucis actuellement sur un de mes sites.
Par contre, je ne comprends pas, la valeur définitive sur “cover” des deux tables, doit être 0 ou NULL pour le coup ?
Parce que vous indiquez : “Le but est d’appliquer la valeur NULL à 0 pour chaque élément”
Puis ’ai remplacé “NOT NULL DEFAULT ‘0’” par “DEFAULT NULL” sur la ligne cover.
Car tout en NULL break les vignettes en BO.
ça doit être DEFAULT NULL. Avez-vous tenté après la modification de régénère les images ? (apparence > images)
Bonjour,
Effectivement je n’ai pas régénérer les images, par contre, vous régénérez lesquelles ?
Merci !
Régénérer tout si vous ne savez pas lesquels sont cassées.