# Le panier WooCommerce se vide tout seul

> Un client ajoute un produit, change de page, et le panier est vide : c’est presque toujours un problème de persistance de session, pas un bug du panier WooCommerce lui-même. WooCommerce suit le contenu du panier via des cookies et une session PHP ; dès que l’un des deux n’est pas transmis de façon fiable d’une page à l’autre, le panier paraît se vider tout seul.

- Source canonique : [https://allaux.fr/wordpress-woocommerce/problemes/panier-qui-se-vide](https://allaux.fr/wordpress-woocommerce/problemes/panier-qui-se-vide)
- Langue : FR
- Dernière mise à jour : 2026-08-03

## Réponse directe

> Excluez les pages Panier, Commande et Mon compte du cache de page : une copie mise en cache et servie à tous les visiteurs affiche un panier vide alors que la session existe. Vérifiez ensuite que la table wp_woocommerce_sessions se remplit bien à l’ajout au panier, et que tout le parcours reste sur un seul domaine, avec ou sans www, sans jamais retomber en http.

## Comment je procède

1. **Vérification des cookies de panier** — Je vérifie dans le navigateur que les cookies woocommerce_cart_hash et wp_woocommerce_session_… sont bien posés après l’ajout au panier, et qu’ils persistent d’une page à l’autre sans être effacés.
2. **Test avec le cache désactivé** — Je reproduis le parcours avec tout cache de page coupé. Si le panier se comporte normalement dans ce cas, la cause la plus fréquente est confirmée : une page mise en cache et servie en version déconnectée à un visiteur qui a pourtant un panier actif.
3. **Contrôle du domaine effectif** — Je vérifie qu’aucune page du parcours d’achat ne charge en www quand le reste du site est en non-www, ou en http au lieu de https : ce type d’écart change le domaine effectif du cookie et casse la session en silence.
4. **Vérification du stockage des sessions PHP** — Sur un hébergement mal configuré, en particulier en répartition de charge entre plusieurs serveurs, le stockage des sessions PHP peut ne pas être partagé correctement entre les requêtes, ce qui vide le panier sans raison apparente côté WooCommerce.
5. **Recherche d’un plugin qui vide le panier** — Je vérifie si un plugin de vente croisée, de relance de panier abandonné ou de promotion appelle WC()->cart->empty_cart() à un moment inattendu : plus rare, mais un cas réel que j’ai déjà rencontré.

## Ce que je traite régulièrement

- Le client ajoute un produit, revient sur le site plus tard, et le panier est redevenu vide
- Le panier se vide en changeant de page, mais pas systématiquement
- Le problème n’apparaît qu’avec www devant l’adresse, ou uniquement sans www
- Le panier disparaît juste après l’activation d’un plugin de cache ou après un changement d’hébergeur
- Impossible de reproduire le bug en navigation privée, seulement en navigation normale

## Ce qui casse une session panier

WooCommerce suit un panier avec deux cookies : woocommerce_cart_hash, qui détecte si le contenu du panier a changé, et wp_woocommerce_session_…, qui relie le navigateur à une session PHP côté serveur où le contenu réel est stocké. Si l’un des deux n’est pas transmis correctement à chaque page, WooCommerce ne retrouve plus le panier associé au visiteur.

La cause la plus fréquente, de loin, est un plugin de cache de page (ou un cache imposé par l’hébergeur) qui sert une version statique et déconnectée d’une page à un visiteur qui a pourtant un cookie de session actif. Le panier, le compte client et le tunnel de commande doivent rester dynamiques, jamais mis en cache comme une page vitrine.

Un écart de domaine, www contre non-www, ou http contre https, change lui aussi le domaine effectif auquel le cookie est rattaché : le panier semble se vider en passant d’une variante de l’adresse à l’autre, alors qu’il s’agit en réalité de deux sessions distinctes.

## Configuration ou développement

> Exclure le panier, le compte client et le tunnel de commande du cache, ou corriger un écart www/non-www, relève du réglage d’hébergement. Diagnostiquer un plugin tiers qui appelle empty_cart() au mauvais moment demande de lire son code, ce qui relève du développement.

## Pages liées

- **Site WordPress ou WooCommerce lent** — Un cache mal configuré est souvent la même cause racine que pour un panier qui se vide. ([/wordpress-woocommerce/site-lent](/wordpress-woocommerce/site-lent))
- **Problème de paiement WooCommerce** — Un panier qui se vide juste avant le paiement se confond parfois avec un blocage du tunnel de commande. ([/wordpress-woocommerce/probleme-paiement](/wordpress-woocommerce/probleme-paiement))

## FAQ

### Est-ce que ça peut faire perdre des ventes ?

Oui, directement : un client qui voit son panier vide abandonne souvent son achat plutôt que de recommencer sa sélection. C’est un problème à traiter en priorité, pas un simple désagrément.

### Mon plugin de cache est-il forcément en cause ?

Pas forcément, mais c’est la première chose que je vérifie, car c’est la cause la plus courante. La plupart des plugins de cache savent exclure le panier, encore faut-il que ce soit correctement configuré.

### Pourquoi ça marche en navigation privée mais pas en navigation normale ?

Souvent parce qu’un ancien cookie ou une session en cache, posée avant une correction ou un changement de configuration, reste active dans le navigateur normal et interfère avec la nouvelle session.

### Faut-il changer d’hébergeur si le stockage de session pose problème ?

Pas nécessairement changer d’hébergeur, mais parfois ajuster la configuration du stockage de session PHP avec lui, en particulier sur un hébergement avec plusieurs serveurs en répartition de charge.
