Récupérer une commande perdue sous Prestashop

Vous n’avez jamais perdu de commande sous Prestashop ? Si c’est le cas vous avez de la chance, pourtant ce cas existe. Perdre une commande peut s’avérer problématique et nuire à votre image, c’est pourquoi il est important d’avoir l’oeil sur quelques points essentiels.



Quand peut-on perdre une commande ?

En fait on peut perdre une commande, en principe au moment ou l’utilisateur « confirme le paiement », que ce soit avec la méthode virement bancaire, carte de crédit ou avec d’autres méthodes. Une fois que l’utilisateur confirme le paiement et que celui-ci est considéré comme valide, Prestashop va tenter d’enregistrer la commande dans la base de données et c’est là que bien souvent le blocage survient. A cette étape vitale, Prestashop converti le panier du client en commande.

Regarder les logs dans le back-office
Les erreurs liées à l’échec de la génération de la commande sont en principe listées dans le back-office sous l’onglet « Outils->Logs ». Dans notre cas ce type d’erreur peut mettre la puce à l’oreille, il vaut la peine de s’y attarder pour comprendre la cause de l’erreur (ici les erreurs proviennent de tentatives de débugage qui ont stoppé le processus). Dans tous les cas il est toujours intéressant d’aller regarder les logs, pour être sûr que les étapes vitales du shop fonctionnent.



Consulter le panier du client dont la commande a été perdue

Si vous ne trouvez pas la commande de votre client accédez à l’onglet « Clients->Paniers », retrouvez le panier correspondant puis ouvrez-le. Ensuite, essayez de cliquer sur le texte « Commande N° xxx », si vous pouvez cliquer, alors vous serez ensuite redirigé dans la commande. Si vous ne pouvez pas cliquer sur le texte, alors cette solution est à oublier.

Si vous avez réussi à cliquer sur le lien, vous pouvez donc modifier le statut de votre commande (choisissez le statut qui vous convient), puis cliquez sur le bouton modifier. Logiquement ensuite la commande devrait s’afficher sous l’onglet des commandes.

Utiliser un outil de récupération
Prestashop a développé un outil de récupération de commandes ou plutôt un module qui permet de faire repasser son panier en commande. Pour dire vrai, la commande n’a jamais été perdue, c’est juste que sa génération a échouée. Vous pouvez acheter ce module de récupération de commande bien utile sur Prestashop Addons. Dans ce module il vous suffit de chercher le nom du client, de sélectionner le statut de commande désiré, puis ensuite de valider le panier concerné et ensuite vous aurez votre commande qui sera générée.



Pour les plus avancés

Voici l’endroit vital dans le code où la commande échoue à la génération, il s’agit de la fonction « validateOrder » du fichier « classes/PaymentModule.php », parfois il se pourrait par exemple qu’un des paramètres de l’objet ne corresponde pas et donc la validation ne passe pas. Vous pourriez donc faire quelques essais en retirant cette condition « Validate::isLoadedObject($cart) » pour voir si le problème continue de survenir.



Bilan

L’étape de la génération de la commande est un moment délicat, entre Prestashop 1.3 et Prestashop 1.4 la sécurité a augmenté dans le processus de validation avec de nouveaux jetons de sécurité (même entre différentes versions 1.4x il me semble). Il est pour cela important d’être sûr que les méthodes de paiement que vous utilisez soient bien à jour selon les nouveaux critères d’exigences de Prestashop. Un cas qui peut aussi se produire, c’est avec les mises à jour de Prestashop « partiellement » réussie, j’ai pu constater cela sur une boutique d’un client. C’est pourquoi les mises-à-jour sont aussi à exécuter avec prudence, car ce genre de problème n’est pas toujours évident à solutionner (surtout pour trouver l’origine du bug). Utilisez de préférence des versions stables avec les méthodes de paiements approuvées pour votre version. Voilà maintenant vous avez quelques pistes !

Notez mon billet, Google va adorer :
1 étoiles - J'aime pas !2 étoiles - Bof !3 étoiles - Bien !4 étoiles - Très bien !5 étoiles - Génial ! (Soyez le premier à noter ce billet)
Loading...

5 commentaires sur “Récupérer une commande perdue sous Prestashop”

  1. Bonjour,

    Avez-vous déjà rencontré le cas où, lorsque le client veut valider son panier, il est soudainement déconnecté lorsqu’il clique sur « suivant » dans l’étape adresse ?

    Cela arrive uniquement avec internet explorer. Dans ce cas, le client n’arrive jamais à terminer la commande et le panier n’est récupérable qu’avec l’outil mentionné dans votre article je pense.

    Ma version de Prestashop v.1.4.6.2

    Meilleures salutations
    Fajy

  2. Bonjour Webbax,

    Merci pour votre réponse.

    Quand vous parlez de template par défaut, je suppose que vous faites allusion au thème du magasin utilisé ?

    Mon magasin en production utilise les fonctionnalitées par défaut livrées par Prestashop. Vous pouvez le voir sous l’adresse suivante :

    http://www.gravilux/shop

    Mon deuxième magasin qui est encore en phase de pré-production utilise un thème différent mais souffre également de la même erreur :

    http://www.apprentiphotographe.ch/shop

    En poussant les essais un peu plus loin, j’ai remarqué que le problème survient avec les versions Internet Explorer 8 et inférieures. Avec Internet explorer 9 (ou Firefox), cela semble fonctionner normalement, actuellement.

    Meilleures salutations
    Fajy

  3. Merci pour le billet.
    Dans la série des bonnes blagues de prestashop qui file vraiment un mauvais coton, quoi de plus normal que de vendre un module pour pallier à ses propres manques.

    1. Bonjour,

      Pour information, vous pouvez dans les versions récentes de Prestashop (à partir de 1.5) depuis le panier du client via back-office, les transformer en commande.

      Il suffit d’ouvrir le panier du client sous « Clients -> Paniers » et de lancer le processus de transformation (via le bouton prévu à cet effet), dans certains cas cela fonctionne.

      Merci pour votre visite !

Laisser un commentaire

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