Contexte
Une petite boutique en ligne basée à La Chaux-de-Fonds vendait un catalogue limité de produits via WooCommerce. Le site fonctionnait, mais l’exploitation devenait pénible: moyens de paiement pas toujours adaptés aux habitudes suisses, règles de livraison floues et mesure e-commerce difficile à interpréter. Certaines commandes aboutissaient, toutefois l’équipe manquait de confiance dans le checkout et dans les chiffres.
Objectifs
- Rendre le checkout plus lisible et plus fiable, surtout sur mobile.
- Configurer des paiements adaptés au marché suisse (selon contexte: TWINT via prestataire, Payrexx, Stripe).
- Clarifier un scénario de livraison simple et compréhensible.
- Stabiliser les réglages TVA et éviter les incohérences selon adresses.
- Mettre en place une mesure e-commerce GA4 utile (entonnoir + ventes).
Diagnostic initial
- Checkout : champs et étapes pas assez guidés, erreurs de validation peu explicites.
- Paiements : options nombreuses, mais pas hiérarchisées; manque de repères pour la clientèle.
- Livraison : règles pas claires (seuil de gratuité, délais, zones), ce qui augmentait les questions.
- TVA : paramétrage existant, mais contrôles incomplets sur quelques cas (adresses, arrondis).
- Mesure : GA4 en place, mais lecture imprécise du parcours add_to_cart → begin_checkout → purchase.
Approche mise en place
Le travail s’est concentré sur les points qui font la différence en e-commerce: un paiement simple, une livraison compréhensible et des chiffres fiables. Chaque ajustement a été testé de bout en bout (panier, checkout, e-mails, statuts de commande) avant mise en production.
1) Checkout: simplifier et guider
- Réorganisation des champs pour un parcours plus naturel (coordonnées, livraison, paiement).
- Libellés plus clairs et messages d’erreur plus utiles.
- Amélioration de l’affichage mobile: boutons, espacements, ordre visuel.
2) Paiements suisses: choix cohérent et tests
- Intégration d’un prestataire adapté au contexte (par exemple Payrexx, Stripe, ou un module TWINT via PSP).
- Hiérarchisation des moyens de paiement, pour éviter la surcharge de choix.
- Tests complets: paiement, confirmation, e-mails transactionnels, remboursement si nécessaire.
3) Livraison: un scénario simple et stable
- Mise en place d’un scénario unique et lisible (par exemple: « Colissimo/La Poste » + retrait si pertinent).
- Affichage clair des délais et conditions (seuil de gratuité, zones prises en charge).
- Contrôles sur les frais de livraison, pour éviter les surprises au checkout.
4) TVA: stabilisation et contrôles
- Vérification des classes de taxes et des règles d’application (produits, livraison).
- Contrôles sur les arrondis et sur les cas courants (adresses CH, cantons, facturation vs livraison).
- Nettoyage des réglages redondants qui créaient des variations inutiles.
5) Mesure e-commerce (GA4) et pilotage
- Validation de la remontée des événements e-commerce: view_item, add_to_cart, begin_checkout, purchase.
- Suivi des actions clés: paiement choisi, étapes du checkout, sources des ventes.
- Mini-rapport mensuel orienté décisions: conversion, panier moyen, produits leaders, points de friction.
Exemple technique : masquer un mode de livraison selon le total du panier (WooCommerce)
Exemple courant pour clarifier un scénario de livraison. À adapter aux identifiants réels de méthodes (à vérifier dans WooCommerce).
<?php
/**
* Exemple: masquer une méthode de livraison si le panier dépasse un seuil,
* afin de pousser une option "Livraison gratuite" ou "Standard".
*
* À placer dans un mu-plugin ou functions.php.
*/
add_filter('woocommerce_package_rates', function ($rates, $package) {
if (!function_exists('WC') || !WC()->cart) {
return $rates;
}
$threshold = 120; // CHF, exemple
$total = (float) WC()->cart->get_subtotal();
// IDs d'exemple, à adapter: "flat_rate:1", "free_shipping:2"
$hide_if_over = ['flat_rate:1'];
if ($total >= $threshold) {
foreach ($hide_if_over as $rate_id) {
if (isset($rates[$rate_id])) {
unset($rates[$rate_id]);
}
}
}
return $rates;
}, 10, 2);
Exemple technique : valider un NPA suisse au checkout (simple)
Contrôle léger pour réduire les erreurs d’adresse. À adapter si la boutique accepte aussi des adresses hors CH.
<?php
add_action('woocommerce_after_checkout_validation', function ($data, $errors) {
$country = isset($data['billing_country']) ? (string) $data['billing_country'] : '';
$postcode = isset($data['billing_postcode']) ? (string) $data['billing_postcode'] : '';
if ($country === 'CH') {
// NPA suisse: 4 chiffres
if (!preg_match('/^\d{4}$/', $postcode)) {
$errors->add('billing_postcode', 'Merci d'indiquer un NPA suisse valide (4 chiffres).');
}
}
}, 10, 2);
Résultats observés
- Checkout plus clair et plus régulier sur mobile, donc moins d’abandons.
- Paiements mieux alignés sur les attentes, avec tests complets et parcours plus cohérent.
- Livraison plus compréhensible, ce qui réduit les questions et les hésitations.
- Mesure GA4 plus fiable, avec une lecture utile du parcours d’achat et des ventes.
Points clés à retenir
- En e-commerce, la simplicité du checkout et de la livraison vaut souvent mieux qu’un empilement d’options.
- Les paiements suisses sont un levier direct de confiance, surtout sur mobile.
- La mesure devient utile quand elle suit l’entonnoir et des décisions concrètes.