Sin impuesto Con impuesto

Archiver les anciennes commandes dans PrestaShop : un back-office rapide sans perdre de factures

Au fil des années, les tables de commandes grossissent et le back-office se traîne. Supprimer n'est pas une option, mais archiver, si. Nous expliquons ce qui est déplacé, ce qu'il faut conserver et quelles précautions évitent de casser la numérotation.

Equipo Rekire
Updated: 11/10/2026 13
Archiver les anciennes commandes dans PrestaShop : un back-office rapide sans perdre de factures
Share:

Vous ouvrez « Commandes » dans le back-office et c'est long. Vous filtrez par client et c'est encore plus long. La boutique vend depuis des années, et chaque commande a laissé des lignes dans une vingtaine de tables : lignes de produits, historique des statuts, paiements, factures, transporteurs, messages, le panier dont elle est issue. Aucune de ces lignes ne disparaît toute seule.

La tentation est de supprimer les vieilles commandes. Ne le faites pas : vous avez des obligations de conservation, et une commande supprimée à la main dans PrestaShop laisse des orphelins dans d'autres tables. Ce que vous pouvez faire, c'est archiver.

Pourquoi cela devient lent

La liste des commandes de PrestaShop n'interroge pas une seule table. Pour afficher chaque ligne, elle joint la commande au client, à l'adresse, au pays, au statut actuel et à la devise, et pour filtrer et trier elle doit parcourir beaucoup de lignes. Avec des dizaines ou des centaines de milliers de commandes, chaque recherche travaille sur tout l'historique, même si vous ne voulez voir que celles de la semaine.

Cela touche aussi d'autres écrans : la fiche client, les statistiques, certains modules qui font des calculs sur l'historique des commandes, et les exports.

Avant d'archiver, mesurez. Toute lenteur du back-office ne vient pas des commandes. Des tables de connexions, de visiteurs ou de paniers abandonnés que personne ne nettoie, des index manquants ou un hébergement à court de ressources donnent des symptômes semblables. Si le problème est là, archiver les commandes ne le résoudra pas.

Archiver n'est pas supprimer

Archiver signifie sortir les anciennes commandes des tables actives et les conserver complètes dans d'autres tables, où l'on peut les consulter et, si nécessaire, les restaurer. La différence avec la suppression est totale :

  • La commande existe toujours avec toutes ses données : lignes, montants, taxes, factures, avoirs, paiements et messages.
  • Vous pouvez la rechercher et la consulter quand un client ou votre comptable la demande.
  • Vous pouvez la restaurer avec le même numéro si elle redevient nécessaire au quotidien.

Le droit commercial et fiscal vous oblige à conserver factures et documents pendant des années. Archiver est compatible avec cette obligation ; supprimer, non.

Ce qui doit accompagner chaque commande

Une commande dans PrestaShop, ce n'est pas une ligne. Si vous ne déplacez que la table des commandes, le reste reste en suspens. Au minimum, doivent partir ensemble :

  • La commande et ses lignes.
  • L'historique des statuts.
  • Factures, bons de livraison, paiements et avoirs.
  • Les retours et leurs lignes.
  • Le transporteur et le suivi.
  • Le panier d'origine et ses produits.
  • Les messages de la commande.

Et il faut le faire comme une transaction : soit la commande entière est déplacée, soit rien ne l'est. Un archivage qui échoue à mi-chemin et laisse une demi-commande de chaque côté est pire que de ne pas archiver.

Les pièges de la numérotation

C'est le détail qui pose le plus de problèmes. PrestaShop calcule le prochain numéro de commande, de facture et de bon de livraison à partir de ceux qui existent dans les tables. Si vous archivez justement la commande qui porte le dernier numéro de facture, PrestaShop peut « ne pas la voir » et répéter le numéro sur la facture suivante. Une facture en double est un problème fiscal sérieux.

