Un client vendant du mobilier design en France et de plus en plus au Royaume-Uni et en Suisse nous a demandé d’ajouter le multidevise à sa boutique WooCommerce, en pensant qu’il s’agissait d’une simple case à cocher dans une extension. La réalité est plus nuancée : il existe deux approches fondamentalement différentes du multidevise, avec des conséquences très différentes sur la comptabilité, le risque de change et l’expérience client, et le choix entre les deux doit se faire en amont, pas en cours de projet.
Confondre ces deux approches est l’erreur la plus fréquente que nous rencontrons sur ce sujet : un client qui pense « facturer en livres sterling » alors que sa configuration ne fait qu’afficher un prix converti à titre indicatif, la commande restant en réalité débitée en euros par la passerelle de paiement.
Approche 1 : la conversion d’affichage seule
La forme la plus simple du multidevise consiste à afficher un prix converti selon un taux de change (fixe ou récupéré via une API de taux), uniquement à titre indicatif pour aider le visiteur à se projeter, tandis que la transaction réelle reste facturée dans la devise unique de la boutique (l’euro, dans cet exemple). Le client anglais voit un prix affiché en livres sterling, mais c’est bien un montant en euros qui est débité sur son relevé bancaire, avec une conversion effectuée par sa propre banque au taux du jour.
Cette approche se met en place simplement via un filtre sur l’affichage du prix, sans toucher au calcul réel de la commande :
add_filter( 'woocommerce_get_price_html', function ( $prix_html, $produit ) {
if ( 'GB' === WC_Geolocation::geolocate_ip()['country'] ) {
$taux_indicatif = 0.85;
$prix_converti = $produit->get_price() * $taux_indicatif;
return $prix_html . sprintf(
' <span class="conversion-indicative">(environ £%s)</span>',
number_format( $prix_converti, 2 )
);
}
return $prix_html;
}, 10, 2 );
L’avantage de cette approche est sa simplicité comptable totale : une seule devise de facturation, aucune complexité fiscale ou comptable supplémentaire. L’inconvénient est une expérience client moins convaincante, puisque le montant réellement débité peut légèrement différer de l’estimation affichée, au gré des frais de conversion appliqués par la banque de l’acheteur.

Approche 2 : la facturation réelle en devise locale
La seconde approche facture réellement la commande dans la devise choisie par le client, ce qui suppose que la passerelle de paiement retenue supporte nativement le règlement dans chacune des devises proposées. Stripe, par exemple, accepte plusieurs dizaines de devises et peut créer une intention de paiement directement dans la devise choisie, sans passer par une conversion tierce :
$intention_paiement = \Stripe\PaymentIntent::create( [
'amount' => intval( $montant_en_centimes ),
'currency' => strtolower( $devise_choisie ), // 'gbp', 'chf', 'eur'...
'metadata' => [ 'order_id' => $order_id ],
] );
Cette approche demande une extension multidevise dédiée (plusieurs solutions reconnues existent dans l’écosystème WooCommerce) capable de gérer un tableau de prix propre à chaque devise, plutôt qu’une simple conversion automatique au taux du jour : un prix fixé manuellement par devise permet d’absorber les arrondis commerciaux (99 £ plutôt que 98,73 £ calculé au taux exact) et d’éviter qu’une fluctuation de change ne rende un produit anormalement cher ou anormalement bon marché du jour au lendemain.
Figer le taux de change au moment de l’achat
Quelle que soit l’approche retenue, un principe reste constant : le taux de change (ou le prix en devise locale) doit être figé au moment précis de la validation de la commande, jamais recalculé a posteriori. Une commande facturée en devise locale doit conserver, en méta de commande, le taux ou le montant exact appliqué, pour que tout remboursement ultérieur utilise la même base de calcul plutôt qu’un taux du jour du remboursement, potentiellement différent :
$order->update_meta_data( '_devise_facturation', 'GBP' );
$order->update_meta_data( '_taux_change_applique', 0.86 );
$order->save();
Les conséquences comptables à anticiper
Facturer réellement en devise étrangère implique, côté comptabilité, de gérer un compte bancaire ou un sous-compte capable de recevoir ces devises sans double conversion coûteuse, et d’enregistrer les écritures comptables avec le taux de change du jour de la transaction pour la conversion en devise de référence de l’entreprise. C’est une discussion qui doit impérativement associer l’expert-comptable du client avant tout développement, car le choix de l’approche multidevise a un impact direct sur la complexité de la clôture comptable mensuelle.
Notre recommandation systématique : ne jamais démarrer un développement multidevise sans que le client ait validé, avec son comptable, laquelle des deux approches correspond réellement à son organisation. C’est une décision métier avant d’être une décision technique.
En résumé
Le multidevise sur WooCommerce recouvre deux réalités très différentes : une simple conversion d’affichage à titre indicatif, sans impact comptable, ou une facturation réellement effectuée en devise locale, qui suppose une passerelle compatible et une organisation comptable adaptée. Confondre les deux au moment du cadrage du projet est la source la plus fréquente de déception après la mise en ligne, quand un client découvre que sa boutique « multidevise » ne fait en réalité qu’afficher un prix converti sans jamais facturer réellement dans cette devise.