Catégories
prestashop

[RESOLU] Prestashop : Mise à jour ou enregistrement impossible d’un produit

Si depuis quelques jours, tu remarques un problème de mise à jour des produits Prestashop, cet article devrait t’aider à comprendre et corriger le problème.

Le bug de mise à jour des produits touche toutes les versions de Prestashop (de 1.5 à 1.6.1.7), il sera apparement corrigé dans les version 1.6.1.8 et dans la 1.7 (j’ose espérer).

Mise à jour :

La 1.6.1.8 ne semble pas épargné 🙁

Il apparait avec les derniers mises à jour des navigateurs comme la version de chrome 54.0

Un topic (un poil technique) sur : pourquoi utilisez des requêtes asynchrone

Exit les requêtes synchrone dans Prestashop :

Prestashop utilise des requetes synchrone pour le fonctionnement du back-office, mais ces dernières sont depuis 2012 déprécié par les navigateurs WEB comme Google Chrome / Firefox…

Chrome d’ailleurs, indique dans la console javascript (Clic droit > Inspecter > Console) que les requêtes synchrone sont dépréciés car elles jouent un rôle négatif sur l’expérience utilisateur.

 

Impossible de mettre a jour produit prestashop
Impossible de mettre a jour produit prestashop

 

Le message est clair mais on ne s’attendait pas un à devoir corriger d’urgence les boutiques prestashop. J’ai eu connaissance de ce bug par un client qui ne pouvait plus enregistrer ces produits, enfin c’était même plus capricieux que ça, car le bug semblait être aléatoire. Il pouvait parfois mettre à jour un produit alors que genre 1 fois sur 4 ça ne fonctionné pas… pire encore certain de ses employés pouvait enregistrer des produits alors que d’autres ça ne pouvait rien faire.

 

Mise à jour :
PrestaEdit m’indique que le fait de cliquer sur le mot « sauvegarder » permet de bien enregistrer malgré le bug alors que si tu cliques sur le bouton, ça ne marche. D’ou le côté aléatoire des tests.

 

 

J’ai tout d’abord pensé à un problème de cache… mais rien de se côté là. J’ai fini par perdre mes derniers cheveux, lorsque AtchWork (membre de la communauté Prestashop) m’a orienté vers le topic du forum :

https://www.prestashop.com/forums/topic/563951-probl%C3%A8me-enregistrer-et-rester/

Problème identifié / Fix à appliquer :

Le problème est donc identifié, il faut virer les requêtes synchrone de Prestashop (back-office) pour les remplacer par des asynchrones… ça semble logique comme ça mais c’est parfois pas si simple 🙂

 

Un pull-request à été proposé sur la branche Github de prestashop :

https://github.com/PrestaShop/PrestaShop/pull/6749 – 9 fichiers sont à modifier pour corriger ce bug.

/!\ Attention, ces fichiers ne concerne que les versions 1.6.1.0+ de prestashop. Les version 1.6.0.0 -> 1.6.0.9 ont une arborescence légèrement différentes.

Télécharger le zip des fichiers à remplacer ici :

 

Les liens vers les archives ont été mis à jour le 09 avril 2019

Prestashop version (supérieur à) 1.6.1.0 :

prestashop-fichiers-1-6-1-0-et-superieur

Prestashop version 1.6.0.0 a 1.6.0.9 :

prestashop-fichiers-1-6-0-9-et-inferieur

 

Il te suffit de remplacer les fichiers de du dossier admin-dev dans ton dossier adminXYZ

et de remplacer les dossier JS et classes à la racine de ton Prestashop. Normalement, ton filezilla (ou autre) doit te demander si tu souhaites remplacer les fichiers sources par les nouveaux : OUI

C’est fini ! Il y a plus qu’a mettre à jour tes produits 😉

 

24 réponses sur « [RESOLU] Prestashop : Mise à jour ou enregistrement impossible d’un produit »

Petit retour d’expérience sur 1.6.1.8,

je n’ai pas pu remplacer l’un des 3 fichiers (en l’occurence tree_toolbar_search.tpl) car dans la 1.6.1.8, il ne semble pas exister. Son nom a dû changer et j’ai pas pris le temps de faire un diff pour voir la modif à opérer.
Mais l’essentiel est que ===> CA MARCHE !

Grand merci, cette sauvegarde aléatoire me rendait dingue.
Au passage c’est le genre de bug qui m’a toujours fait flipper sur PS, qui reste vraiment super bien sur plein d’aspects (j’adore PS).

Bonjour à vous,
je m’explique : j’ai une boutique qui tourne sur la version 1.6.0.9 mais suite aux fameux bugs du bouton Enregistrer sur les fiches produits à cause de la nouvelle politique des navigateurs qui bloque les requêtes synchrones, j’ai voulu migrer vers la version 1.6.1.9 mais une fois mise à jour, la boutique ne fonctionne plus (dans l’admin les sous menus des catégories n’apparaissent plus et un message d’erreur serveur apparaît) donc je suis revenu à la version précédente.
J’ai pu voir qu’il existait un patch correctif pour solutionner le bug du bouton enregistrer lorsqu’on veut mettre à jour ou créer un produit : je l’ai mis mais le bug persiste malheureusement.

Donc je vous avoue que j’ai plus trop de solutions si une personne a connu cette impasse et qu’elle souhaite m’aider je suis preneur 🙂
Merci à vous.
Cordialement.

Bonjour RobbStark,

Est ce que lorsque tu clics droit sur ta page > Inspecter dans l’onglet console, tu as le message qui parle de requête synchrone et que c’est déprécié ?

Si c’est le cas, le fix n’a pas bien été appliqué. Vérifie que les 9 fichiers ont bien été modifié

