Comment afficher le prix TTC du pays du visiteur dans PrestaShop

Configurer les taux de TVA de l’UE, afficher le prix TTC du pays détecté par GeoIP ou choisi dans le sélecteur, puis exporter les ventes par taux : le parcours complet dans PrestaShop, avec les limites du module.

Comment afficher le prix TTC du pays du visiteur dans PrestaShop

Un client espagnol ouvre votre fiche produit et découvre un prix calculé avec la TVA française. Le taux de son pays n’apparaît qu’après la saisie de son adresse, parfois une fois l’article ajouté au panier. C’est la question des marchands qui vendent dans plusieurs pays de l’UE : comment afficher tout de suite le prix TTC du pays du visiteur sans casser les règles de taxes de chaque produit ? Ce guide détaille la configuration du module OSS TVA UE, onglet par onglet, et ce qu’il laisse à votre comptable.

PrestaShop peut-il gérer seul la TVA des pays de l’UE et l’OSS ?

Pas entièrement : PrestaShop applique la TVA de l’adresse du panier ; le module applique le taux du pays détecté ou choisi dès la fiche produit et prépare l’export par taux pour l’OSS.

Il s’adresse d’abord aux boutiques qui réunissent trois conditions.

  • Vous vendez à des particuliers dans au moins deux pays de l’UE et vos prix sont affichés TTC.
  • Vous voulez que le visiteur voie le taux de son pays dès la fiche produit, sans attendre le panier.
  • Vous préparez vos ventes par taux pour le régime OSS, avec un export CSV à contrôler.

Il n’est pas nécessaire dans trois cas. Une boutique qui vend dans un seul pays n’en a pas l’usage. Les ventes B2B réglées par autoliquidation non plus : le module ne contrôle pas le numéro de TVA. Une boutique qui cherche un suivi du seuil OSS ou un archivage des preuves sur dix ans ne le trouvera pas dans cette version.

La fiche du module résume les fonctions, et la documentation détaille chaque onglet.

Comment configurer les taux de TVA des pays de l’UE dans PrestaShop ?

Ouvrez la page Configurer du module, puis l’onglet Taxes : l’assistant prépare les taux des pays où vous vendez, affiche le référentiel des taux par pays et ne crée rien avant votre confirmation.

L’assistant travaille en trois étapes. Vous choisissez d’abord les groupes de règles de taxes déjà affectés à vos produits, ou vous en préparez de nouveaux. La deuxième étape montre, pays par pays, les taux de référence (standard, réduit, réduit 2, très réduit) et l’état de configuration (Configuré, Partiel, Non configuré). La troisième étape affiche les taxes à créer, les règles à créer, les éléments ignorés et les erreurs, puis applique les changements après un clic sur « Exécuter » ; tant que vous n’avez pas confirmé, l’aperçu ne crée aucune règle.

Deux points restent à vérifier à la main. Les produits ne sont jamais réaffectés automatiquement à un autre groupe : un article au taux réduit garde son groupe, et le taux réduit dépend de sa catégorie et du territoire. Les groupes partagés entre plusieurs boutiques, les règles régionales et les règles combinées se contrôlent dans les réglages natifs de PrestaShop, pas dans l’aperçu du module.

Comment afficher le prix TTC du pays du visiteur, avec ou sans adresse ?

Le module résout le pays dans cet ordre : l’adresse fiscale du panier, le choix mémorisé dans le cookie, la détection GeoIP, puis le pays par défaut de l’onglet Général.

L’onglet Général active l’aperçu des prix TTC, définit le pays par défaut et les groupes clients éligibles. Les pays proposés dans le sélecteur se choisissent dans l’onglet Pays. L’onglet Affichage place le sélecteur sur un hook standard (displayNav1, displayNav2, displayTop) ou sur un hook personnalisé (displayWeprestaOSS par défaut) ; cinq templates sont fournis, et un aperçu en temps réel suit vos réglages.

La détection GeoIP se règle dans l’onglet Avancé. Saisissez l’identifiant de votre compte MaxMind et une clé autorisée à télécharger GeoLite2 Country, puis lancez le téléchargement et vérifiez l’état de la base. PHP doit disposer de cURL, Phar et zlib ; une clé laissée vide conserve la clé enregistrée. Sur une adresse IP locale, la détection ne peut pas fonctionner.

