Le sujet des commandes dédoublonnées, liées ou commandes doublons avec PrestaShop n’est pas un cas isolé puisque j’ai rencontré le cas sur nombreuses de vos boutique en ligne.
Sommaire
- Quel est le problème des commandes liées ou commandes doublon dans PrestaShop ?
- Comment corriger le bug des commandes doublons / liées dans PrestaShop ?
- Conclusion
- Aller plus loin
Quel est le problème des commandes liées ou commandes doublon dans PrestaShop ?
C’est très simple ! Au lieu d’avoir une seule commande dans le back office, vous avez :
- 2 commandes avec 2 ID différents,
- 2 commandes avec la même référence,
- 2 commandes qui contiennent les produits de la commande initiale répartis de manière aléatoire.
Voici un aperçu d’une commande doublon ou commande liée dans PrestaShop :


Comment corriger le bug des commandes doublons / liées dans PrestaShop ?
Voici les 5 étapes pour corriger le problème / bug des commandes doublons / liées dans PrestaShop 1.6 / 1.7 – c’est aussi le résumé de la vidéo qui suit :
- Connectez-vous à PhpMyAdmin,
- Ouvrez la table ps_orders,
- Editez la structure de la table,
- Modifiez la longueur du champ « reference » de 9 à 14 caractères,
- Enregistrez et savourez !
Pour tous ceux moins familiers avec la gestion des bases de données sous PrestaShop, je vous ai préparé une vidéo tuto simple et efficace :
Une fois que vous aurez suivi les étapes de ce tuto PrestaShop, les références de vos commandes seront désormais sous ce format :

Conclusion
Ce problème peut réellement vous mener la vie dure en tant que marchand pour la gestion de vos commandes. C’est pourquoi ce tuto PrestaShop est là pour vous aider à passer à travers ce problème comme ces autres tutos prestashop d’ailleurs.
Je me dis surtout que si vous souhaitez vous lancer dans la vente en ligne aujourd’hui sans aucune connaissance technique, vous vous risquez à des situations délicates. Mon conseil : entourez-vous des bonnes personnes ou formez-vous 😉
J’espère que cet article vous a plu. Pensez à vous abonnez à la newsletter pour être averti des prochains articles / tutos !
Aller plus loin
Pour compléter cet article, je vais publier d’autres pistes de travail pour aider à solutionner cette situation qui peut avoir différentes causes.
Il y a plusieurs issues, ce topic liste les differents problèmes recensés : https://t.co/L6PcLMvQ8u
Selon certains, ce n’est pas un bug mais une fonctionnalité : ce n’est pas mon avis !— Jeff Viguier (@jfviguier) July 1, 2020
Bonjour Arnaud,
J’ai testé la solution de francoisparis dans le fichier /classes/order/Order.php, le site est en 1.7.6.7. J’ai bien eu les références des commandes à 14 caractères mais cela a créé des erreurs: les commandes se sont bien créées dans l’admin mais les paiements faits par carte bancaire ne sont plus remontés, la banque a eu une erreur FAILED_SERVER_500_ERROR et les états des commandes sont restés vides.
Une fois que j’ai remis le nombre de caractères à 9, tout a fonctionné à nouveau correctement.
Y a-t-il encore autre chose qu’il faut en fait faire?
Merci !
Bonjour Helloibro,
Merci pour votre commentaire.
Il faut voir du côté du module de paiement pourquoi il génère une erreur déjà.
Peut être pourriez-vous vous tourner vers le développeur du module en question 😉
Bonjour,
Modifier la structure de la colonne « reference » en mettant varchar(14) ne change en rien le nombre de caractères insérés lors de la création d’une commande, puisqu’au niveau du code de presta, ce sont toujours 9 caractères aléatoires qui sont générés ?
Cf la fonction concernée dans la classe order.php :
public static function generateReference()
{
return strtoupper(Tools::passwdGen(9, ‘NO_NUMERIC’));
}
public function orderContainProduct($id_product)
{
$product_list = $this->getOrderDetailList();
foreach ($product_list as $product) {
if ($product[‘product_id’] == (int) $id_product) {
return true;
}
}
return false;
}
Bonjour Francoisparis,
Merci pour votre commentaire.
En effet, la modification en base de données ne fait que modifier le nombre de caractère maximum pour le champ.
J’ai omis de citer la modification de la fonction generateReference comme vous le dites et comme c’est indiqué ici : https://github.com/PrestaShop/PrestaShop/issues/20641
Bonne journée 😉
Bonjour et merci par votre solution.
Ce que je ne comprends pas ce pourquoi avec 14 chiffres le bug ne reviendra pas ?
Bonjour Pierre,
Merci pour le commentaire !
Comme déjà dit, j’ai constaté sur une boutique avec un grand nombre de commandes que les références se généraient en double d’où l’erreur.
Pour aller plus loin, voici d’autres ressources :
https://github.com/PrestaShop/PrestaShop/issues/11115
https://github.com/PrestaShop/PrestaShop/issues/20641
Bonne journée 🙂
Bonjour Arnaud,
Merci pour cette astuce !
As-tu une explication sur l’origine de ce bug ?
Bonjour Rachel,
Avec plaisir. J’ai constaté sur une boutique avec un grand nombre de commandes que les références se généraient en double d’où l’erreur.