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 :
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.
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 :
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.