Dès qu’une adresse fiscale valide existe dans le panier, elle devient la référence et les frais sont recalculés, selon le réglage livraison ou facturation de PrestaShop. Un client connecté peut choisir une de ses adresses et confirmer « Utiliser cette adresse de livraison » ; le module ne crée jamais d’adresse fictive. Le prix estimé apparaît aussi dans la fenêtre de confirmation d’ajout au panier.

La durée du cookie se règle dans l’onglet Avancé, en jours ; la valeur 0 garde le choix pour la session seulement.

Comment vérifier que la géolocalisation et les prix sont corrects ?

Un pays n’apparaît dans le sélecteur que si trois conditions sont réunies : il est actif dans l’onglet Pays, ses taxes sont configurées dans l’onglet Taxes, et il est actif dans PrestaShop (International → Localisation → Pays).

Commencez par l’état de la base GeoIP dans l’onglet Avancé : il doit indiquer que la base est disponible. Utilisez ensuite le sélecteur de pays de la boutique pour l’afficher comme un visiteur de chaque pays cible, puis comparez le prix d’un produit au taux standard et d’un produit au taux réduit. Terminez par le panier, avec une adresse de livraison réelle, puis avec une adresse de facturation différente si vous en acceptez une.

Si un prix ne change pas, videz le cache PrestaShop et vérifiez que le produit est bien rattaché à un groupe de règles de taxes du pays concerné. Si un pays manque, reprenez les trois conditions ci-dessus. Un cache de page ou un CDN doit distinguer le pays et la session du visiteur, sinon il peut servir à tous la page d’un seul pays.

Comment exporter les ventes et les avoirs par taux pour la déclaration OSS ?

Ouvrez l’onglet Export TVA, choisissez une période, lancez « Aperçu », puis cliquez sur « Télécharger le CSV » : les montants sont séparés par boutique, devise, pays, taux et composante, transport compris.

Les ventes suivent la date de commande ; les avoirs suivent leur date d’émission, même lorsqu’ils portent sur une vente plus ancienne. Les montants et les taux historiques sont conservés : modifier une règle de taxe ne réécrit pas les lignes déjà enregistrées. Les lignes à vérifier restent signalées dans l’aperçu et dans le fichier.

Un remboursement saisi sans avoir ne peut pas être déduit automatiquement. Pour les échéances des clients professionnels, regardez plutôt Paiement à terme B2B, qui gère plafond de crédit et relances.

Que se passe-t-il si ma licence expire ou si le serveur ne répond pas ?

Un abonnement renouvelé n’est plus coupé à l’ancienne date, et un incident passager du serveur de licence laisse 7 jours de tolérance à compter du premier échec ; sans licence valide, en revanche, le module se désactive.

La licence s’active depuis la page Configurer, avec la Clé de licence et le Secret de licence du compte wepresta.shop, puis le bouton Activer la licence. Le panneau affiche ensuite le type, le domaine, l’échéance et les jours restants ; le bouton Désactiver retire la licence de cette boutique. La vérification a lieu au plus une fois par heure, et toutes les 5 minutes sur cette page tant que la licence n’est pas active : PrestaShop ne contacte le serveur que lorsqu’un contrôle est dû, pas à chaque ouverture.

La page Configurer sans licence valide : le formulaire d’activation, l’alerte d’expiration et le rappel que les réglages et les règles de taxes sont conservés.
La page Configurer sans licence valide : le formulaire d’activation, l’alerte d’expiration et le rappel que les réglages et les règles de taxes sont conservés.

Passé ce délai, le module se désactive : le sélecteur, le message TVA et les prix avec la TVA du pays du visiteur disparaissent, et PrestaShop affiche ses prix habituels. Vos réglages et vos règles de taxes restent en place. Le gestionnaire de modules refuse de réactiver le module et renvoie vers la page Configurer, qui le réactive dès que la licence est valide, sans ressaisir la clé après un renouvellement.

Après activation, le panneau affiche la licence active, le domaine, la date d’expiration et les jours restants ; « Ouvrir les réglages du module » mène aux onglets.
Après activation, le panneau affiche la licence active, le domaine, la date d’expiration et les jours restants ; « Ouvrir les réglages du module » mène aux onglets.

