Post

WC-05 : Troubleshooting WooCommerce — Checkout, Emails, Stock

WC-05 : Troubleshooting WooCommerce — Checkout, Emails, Stock

Objectif

Diagnostiquer et résoudre trois problèmes WooCommerce courants rencontrés par les Happiness Engineers chez Automattic.

Environnement

  • WooCommerce : 10.8.1
  • Boutique : http://192.168.11.103/boutique/

Scénario 1 — Checkout bloqué (bouton “Place order” inactif)

Symptôme

Le client clique sur “Place order” mais rien ne se passe.

Diagnostic

Ouvrir la console du navigateur (F12 → Console) sur la page checkout et chercher des erreurs JavaScript en rouge.

Erreur typique :

1
Uncaught TypeError: $ is not a function

Cause

$ est le raccourci de jQuery. Cette erreur signifie que jQuery n’est pas chargé ou qu’un plugin charge une autre bibliothèque JS qui entre en conflit avec jQuery.

Solution

Désactiver les plugins un par un (mode debug) jusqu’à ce que l’erreur disparaisse — le dernier plugin désactivé est la cause du conflit.


Scénario 2 — Email de confirmation absent

Symptôme

Le client dit ne pas avoir reçu l’email de confirmation après sa commande.

Diagnostic

Étape 1 — Vérifier la configuration des emails :

WooCommerce → Settings → Emails — vérifier que “Processing order” est activé pour le client.

Étape 2 — Tester l’envoi :

En bas de la page Emails → “Send a test email” → si l’erreur Couldn't send the test email apparaît, le problème est au niveau de l’envoi SMTP.

Étape 3 — Vérifier les logs :

WooCommerce → Status → Logs → fichier wc_logger → chercher des erreurs liées à l’envoi d’email.

Cause

WordPress utilise wp_mail() qui dépend de la fonction PHP mail() (sendmail). En hébergement lab ou mutualisé sans sendmail configuré, les emails partent dans le vide.

Solution

Installer un plugin SMTP :

  • WP Mail SMTP (le plus courant)
  • Configurer avec Gmail, SendGrid, ou Mailgun
  • Le plugin remplace wp_mail() par une connexion SMTP authentifiée

Autres causes possibles

CauseVérification
Email dans les spamsDemander au client de vérifier
Adresse email incorrecteWooCommerce → Orders → vérifier l’email de la commande
Plugin de cacheVider le cache

Scénario 3 — Stock non décrémenté

Symptôme

Commande payée et complétée, mais le stock du produit ne change pas.

Diagnostic

Products → [Produit] → Inventory → vérifier que “Manage stock” est coché.

Vérification sur notre boutique

Stock initial du T-Shirt Biroue Lab : 25 unités

Après la commande test passée en WC-03 :

1
2
3
sudo /usr/local/bin/wp post meta get 13 _stock \
  --allow-root --path=/var/www/monsite
# Résultat : 24

WooCommerce a correctement décrémenté le stock de 25 → 24.

Cause du problème (si ça ne fonctionne pas)

“Manage stock” désactivé sur le produit → WooCommerce ne suit pas les quantités et ne décrémente jamais.

Solution

Products → [Produit] → Inventory → cocher “Manage stock” → entrer la quantité actuelle → Save.


Résumé

ScénarioCauseDiagnosticSolution
Checkout bloquéConflit JavaScriptF12 → Console → erreur $Désactiver plugins un par un
Email non reçuPas de SMTP configuréSend test email → erreurInstaller WP Mail SMTP
Stock non décrémenté“Manage stock” désactivéProduit → InventoryActiver “Manage stock”

Concepts clés appris

ConceptExplication
$ is not a functionjQuery non chargé ou conflit avec autre bibliothèque JS
wp_mail()Fonction WordPress d’envoi d’email — dépend de sendmail par défaut
WP Mail SMTPPlugin qui remplace wp_mail() par SMTP authentifié
Manage stockOption produit WooCommerce — doit être activée pour décrémenter le stock
WC Status LogsWooCommerce → Status → Logs — journal des événements système

Résultat

3 scénarios de troubleshooting diagnostiqués. Ces cas représentent les tickets les plus fréquents reçus par les Happiness Engineers WooCommerce.

Prochaine étape : HE-WC-01 — Scénarios paiements Stripe/PayPal.

This post is licensed under CC BY 4.0 by the author.