Je suis intervenu sur le site d’un client pour un bug peu courant. Lors d’un choix d’une déclinaison, automatiquement la déclinaison par défaut était à nouveau sélectionné. Cela est arrivé sur une des premières versions de Prestashop 1.7. Nous allons voir comment corriger le problème.
Configuration des déclinaisons dans le back-office de Prestashop 1.7
Tout d’abord il faut regarder si votre configuration côté admin est bonne. Pour cela il faut vous rendre dans Paramètres de la boutique > produit.
Dans la colonne fiche produit il faut s’assurer que “Séparateur des attributs dans les liens des produits” soit bien “-” comme ceci :
Problème dans le ProductController du thème
En fouillant un peu sur certains forums Prestashop et en comparant des fichiers Prestashop 1.7 (entre différentes versions), j’ai remarqué que certains éléments étaient inexistants dans le Prestashop du client. Je pense que ce bug a été remonté et l’équipe de Presta a dû corriger le problème sur les dernières versions.
Dans votre fichier, controllers > ProductController.php allez à la ligne 945.
Remplacez la fonction getIdProductAttribute par :
Télécharger le fichier ProductController.php pour Prestashop 1.7
Merci, je cherchais effectivement une réponse
Bonjour Matthieu,
je cherchais l'information en ligne et je l'ai trouvé cependant ça ne fonctionne pas.
J'ai pourtant 2 sites en version 1.7 :
1 en version 1.7.5.2 ou j'obtiens cette erreur
1 en version 1.7.4.2 sur lequel aucun probléme.
J'ai téléchargé ton fichier et je l'ai copié mais ça ne fonctionne toujour pas
si tu as une idée,
merci
Avez-vous bien vidé le cache après la modification dans le back-office et/ou sur le serveur ?
Sinon de votre côté vous avez peut-être une erreur au niveau Javascript.
Cette solution a résolu le problème de mon client, je n’en ai pas d’autres pour le moment.
Mon cache n’est pas activé,
j’ai tout de même supprimé le cache mais rien n’y fait.
C’est étrange que d’une version ça ne fonctionne pas
Je penses que c’est du à l’installation car j’ai installé un des sites en automatique avec 02switch et l’autre je l’ai fait via ftp mais je ne me souviens plus lequel a été installé en auto.:-)
Je vais continuer à chercher
Merci quand même
Bonjour Matthieu,
J’ai exactement le même problème.
Au début j’avais un problème un message erreur quand j’ai ajouté deuxième déclinaisons.
Message : La valeur du paramètre “max_input_vars” dans le fichier PHP.ini doit être élevée à 2000 afin de permettre la soumission du formulaire produit
Pour résoudre le problème, j’ai créé un fichier .user.ini j’ai placé dedans:
max_input_vars=3000
memory_limit = 256M
Je pensé avoir solutionné le problème mais non. J’ ai 4 déclinaisons a ajouter sur chaque produits et recherchant sur internet je suis tombé sur cette solution
Dans votre fichier, controllers > ProductController.php allez à la ligne 945.
Remplacez la fonction getIdProductAttribute par :
J’ai remplacé le fichier mais j’ai toujours le meme problème mes 4 déclinaisons de ne s’affiche pas, juste la première.
MON CACHE EST VIDE BIEN SURE
Avez vous des idées ?
MERCI
Bonjour,
Pour le max_input_vars vous pouvez aussi faire une demande directement à votre hébergeur pour augmenter les valeurs.
Si vous avez vidé le cache sur le serveur, dans votre navigateur, tout désactivé dans votre Prestashop, alors il y a un problème ailleurs.
Et comme ça je n’ai pas d’idée, faudrait fouiller 🙂
Salut,
Merci pour ce partage. Il faudrait le faire remonter sur le github de Prestashop car j’ai installé une boutique prestashop récemment qui rencontrait exactement le même souci.
Cordialement,
Maxim
Bonjour,
Super si j’ai pu aider, un peu moins si PS ne l’a pas corrigé depuis que j’ai écrit cet article
Je vais faire remonter cela,
Merci à vous
bonjour, meme soucis pour moi j’ai deux déclinaison et il n’y a que la première qui apparait
je suis en 1.7.6.8 pourtant
La version de Prestashop n’est pas à remettree en cause si jamais il y a un conflit avec un autre module ou votre thème c’est peut-être un problème Javascript.
Autre astuce, vérifiez au le max_input_vars sur votre serveur (Je vous laisse voir le commentaire d’un autre utilisateur sur cet article)
bonjour,
Alors moi j’ai le même problème, mes miniatures s’affichent bien sans souci, mais mon souci est que la première reste sélectionnée et je ne peux pas en sélectionner une autre, ma souris le survole juste mais impossible de la sélectionnée.
J’ai bien sûr mis votre fichier, vider mon cache, j’ai même recréer les attributs mais rien y fait le problème est toujours présent et j’en ai absolument besoin. je suis sur Prestashop 1.7.2
et quand je clique sur commander, il n’enregistre aucun choix, même pas celui qui est sélectionné.
Avez-vous une idée de ce que je pourrais faire, je suis vraiment perdu et je ne sais plus quoi faire…
nous pouvons si vous le souhaitez en discuter par mail pour trouver une solution, toute aide serait la bienvenu en vous remerciant par avance pour votre aide.
Si l’ajout de ce fichier ne permet pas de résoudre le problème alors il faut chercher ailleurs.
Pour ce type de bug il peut y avoir des dizaines d’explications.
Il doit y avoir une erreur JS qui traine dans votre thème ou à cause d’un plugin.
Si vous avez besoin d’un prestataire pour intervention vous pouvez me contacter.