https://github.com/PrestaShop/PrestaShop/pull/6749

Tu peux les faire un par un pour être sur 😉

Je vous remercie pour votre réponse rapide.

Oui lors de l’inspection de l’élément, j’ai bien le message indiquant la requête synchrone.

Sur le lien que vous m’avez donné c’est pour les versions 1.6.1.x ? Car je suis sur la 1.6.0.9. J’avais téléchargé auparavant le lien du patch présent sur votre blog pour ma version.

Cordialement.

Désolé pour le double post.
J’ai mis le patch correspondant à ma version.
A présent j’ai ce message lorsque je consulte la console :
« Uncaught ReferenceError: mod_evasive is not defined(…) »

Le lien est effectivement pour la version 1.6.1.X mais il faut adapter les patchs a la version 1.6.0.9.
Si le fichier cible ne se trouve pas sur votre version,faut retrouver le fichier correspond (qui doit avoir le même nom) mais pas forcément dans le dossier.

Pour l’erreur au niveau de mod_evasise,
Juste avant la condition

if (mod_evasive)

ajouter juste avant mod_evasive = false;

Je suis reparti de zéro, j’ai changé manuellement fichier par fichier comme vous me l’aviez conseillé. La console m’affiche cette fois :
« ReferenceError: tinyMCE is not defined[En savoir plus] tinymce.inc.js:44:2 »

Oui je l’ai modifié aussi. J’ai modifié les 9 fichiers.
Je peux à nouveau créer et modifier des articles mais dans Association (dans la catégorie Produits) lorsque je décoche « Accueil » et je coche les sous menus « Femme -> robe » et que je clique sur Enregistrer et rester, le bug réapparaît mais si je coche Accueil puis Femme puis robe (donc les 3) l’enregistrement se déroule correctement. Je vais essayer de trouver pourquoi. si je trouve une solution je partagerai ici si ça peut aider.

Un grand merci à vous pour votre précieuse aide.

Je confirme, liens morts. Ça pourrait servir de les restaurer car le problème de 2016 vient visiblement de ressurgir avec la 1.6.1.2.

Bonjour a vous,

J’ai remis les liens désolé pour l’attente.

Je reste a disposition

Juste un grand merci ! J’administre une boutique en version 1.6.0.9, avec des centaines de produits et des milliers de déclinaisons. La mise à jour des produits marchait de façon aléatoire, avec bien souvent un retour inopiné vers la liste des produits, sans enregistrement. Le patch a fait son office et a résolu le problème (et en plus le chargement du back-office me semble bien plus rapide).

Bonsoir,
J’essaye de patcher une 1.6.1.7 mais jusque là ça marche pas, j’en suis à ma 2eme tentative (remettre fichiers d’origine, puis remettre les 9 du « patch)
Comportement de presta aléatoire :
– parfois « Création réussie » alors que rien n’est enregistré, idem pour les modifs d’un produit…

– parfois « Création réussie » suivie du message « Objet impossible à charger (introuvable)  »
avec avertissements de la console :

ReferenceError: tb_pathToImage is not defined jquery.thickbox.js:14:231
jQuery 5

j
fireWith
ready
K
L’encodage de caractères d’un document dans un cadre n’a pas été déclaré. Le document peut apparaître différent s’il est visionné sans le document qui l’encadre. enquire.min.js

L’encodage de caractères d’un document dans un cadre n’a pas été déclaré. Le document peut apparaître différent s’il est visionné sans le document qui l’encadre. admin-theme.js

Erreur dans les liens source : TypeError: NetworkError when attempting to fetch resource.
URL de la ressource : moz-extension://a9e84b5c-8402-4f35-9f7c-2ec2cccfd072/content/js/purify.min.js
URL du lien source : purify.min.js.map

Dois je retenter la manip une 3ème fois ?
Merci pour votre aide

Bonjour, je suis en version 1.61.5 j’ai mis à jour les fichiers mais j’ai toujours le même message d’erreur lors de l’enregistrement de l’image produit :
« Failed to execute ‘send’ on ‘XMLHttpRequest’: Failed to load ‘/index.php?controller=AdminProducts&token=54bf86d5f9eab849084200f7e277f264&ajax=1&id_product=284&action=addProductImage&rand=1559650945600’. »

Help !

prestasho 1.6.0.8 php 5.6
en attendant la maigration vers 1.6.1.24 php 7.3
j’ai remplacé les fichiers mais toujours un problème
3 erreurs
Le champ link_rewrite est obligatoire au moins en Français (French)
Le produit doit être au minimum dans une catégorie.
Ce produit doit être dans la catégorie par défaut.
alors que tout est renseigné
une idée
merci

Tout d abord, MERCI. pour ce patch.

J ai plusieurs boutique, sur l une avec la version supérieur a 1.6.1.0… tout va bien..
Sur l autre, version 1.6.0.8, donc, j ai pris les autres fichiers, et là.. ca ne fonctionne qu a moité.!
L enregistrement fonctionne une fois sur deux, et surtout, une fois que j ai rentré le nom du prod, ref, et descrip…
Si je clique sur « enregistré et rester », j ai les 3 erreurs :
Le champ link_rewrite est obligatoire au moins en Français (French)
Le produit doit être au minimum dans une catégorie.
Ce produit doit être dans la catégorie par défaut.

Puis, les autres onglets de la page produits, comme Prix, Referencement SEO, Associations, etc… j ai rien qui s affiche.. donc, impossible de le remplir.!

J ai pourtant rebalancer une seconde fois les fichiers, a leur place pour etre sur.. en vain.

De ou , peut provenir le probléme ? SVP

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *