Activer le stockage haute performance des commandes (HPOS) sur WooCommerce
Depuis WooCommerce 8.2, sorti en octobre 2023, le stockage haute performance des commandes (HPOS, aussi appelé Custom Order Tables) est sorti du statut bêta et déclaré stable. Les boutiques créées à partir du 10 octobre 2023 l’ont activé par défaut ; les boutiques plus anciennes doivent l’activer volontairement.
Ce que HPOS change dans le stockage des commandes
Avant HPOS, WooCommerce enregistrait chaque commande comme un article dans la table wp_posts (avec un type de contenu shop_order), et toutes ses données (client, montants, statut, adresse) comme des métadonnées éparpillées dans wp_postmeta, une table générique partagée avec tous les autres types de contenu du site. Avec HPOS, les commandes sont stockées dans des tables dédiées, structurées spécifiquement pour les requêtes de commande : recherche, filtrage par statut, rapports.
L’activation se fait dans WooCommerce > Réglages > Avancé > Fonctionnalités, sur les boutiques existantes qui ne l’ont pas activé par défaut. Un mode de synchronisation maintient les deux structures alignées pendant la transition, ce qui permet de revenir en arrière si un problème apparaît.
Pourquoi une extension peut cesser de fonctionner avec HPOS
- Une extension de paiement, de comptabilité ou de reporting qui lit ou écrit directement dans wp_posts ou wp_postmeta au lieu de passer par l’API CRUD de WooCommerce (les fonctions get_post_meta(), WC_Order, etc. côté objet) continue de chercher les données au mauvais endroit une fois HPOS actif : commandes absentes des rapports, statut non mis à jour, export comptable incomplet.
- Un thème ou un module maison qui interroge la base avec une requête SQL directe sur wp_posts filtrée sur post_type = 'shop_order' ne trouve plus les commandes créées après l’activation de HPOS.
- Certaines extensions déclarent explicitement leur compatibilité HPOS dans leur en-tête de plugin ; WooCommerce affiche cette information dans la liste des extensions (compatible, non compatible, ou non déclaré), ce qui permet de vérifier avant d’activer plutôt qu’après un incident.
Comment j’active HPOS sur une boutique existante
-
Vérification de la compatibilité des extensions
Je consulte l’état de compatibilité HPOS affiché par WooCommerce pour chaque extension active liée aux commandes (paiement, facturation, expédition, reporting), et je mets à jour celles qui ne le sont pas encore.
-
Activation du mode de synchronisation
J’active HPOS avec la synchronisation maintenue : les commandes s’écrivent dans les nouvelles tables et restent répliquées dans wp_posts, ce qui laisse une porte de sortie si une extension se comporte mal.
-
Test sur un échantillon de commandes
Je vérifie la création, la modification de statut, le remboursement et l’export d’une commande de test sur chaque canal de paiement actif, en environnement de test d’abord.
-
Période d’observation avec synchronisation active
Je laisse tourner la boutique avec la synchronisation active un temps suffisant pour couvrir un cycle de commande complet, en surveillant les rapports et les extensions sensibles.
-
Désactivation de l’ancien stockage
Une fois la stabilité confirmée, je désactive la synchronisation et l’ancien stockage dans wp_posts. Ce point est le point de non-retour : le désactiver avant d’être certain qu’aucune extension ne dépend encore de wp_posts pour les commandes expose à une perte de compatibilité silencieuse.
Pour aller plus loin
-
Passer aux blocs de panier et de commande
Un autre changement de la même période de WooCommerce, avec sa propre logique de compatibilité côté extensions.
-
Mettre à jour WooCommerce vers une version majeure
HPOS fait partie des changements à anticiper avant une montée de version majeure de WooCommerce.
-
Vérifier la compatibilité des extensions avant une mise à jour
La méthode générale pour contrôler qu’un plugin survivra à un changement structurel comme HPOS.
-
Sauvegarder sa boutique avant une intervention
La sauvegarde précède toute activation de HPOS, comme toute intervention sur la structure de la base.
Décrivez votre besoin en 1 minute
Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.