Étude

WooCommerce à La Chaux-de-Fonds: TVA, livraison et mesure e-commerce pour une boutique suisse

Optimisation WooCommerce à La Chaux-de-Fonds (Neuchâtel): paiements suisses, scénario de livraison clarifié, réglages TVA stabilisés, performance mobile améliorée et suivi e-commerce via GA4. Une boutique plus fiable et plus simple à piloter.

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.

Un projet similaire ou un souci WordPress ?

Que ce soit pour lancer un projet, améliorer un site existant ou résoudre un problème, on vous aide à clarifier la situation et à avancer simplement.