10 Oct 2023
Comment corriger sur Prestashop l'erreur price specification

Corriger l’erreur Prestashop “not found for currency”

Suite à une refonte d’une boutique Prestashop et à une migration des données, j’ai été confronté à une erreur qui empêchait l’accès aux commandes. Voici comment j’ai résolu mon problème.

L’erreur exacte Prestashop dans src/Core/Localization/Locale.php

Ces conseils vont porter sur cette erreur ci-dessous précisément. Suite à une alerte et que vous activez le mode debug dans Prestashop vous devriez avoir ce message.

Si vous n’avez pas exactement cela, mes conseils peuvent ne pas être utiles. Voici le message :

Prestashop error price not found for currency

Ce message apparaît dans le menu “commande”. Cette erreur peut s’afficher aussi bien sur Prestashop 1.7 que sur Prestashop 8.

D’ailleurs, j’ai rencontré ces soucis sur la version 8.1.1.

Avant toute modification mentionnée ci-dessous, pensez à effectuer des sauvegardes de votre base de données.

Une requête SQL pour modifier la devise des commandes Prestashop

Dans mon cas, le problème était présent car les anciennes commandes du site, après une migration avec le module “migration pro”, n’avaient pas de devise par défaut.

Dans la base de données, l’id_currency était à 0 au lieu d’avoir la valeur “4” qui correspondait à la devise par défaut de la boutique.

Pour connaître l’id de la devise de la boutique, vous pouvez le consulter dans le back-office ou directement dans la table ps_currency.

J’ai donc utilisé une requête SQL pour attribuer à toutes les commandes la devise portant le numéro 4.

UPDATE ps_orders
SET id_currency = 4
WHERE id_currency = 0;

Bien sûr, remplacez “ps_” par le préfixe de votre boutique et indiquez l’id de votre devise.

N’oubliez pas les clients avec l’erreur “Price specification not found for currency”

Le problème vient de l’id_currency et il n’est pas chargé uniquement dans les tables des commandes.

Si jamais vous allez dans le menu panier et sur la fiche d’un client, vous allez avoir l’erreur 500 même si elle est corrigée sur les commandes.

Sur la fiche client en back-office de Prestashop on voit les commandes mais aussi les paniers qu’il a fait !

Et dans la base de données, la table ps_cart charge aussi l’id de la devise. Donc vous devez aussi faire ceci :

UPDATE Lmd10_order_payment SET id_currency = 4 WHERE id_currency = 0;

Autres solutions pour corriger le problème de devise

La solution basique est de re-importer les packs de localisation dans “international > localisation“.

Vous pouvez également désactiver puis réactiver la devise par défaut. Pour ce faire, vous devrez en ajouter une autre afin de pouvoir désactiver celle qui est par défaut.

Vous pouvez aussi consulter les retours de la communauté sur cette erreur en suivant ce lien : https://github.com/PrestaShop/PrestaShop/issues/14595

Besoin d’un développeur Prestashop pour corriger cette erreur ?

– Je me connecter à votre boutique, à votre serveur et votre base de données
– Je lance une sauvegarde de la base et je lance les investiguations
– Correction immédiate du problème ou diagnostic de l’état des lieux

Il suffit de commander un ticket Prestashop sur mon e-shop.

Laisser un commentaire

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