La version 2.0.2 a corrigé trois défauts : un abonnement renouvelé qui restait coupé à l’ancienne date, une réponse passagère du serveur qui retirait la licence, et une erreur 500 dans le back-office sur PrestaShop 8 après la désactivation. Le formulaire, le panneau et les messages existent en français, anglais, espagnol, italien et polonais. Le module est compatible PrestaShop 1.7.8, 8.0+ et 9.0+, avec PHP 7.4 minimum ; sur PHP 7.1 à 7.3, il affiche un message « PHP 7.4 minimum » au lieu d’une erreur fatale.

Après « Désactiver » : la licence est retirée, le module est désactivé et le formulaire revient, alors que les réglages et les règles de taxes sont conservés.
Après « Désactiver » : la licence est retirée, le module est désactivé et le formulaire revient, alors que les réglages et les règles de taxes sont conservés.

L’export TVA remplace-t-il une déclaration OSS ?

Non : il additionne les ventes et les avoirs enregistrés dans votre boutique et produit un CSV à contrôler, pas une déclaration ni une décision d’assujettissement.

Le module ne suit pas le seuil OSS, ne conserve pas de preuves de TVA sur dix ans et ne met pas à jour la base GeoIP tout seul. Il ne vérifie pas les numéros de TVA intracommunautaires et ne bascule pas un prix B2B en autoliquidation. Ces limites sont assumées : un chiffre approximatif sur une obligation légale serait plus dangereux qu’une case vide.

Les taux, les règles et votre assujettissement dépendent de votre situation et de votre pays d’établissement. Le module calcule et présente ; il ne décide pas à votre place. Faites valider la configuration et l’export par votre comptable avant de déclarer.

Pour les autres obligations européennes qui touchent la fiche produit, regardez le passeport numérique du produit et le suivi déforestation UE (EUDR).

Questions fréquentes

Puis-je afficher des prix différents selon l’adresse IP du visiteur ?
Oui, avec la détection GeoIP : une fois GeoIP activé et le pays autorisé dans le sélecteur, le module lit l’adresse IP dans la base MaxMind locale et applique le pays détecté aux prix affichés. Tant que le panier n’a pas d’adresse fiscale, ce prix reste une estimation, visible aussi dans la fenêtre d’ajout au panier. Dès qu’une adresse valide existe, elle prend la main et les frais sont recalculés.
Faut-il mettre à jour la base GeoIP MaxMind, et à quelle fréquence ?
Le module ne fixe pas de calendrier : la base se télécharge depuis l’onglet Avancé, avec votre identifiant et une clé MaxMind autorisée pour GeoLite2 Country. Téléchargez une nouvelle base quand vous le souhaitez ; si l’opération échoue, la base précédente reste utilisée. Vérifiez l’état affiché après chaque mise à jour. Sur une adresse IP locale, la détection ne fonctionne pas.
Que se passe-t-il si le serveur de licence est momentanément indisponible ?
La licence reste valide. Une erreur passagère, une limite de requêtes ou une maintenance compte comme un échec de vérification, et le module accorde 7 jours de tolérance à compter du premier échec. Passé ce délai sans réponse valide, le module se désactive comme sans licence. Une réponse valide efface le compteur.
Mon abonnement est renouvelé : le module se coupe-t-il à l’ancienne date d’échéance ?
Non. Quand la date enregistrée dans la boutique est passée, le module interroge le serveur de licence et enregistre la nouvelle date. Si le module a été désactivé entre-temps, ouvrez la page Configurer : elle vérifie la licence et le réactive dès qu’elle est valide, sans ressaisir la clé ni le secret.
Dois-je m’inscrire au régime OSS dès que je vends dans un autre pays de l’UE ?
Le régime OSS ne se résume pas à un compteur : il dépend du type de ventes, du seuil commun et de votre pays d’établissement. Le module ne calcule pas ce seuil et ne décide pas de votre assujettissement. Faites vérifier votre situation par votre comptable, puis utilisez l’export TVA pour préparer les montants par pays et par taux.

Produits de cet article

Trouvez le module dont votre boutique a besoin

Voir les modules