PS PrestaShop Débutant

Règle de taxe par défaut automatique à la création produit

Installer et configurer l'application automatique du groupe de taxes à la création de chaque produit PrestaShop.

Mis à jour Version du module 1.1.0

À quoi sert ce module

Depuis PrestaShop 1.7, un produit nouvellement créé n’a aucune règle de taxe : le champ Règle de taxe de l’onglet Prix reste sur « Aucune taxe » tant que vous ne le changez pas à la main. Sur un catalogue actif, l’oubli arrive vite — et un produit publié sans TVA fausse le prix TTC affiché en boutique ainsi que votre comptabilité.

Ce module applique automatiquement le groupe de taxes de votre choix à chaque produit créé, sans aucune intervention. Un mode « ne remplacer que si vide » permet de ne jamais écraser une règle déjà choisie.

Prérequis

  • PrestaShop 8.0 à 9.x
  • PHP 7.4 à 8.3
  • Au moins un groupe de taxes actif configuré dans International > Taxes > Règles de taxes

Le module ne crée aucune règle de taxe. Il se contente d’appliquer une règle qui existe déjà dans votre boutique. Si votre liste de règles de taxes est vide, créez-en une avant d’installer le module.

Installation

  1. Téléchargez l’archive ZIP depuis votre compte client DataFirefly.
  2. Dans le back-office PrestaShop, allez dans Modules > Gestionnaire de modules.
  3. Cliquez sur Installer un module en haut à droite, puis déposez le fichier ZIP.
  4. Une fois l’installation terminée, cliquez sur Configurer.

Important : tant que vous n’avez pas choisi un groupe de taxes dans la configuration, le module reste volontairement inactif. C’est une sécurité pour éviter qu’il applique une règle non désirée dès l’installation.

Configuration

La page de configuration comporte deux réglages.

Groupe de taxes à appliquer

Une liste déroulante présente tous les groupes de taxes actifs de votre boutique (par exemple « FR TVA 20% »). Choisissez celui qui doit être appliqué par défaut aux nouveaux produits.

La première entrée de la liste est « Ne rien faire (désactivé) ». Sélectionnez-la si vous souhaitez suspendre temporairement le module sans le désinstaller.

Écraser la valeur existante

Cet interrupteur détermine le comportement du module lorsqu’un produit possède déjà une règle de taxe au moment de sa création.

  • Oui (par défaut) : le groupe configuré est toujours appliqué, quelle que soit la valeur existante.
  • Non : le groupe n’est appliqué que si le produit n’a aucune règle de taxe. Une valeur déjà renseignée n’est jamais modifiée.

Passez cette option sur Non si vous dupliquez régulièrement des produits déjà correctement paramétrés : les copies conserveront alors la règle de taxe du produit d’origine.

Cliquez sur Enregistrer pour valider. Le module est actif immédiatement.

Comment ça marche

Le module s’accroche au hook actionObjectProductAddAfter, déclenché par PrestaShop juste après l’insertion d’un nouveau produit en base de données. Il écrit alors le champ id_tax_rules_group dans les tables product et product_shop.

Compatibilité avec la page produit v2

La nouvelle page produit de PrestaShop 8 fonctionne différemment de l’ancienne : dès que vous cliquez sur Nouveau produit, PrestaShop crée immédiatement un produit temporaire (parfois appelé « produit fantôme ») avant même que vous ayez saisi quoi que ce soit. Ce produit n’apparaît dans le catalogue qu’après la première sauvegarde.

C’est précisément à cet instant que le module intervient. La règle de taxe est donc posée en base avant même l’affichage du formulaire, et l’onglet Prix affiche directement le bon groupe.

Note technique. Le hook actionProductAdd, malgré son nom, n’est pas déclenché lors d’une création normale de produit : le cœur de PrestaShop ne l’appelle que lors d’une duplication. C’est la raison pour laquelle ce module utilise le hook générique actionObjectProductAddAfter, qui couvre bien tous les cas de création.

Écriture ciblée en base

Le module met à jour uniquement la colonne id_tax_rules_group, par une requête SQL directe. Il n’appelle pas Product::update(), ce qui évite de déclencher inutilement les hooks de mise à jour sur un produit encore vide. Aucun autre champ produit n’est touché, et aucun override du cœur n’est ajouté.

Cas d’usage couverts

Mode de création Règle appliquée
Création manuelle en back-office (page produit v2) Oui
Duplication d’un produit existant Oui (désactivable via l’option d’écrasement)
Import CSV Oui
Création via le Webservice / API Oui
Produits déjà existants avant l’installation Non — le module n’agit qu’à la création

Le module ne corrige pas rétroactivement les produits déjà présents dans votre catalogue. Pour ceux-là, utilisez l’édition en masse native de PrestaShop ou un module de mise à jour en lot.

Multiboutique

Le champ id_tax_rules_group est spécifique à chaque boutique. Le module écrit donc la valeur dans la table product ainsi que dans product_shop, sur le périmètre de boutiques correspondant au contexte de création du produit.

Le groupe de taxes choisi dans la configuration est en revanche commun à toute l’installation. Si vos boutiques ont besoin de règles de taxes différentes, appliquez la règle la plus fréquente et ajustez manuellement les exceptions.

Dépannage

La règle de taxe n’est pas appliquée aux nouveaux produits

Vérifiez dans l’ordre :

  1. Un groupe est-il bien sélectionné ? Ouvrez la configuration du module : si la liste affiche « Ne rien faire (désactivé) », le module est inactif par conception. Choisissez un groupe et enregistrez.
  2. Le hook est-il bien enregistré ? Si vous avez mis à jour le module depuis la version 1.0.0, le hook utilisé a changé. Une simple copie de fichiers ne suffit pas : désinstallez puis réinstallez le module depuis le Gestionnaire de modules pour que PrestaShop enregistre le nouveau hook.
  3. Le cache est-il vidé ? Allez dans Paramètres avancés > Performances et videz le cache.
  4. Le groupe de taxes existe-t-il toujours ? Si le groupe sélectionné a été supprimé depuis, le module ne fait rien, par sécurité. Sélectionnez-en un autre.

Un produit dupliqué perd sa règle de taxe d’origine

C’est le comportement attendu lorsque l’option Écraser la valeur existante est active : le groupe par défaut est réappliqué à la copie. Passez l’option sur Non pour que les duplications conservent la règle du produit source.

Le prix TTC ne se met pas à jour dans le formulaire

Le prix TTC est calculé côté navigateur à partir de la règle de taxe sélectionnée. Rechargez la page produit : la règle étant bien enregistrée en base, l’onglet Prix affichera le bon groupe et recalculera le prix TTC.

Désinstallation

Depuis le Gestionnaire de modules, cliquez sur Désinstaller. Le module supprime ses deux clés de configuration et se retire des hooks. Aucune table n’est créée par ce module, et les règles de taxes déjà appliquées à vos produits sont conservées telles quelles.

Historique des versions

1.1.0

  • Bascule sur le hook actionObjectProductAddAfter pour couvrir la création via la page produit v2 (produit temporaire)
  • Compatibilité confirmée PrestaShop 8 et 9

1.0.0

  • Version initiale : application automatique du groupe de taxes à la création
  • Configuration du groupe par défaut et du mode d’écrasement
Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support