Disponible pour missions & renforts d’agence · Réponse rapide, par la personne qui intervient

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.

Décrire mon problème Discuter sur WhatsApp

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.

Pages liées

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.

Sur quoi avez-vous besoin d’aide ?
Quel est l’état actuel du site ?
Le site utilise-t-il un constructeur de pages ? (facultatif)

Elementor, Divi ou WPBakery changent la façon d’intervenir sur le thème.

Combien d’extensions actives, environ ? (facultatif)
Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Questions fréquentes

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.