Erreur 500 webservice Prestashop : modifier un produit

Erreur 500 webservice Prestashop : modifier un produit

Les PUT du webservice Prestashop

Je vous arrête tout de suite… on parle bien du PUT utilisée par le webservice Prestashop : méthode HTTP qui nous retourne pour le coup cette fameuse Erreur 500 lorsqu’on tente de modifier un produit. J’espère ne pas vous avoir trop alléché..

Étant donné que je me suis confronté à cette erreur 500 une fois et que j’ai pu voir récemment que certaines discussions de forums restaient sans réponse à ce sujet, je me suis dis pourquoi ne pas en faire un article. Puisque j’ai réussi à résoudre mon problème à l’époque, je partage mon expérience en espérant que ça puisse servir.

Réussir à faire s’accoupler (?) deux versions Prestashop

Il y a quelques temps maintenant, j’ai dû utiliser le webservice Prestashop pour mettre en place une synchronisation entre deux sites internet de versions différentes. L’un des sites étaient sous prestashop 1.6.0.9. Tandis que l’autre.. accrochez-vous bien.. sous prestashop 1.1.0.5 ! … Qui a rigolé ?… J’ai entendu rigoler…

Alors pour réussir cette prestation, il a été nécessaire de créer un module prestashop sur-mesure (entre autres..) Donc l’objectif précis de ce module était de permettre à notre vieux site web de parler un langage compréhensible par le site le plus récent.

Et pour cela, quoi de plus logique que d’utiliser le webservice de Prestashop.

Erreur 500!

Seulement, la vie d’un développeur n’est pas toujours tranquille. Comme souvent, on se confronte à une erreur et celle-ci en l’occurrence est assez fatale : l’erreur 500.

Pour ma part, j’avais deux problèmes, l’un évident mais l’autre, moins.

Considérons le code xml suivant pour l’ajout d’un produit (que je vous ai allégé) :

Dans le code ci-dessus, le problème qui se pose est cette ligne :

On la retrouve aussi parfois comme ceci quand vous essayez de modifier la catégorie du produit :

Et cette ligne vous sortira une erreur 500.
Pour corriger cela, nous avons deux solutions :

1. Supprimer la ligne

Soit on supprime la ligne comme c’est habituellement préconisé ce qui donnerait à peu près ça dans votre code php (c’est la ligne 4 qui nous intéresse en particulier) :

2. Complétez correctement la balise position_in_category

Par contre, s’il vous faut absolument renseigner la position de l’article, alors vous devrez renseigner la balise « position_in_category » ainsi :

Pour ma part, je n’ai pas gardé la balise position_in_category car pas utile, mais mes tests montraient que de cette manière, l’erreur 500 était levé.

Et voilà.

Ça vous a aidé ? Encore plus embrouillé ?
Grave à jamais ton histoire sur la toile, grave un commentaire 😉

Laisser un commentaire

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