# Traduire les taxes et zones d’expédition WooCommerce par pays et par langue

> Un client vendant dans plusieurs pays voit ses taxes mal appliquées selon la langue du visiteur. Voici la configuration correcte, réglage par réglage.

- Auteur : Clément Hadrot
- Publié le : 2024-09-05
- Mis à jour le : 2024-09-05
- Catégorie : Multilingue
- URL : https://wpmoderne.dev.wordpress-developpement.fr/multilingue/woocommerce-taxes-zones-expedition-langue/

## L’essentiel

- Les zones fiscales WooCommerce ne suivent jamais la langue automatiquement
- Le pays de livraison doit rester la seule source de vérité pour la taxe
- La langue du visiteur ne doit jamais servir de proxy au pays de facturation

Un client vendant du matériel de randonnée en France, en Belgique et en Suisse a signalé un problème embêtant : un client suisse commandant depuis la version française du site payait la TVA française, alors qu'un client suisse commandant depuis la version anglaise du même site, avec la même adresse de livraison, se voyait appliquer un taux différent. Le montant final variait donc selon la langue consultée pour une même commande, ce qui n'a évidemment aucun sens du point de vue fiscal.

Le diagnostic a mis au jour une confusion fréquente sur les sites multilingues avec boutique intégrée : la tentation de faire dépendre la fiscalité de la langue du visiteur, alors que ces deux notions n'ont, par construction, aucun lien légitime entre elles.

## Comment WooCommerce détermine réellement la taxe applicable

WooCommerce calcule la taxe à appliquer en croisant l'adresse de livraison (ou de facturation, selon le réglage choisi) du client avec les zones fiscales configurées dans *WooCommerce → Réglages → Taxes*. Chaque zone regroupe un ou plusieurs pays, avec un taux associé. Ce calcul ne prend à aucun moment en compte la langue dans laquelle le client navigue sur le site : ce sont deux systèmes de configuration entièrement séparés, gérés par des extensions différentes (WooCommerce natif pour la fiscalité, Polylang ou WPML pour la langue).

Le problème rencontré ne venait donc pas d'un bug de calcul fiscal, mais d'une extension tierce installée sur ce projet, censée adapter l'affichage des prix selon la langue détectée, qui modifiait par erreur le pays présélectionné dans le formulaire de commande en fonction de la langue du visiteur plutôt que de laisser le client saisir librement son adresse réelle.

> L'essentiel à retenir : Les zones fiscales WooCommerce ne suivent jamais la langue automatiquement ; Le pays de livraison doit rester la seule source de vérité pour la taxe ; La langue du visiteur ne doit jamais servir de proxy au pays de facturation

## Le diagnostic, pas à pas

La vérification a démarré par un test simple : passer une commande test avec la même adresse de livraison (un domicile suisse) depuis les deux versions linguistiques du site, en notant precisement le taux de TVA affiché au récapitulatif de panier avant validation.

- Depuis la version française : le champ « Pays » du formulaire de livraison était pré-rempli sur « France » par défaut, sans lien avec l'adresse réelle du client tant qu'il ne le modifiait pas lui-même.
- Depuis la version anglaise : ce même champ était pré-rempli sur « Suisse » par l'extension tierce, qui associait la langue anglaise à une audience présumée internationale, donc à un pays par défaut différent.

Un client suisse pressé, qui valide sans modifier ce champ pré-rempli, se retrouvait donc avec un pays de livraison différent selon la langue consultée, entraînant un calcul de taxe différent sans que rien d'autre n'ait changé dans sa commande.

## La correction appliquée

La solution a consisté à désactiver purement et simplement la pré-sélection automatique du pays par langue proposée par l'extension tierce, un réglage qui semblait pratique en théorie mais qui introduisait un risque fiscal réel en pratique. Le champ « Pays » du formulaire de livraison a été laissé à sa valeur par défaut standard de WooCommerce (généralement la langue du site principal, ou vide selon la configuration), à charge pour chaque client de le renseigner lui-même avec précision.

```
// Retirer un filtre tiers qui présélectionnait le pays selon la langue
remove_filter(
    'woocommerce_countries_base_country',
    'extension_tierce_pays_par_langue',
    10
);
```

Ce correctif a immédiatement aligné le comportement des deux versions linguistiques : le taux de taxe appliqué dépend désormais uniquement de l'adresse effectivement saisie par le client, quelle que soit la langue de navigation utilisée pour passer commande.

## La bonne pratique à adopter dès la configuration initiale

| Élément | Doit dépendre de | Ne doit jamais dépendre de |
| --- | --- | --- |
| Taux de taxe appliqué | Adresse de livraison ou de facturation réelle | Langue de navigation du visiteur |
| Zone d'expédition proposée | Pays de livraison saisi | Langue de navigation du visiteur |
| Devise affichée | Choix explicite du client ou pays détecté par IP, si assumé comme tel | Langue de navigation seule |

> La langue d'un visiteur renseigne sur la langue qu'il préfère lire, jamais sur le pays depuis lequel il commande ou vers lequel il souhaite être livré. Confondre les deux finit toujours par produire des montants incohérents en caisse.

## Un point de vigilance supplémentaire : les zones d'expédition

Le même principe s'applique aux zones d'expédition configurées dans WooCommerce : elles doivent rester définies uniquement par pays ou code postal de livraison, jamais adaptées selon la langue du site consultée. Un client français consultant la version anglaise du site pour des raisons personnelles doit continuer à se voir proposer les options de livraison correspondant à son adresse réelle, pas des options pensées pour une audience anglophone présumée à l'étranger.

## Comment tester ce point avant toute livraison

Le test le plus fiable consiste à passer une commande complète, jusqu'au récapitulatif final avant paiement, avec la même adresse de livraison saisie manuellement depuis chaque langue disponible sur le site. Le montant total, le taux de taxe et les options d'expédition proposées doivent rester rigoureusement identiques d'une langue à l'autre : toute différence signale une confusion entre langue et pays quelque part dans la configuration.

## En résumé

La fiscalité et l'expédition d'une boutique WooCommerce ne doivent jamais être pilotées par la langue de navigation, même quand une extension tierce propose cette automatisation comme un gain de confort. Sur ce projet, ce raccourci a produit une incohérence fiscale bien réelle, révélée uniquement parce qu'un client attentif a comparé deux commandes identiques passées dans deux langues différentes.