Règles prudentes :

  1. Ne jamais archiver la commande qui porte le dernier numéro de commande, de facture ou de bon de livraison.
  2. Empêcher qu'une nouvelle commande reçoive le numéro d'une commande archivée.
  3. Si vous utilisez vos propres séries ou numérotations avec un autre module, vérifiez sur une copie comment il calcule le numéro suivant avant d'archiver.

Quelles commandes archiver

Le critère habituel est l'ancienneté, mais il vaut mieux l'affiner :

  • Ancienneté minimale. Six mois ou un an est un point de départ raisonnable ; cela dépend de votre délai de retour et de garantie.
  • Statuts. Uniquement des commandes clôturées : livrées, annulées, remboursées. Une commande en attente de paiement ou en cours de retour ne s'archive pas.
  • Activité récente. Si une ancienne commande a changé de statut récemment (un avoir tardif, une garantie), mieux vaut attendre.
  • Commandes scindées. Si un panier a généré plusieurs commandes, elles sont archivées toutes ensemble ou pas du tout.

Ce qui change pour vous et pour le client

Une commande archivée quitte les tables du cœur de PrestaShop, donc :

  • Elle ne compte plus dans les statistiques natives de PrestaShop.
  • Elle n'apparaît plus dans l'historique « Mon compte » du client tant que vous ne la restaurez pas ; il est conseillé de le prévenir par un texte indiquant que ses anciennes commandes sont archivées et qu'il peut les demander.
  • Les modules qui font des calculs sur l'historique (fidélité, segments, recommandations) ne la verront plus. Vérifiez lesquels vous utilisez.

Comment s'y prendre intelligemment

  1. Sauvegarde complète de la base de données avant le premier archivage.
  2. Simulation : comptez les candidates et les lignes qui seraient déplacées, sans rien déplacer.
  3. De petits lots au début, et vérifiez la liste des archives et une restauration.
  4. Automatisez avec une tâche programmée et un rapport par e-mail de chaque exécution.
  5. Laissez la suppression définitive verrouillée. Si un jour on supprime quelque chose de l'archive, cela doit exiger un déverrouillage volontaire et une autorisation spécifique.

Un mot sur les versions : si votre boutique est encore sur une 1.7 ancienne ou sur une 1.6, l'archivage soulage le back-office, mais ne remplace pas la mise à jour. PrestaShop 8 et 9 avec une version de PHP actuelle sont aussi plus performants sur les mêmes requêtes. Si vous allez migrer, archiver avant réduit le volume de données à transférer et à tester.

Questions fréquentes

Puis-je encore émettre un avoir sur une commande archivée ? Pas directement : vous la restaurez d'abord, vous émettez l'avoir normalement et, si vous le souhaitez, elle retourne dans l'archive au passage suivant. C'est pourquoi l'ancienneté minimale doit dépasser votre délai de retour et de garantie.

L'archivage libère-t-il de l'espace disque ? Il déplace des lignes d'une table à l'autre, donc la taille totale de la base ne diminue pas. Ce qui s'améliore, c'est la vitesse des requêtes sur les tables actives. Optimiser les tables après chaque exécution aide à récupérer une partie de l'espace laissé par les trous.

Et mon comptable, peut-il toujours demander d'anciennes factures ? Oui. Les factures restent conservées avec la commande archivée et peuvent être consultées ou restaurées quand il le faut.

Comment le résoudre sur PrestaShop

RKR Order Archive sort les anciennes commandes des tables actives et les conserve complètes, avec leurs 20 tables (lignes, historique, factures, paiements, retours, avoirs, panier et messages), dans une archive avec liste, moteur de recherche et filtres. Vous choisissez l'ancienneté, les statuts, la boutique, le montant minimum et la taille de chaque passage, et vous pouvez exclure les commandes avec une activité récente. Il propose un mode simulation, une tâche cron avec son propre jeton, un rapport par e-mail et une restauration exacte avec le même numéro. Chaque opération est une transaction, il n'archive pas la commande portant le dernier numéro de facture, de bon de livraison ou de commande, attend que les commandes scindées puissent être archivées ensemble et garde la suppression définitive verrouillée par défaut.

Chargement...
Consentement aux cookies
Retour en haut