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

> À 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…

- Page: <https://www.datafirefly.com/documentation/taxe-defaut-creation-produit/>
- Langue: fr
- Mis à jour le: 2026-07-22
- Autres langues: [en](https://www.datafirefly.com/en/documentation/taxe-defaut-creation-produit/index.md), [es](https://www.datafirefly.com/es/documentation/taxe-defaut-creation-produit/index.md), [de](https://www.datafirefly.com/de/documentation/taxe-defaut-creation-produit/index.md), [it](https://www.datafirefly.com/it/documentation/taxe-defaut-creation-produit/index.md), [pl](https://www.datafirefly.com/pl/documentation/taxe-defaut-creation-produit/index.md), [pt](https://www.datafirefly.com/pt/documentation/taxe-defaut-creation-produit/index.md), [nl](https://www.datafirefly.com/nl/documentation/taxe-defaut-creation-produit/index.md)
- Index: <https://www.datafirefly.com/documentation/llms.txt>

## À 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
