Aller au contenu principal
Making DigitalMaking Digital
Note technique

Supprimer des commandes dans PrestaShop : ce qui est possible, et ce qui ne l'est pas

En bref

PrestaShop ne propose pas de suppression de commande, car c'est une pièce comptable à conserver 10 ans en France. Une vraie vente se passe en statut Annulée ou Remboursée, ou donne lieu à un avoir. Seules les commandes de test peuvent être supprimées, par un module ou une requête SQL, après une sauvegarde et un essai sur une copie.

Vous avez fait des commandes d'essai avant le lancement et vous voulez les retirer de la boutique, ou une commande a été passée par erreur. Dans PrestaShop, il n'existe pas de bouton pour supprimer une commande : elle est considérée comme une pièce comptable. Pour une vraie vente, on l'annule ou on la rembourse. Seules les commandes de test peuvent se supprimer, avec une requête SQL ou un module, après une sauvegarde.

Pourquoi PrestaShop ne permet-il pas de supprimer une commande ?

Une commande validée est liée à une facture, à un paiement et à un mouvement de stock. En France, les pièces comptables doivent être conservées 10 ans, et la numérotation des factures doit rester continue : un trou dans la suite des numéros pose problème lors d'un contrôle. PrestaShop ne propose donc pas de suppression dans la liste des commandes, quelle que soit sa version actuelle (1.7, 8 ou 9).

Que faire d'une vraie commande à retirer ?

Gardez-la et changez son statut : Annulée si la vente n'a pas eu lieu, Remboursée si le client a été remboursé. Pour un remboursement partiel ou total après facturation, créez un avoir depuis la page de la commande. La commande reste dans l'historique, mais ne compte plus comme une vente dans votre suivi.

Comment supprimer des commandes de test ?

Seulement avant la mise en ligne, ou si vous êtes certain qu'aucune de ces commandes n'a de valeur comptable. Deux méthodes :

  • Un module de suppression de commandes (il en existe plusieurs, gratuits et payants). Vérifiez qu'il est compatible avec votre version et lisez ce qu'il supprime exactement.
  • Une requête SQL, plus précise, mais sans filet : faites d'abord une sauvegarde de la base, et essayez-la sur une copie.

Voici une base de départ pour une boutique dont le préfixe est ps_. Remplacez 12, 13, 14 par les numéros des commandes de test et vérifiez d'abord la liste avec un SELECT :

SQL
-- 1. Vérifier ce qui va être supprimé
SELECT id_order, reference, total_paid, date_add
FROM ps_orders
WHERE id_order IN (12, 13, 14);
SQL
-- 2. Supprimer dans une transaction (tables InnoDB)
START TRANSACTION;

DELETE FROM ps_order_detail   WHERE id_order IN (12, 13, 14);
DELETE FROM ps_order_history  WHERE id_order IN (12, 13, 14);
DELETE FROM ps_order_carrier  WHERE id_order IN (12, 13, 14);
DELETE FROM ps_order_invoice  WHERE id_order IN (12, 13, 14);
DELETE FROM ps_order_cart_rule WHERE id_order IN (12, 13, 14);
DELETE FROM ps_orders         WHERE id_order IN (12, 13, 14);

-- Vérifiez le résultat, puis COMMIT; (ou ROLLBACK; en cas de doute)
COMMIT;

Cette liste couvre le cœur d'une commande. Selon votre boutique, des données liées existent aussi dans d'autres tables (paiements, avoirs, messages clients, mouvements de stock) : c'est la raison pour laquelle la copie de test est indispensable. Pensez aussi à vider le cache après l'opération.

Les paniers restent

Les commandes de test laissent derrière elles des paniers et des clients de test. Supprimez les clients de test depuis Clients : PrestaShop propose cette suppression, contrairement aux commandes.

Comment éviter de polluer les statistiques avec les tests ?

Passez les commandes de test en statut Annulée plutôt que de les supprimer, ou utilisez un mode de paiement de test dont le statut ne compte pas comme une vente. Pour les prochains essais, créez un compte client "test" que vous reconnaîtrez facilement, et gardez la liste des numéros de commandes à part.

À retenir
  • PrestaShop ne supprime pas les commandes : ce sont des pièces comptables.
  • Une vraie commande se passe en Annulée, Remboursée, ou donne lieu à un avoir.
  • Les commandes de test se suppriment par module ou par SQL, après sauvegarde et essai sur une copie.
  • Gardez une trace des numéros de commandes de test.

Une boutique qui doit transmettre ses commandes à une gestion commerciale ou à un logisticien se prépare avant le lancement : voyez comment connecter vos logiciels, ou écrivez-nous.

Questions fréquentes

Peut-on supprimer une commande déjà facturée ?

Non, et ce n'est pas conseillé : la facture est une pièce comptable. On crée un avoir pour l'annuler comptablement.

La suppression des commandes de test remet-elle le stock à jour ?

Pas forcément : retirer des lignes en base ne rétablit pas les quantités. Vérifiez et corrigez le stock des produits concernés ensuite.

Faut-il passer par un module plutôt que par SQL ?

Un module est plus sûr si vous n'êtes pas à l'aise avec la base de données. Dans les deux cas, la sauvegarde préalable est obligatoire.

Making Digital

Nous connectons les logiciels des PME, automatisons leurs tâches répétitives et créons des assistants IA, depuis 2010. Nos articles partent de nos projets réels.

Notre parcours
Une question sur ce sujet ?

Parlons-en 30 minutes.

Vous saurez si votre problème se règle, comment, et en combien de temps. Sans engagement.