La catégorie de produit porte, dans Odoo, la comptabilité et la logistique : comptes de stock, méthode de valorisation, routes. Elle sert donc mal à ce qu'on lui demande aussi — classer commercialement un catalogue.
Dix-sept modules communautaires séparent ces usages : catégories mieux outillées, étiquettes transversales, et attributs enfin gérables à l'échelle d'un catalogue.
Résumé
Sept modules outillent les catégories : archivage, code court, nom traduisible avec choix de la langue du nom complet, type distinguant les catégories structurantes des catégories réelles, étiquettes colorées sur les catégories, lien inverse vers les produits rattachés, et surtout la possibilité d'associer plusieurs catégories supplémentaires à un produit.
Quatre traitent les étiquettes produit : leur affichage sur l'onglet principal de la fiche, un code unique par étiquette pour les intégrations, et leur menu exposé dans Ventes et dans Achats — il n'existe nativement qu'ailleurs.
Six traitent les attributs et variantes : archivage des attributs et de leurs valeurs, modèles de lignes d'attributs appliqués en un clic, option empêchant le remplissage automatique de toutes les valeurs, écrans transverses de gestion des valeurs d'attributs et de leurs prix supplémentaires, un mixin technique, et un bouton de navigation de la variante vers son modèle.
L'essentiel
- L'archivage des catégories, qu'Odoo ne permet pas.
- Plusieurs catégories par produit, en complément de la catégorie principale.
- Un code et un type sur la catégorie : structurante ou réelle.
- Des étiquettes sur les catégories, pour classer transversalement.
- Le menu des étiquettes produit exposé dans Ventes et dans Achats.
- Des modèles de lignes d'attributs appliqués en un clic à une fiche.
- L'option qui empêche de cocher toutes les valeurs d'un attribut d'un coup.
- Des écrans de gestion des valeurs d'attributs, y compris leurs prix supplémentaires.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Catégories | product_category_active, product_category_code, product_category_name_translatable, product_category_type, product_category_tag, product_category_product_link, product_multi_category | 7 |
| Étiquettes produit | product_tag_view, product_tags_code, sale_product_template_tags, purchase_product_template_tags | 4 |
| Attributs et variantes | product_attribute_archive, product_attribute_line_template, product_attribute_value_avoid_auto_fill, product_attribute_value_menu, product_attribute_value_dependent_mixin, product_product_template_link | 6 |
Les menus ajoutés : Inventaire ▸ Configuration ▸ Produits ▸ Category Tags et Attributes Values, Ventes ▸ Configuration ▸ Produits ▸ Attribute Templates, Attributes Values et Attribute Values Extra Prices, et l'accès aux Étiquettes depuis Ventes comme depuis Achats.
La catégorie : un champ qui porte trop de choses
Dans Odoo, la catégorie de produit porte les comptes comptables de stock, la méthode de valorisation et les routes logistiques. Elle n'est donc pas libre : la tordre pour y mettre une classification commerciale casse la comptabilité analytique.
Sept modules desserrent cette contrainte :
| Module | Ce qu'il ajoute |
|---|---|
product_multi_category | Des catégories supplémentaires par produit, en plus de la catégorie principale — la classification commerciale sans toucher à la comptable |
product_category_tag | Des étiquettes colorées sur les catégories, pour les classer transversalement |
product_category_type | Un type distinguant les catégories structurantes (de simples nœuds) des catégories réelles |
product_category_code | Un code court — interne, comptable, ou venu d'un système externe |
product_category_active | L'archivage d'une catégorie obsolète |
product_category_name_translatable | Un nom traduisible, avec choix de la langue pour calculer le nom complet |
product_category_product_link | Un lien inverse technique vers les produits rattachés |
Le premier est celui qui résout le conflit de fond : on garde une arborescence comptable propre, et on classe commercialement avec des catégories supplémentaires.
Le troisième évite une confusion fréquente : certaines catégories n'existent que pour regrouper d'autres catégories. Les marquer comme structurantes empêche d'y rattacher des produits — et donc d'y perdre des articles.
L'unité de mesure par défaut sur la catégorie est traitée dans emballages, poids et unités.
Les étiquettes produit, là où elles servent
product_tag_viewaffiche les étiquettes sur l'onglet Informations générales de la fiche produit et de la variante — là où on les lit, plutôt que dans un onglet secondaire.product_tags_codeajoute un code unique par étiquette, indispensable pour les imports et les intégrations : un libellé change, un code non.sale_product_template_tagsetpurchase_product_template_tagsexposent le menu des étiquettes dans les applications Ventes et Achats, où il n'existe pas nativement.
Ces deux derniers modules tiennent en quelques lignes et résolvent une friction réelle : les étiquettes produit existent dans Odoo, mais leur écran de gestion n'est accessible que depuis certaines applications. Un responsable commercial qui veut créer une étiquette doit passer par l'Inventaire.
Les étiquettes sont le bon outil pour la classification souple — « promotion été », « fin de série », « produit d'appel » — précisément parce qu'elles ne portent ni comptabilité ni logistique. Encore faut-il pouvoir les créer là où on travaille.
Les attributs : industrialiser la création de variantes
Les modèles de lignes d'attributs
product_attribute_line_template permet de définir des modèles réutilisables de lignes d'attributs et de les appliquer en un clic à une fiche produit.
Sur un catalogue à variantes — textile, mobilier, quincaillerie —, chaque nouveau produit demande de recréer les mêmes lignes : couleur, taille, finition, avec leurs valeurs. Le modèle supprime cette répétition, et garantit que deux articles de la même famille ont exactement la même structure d'attributs.
Ne pas tout cocher
product_attribute_value_avoid_auto_fillempêche le remplissage automatique de toutes les valeurs d'un attribut quand on l'ajoute à un produit. Sans cette option, ajouter l'attribut « couleur » à un article crée d'un coup toutes les couleurs du référentiel — et autant de variantes.
C'est la cause la plus fréquente d'explosion du nombre de variantes dans une base : trois attributs avec dix valeurs chacun font mille variantes, créées en trois clics et impossibles à supprimer ensuite.
Gérer les valeurs à l'échelle
product_attribute_value_menuajoute des écrans transverses : la liste globale des valeurs d'attribut, et celle de leurs prix supplémentaires — accessibles depuis Ventes et Inventaire.product_attribute_archivepermet d'archiver attributs et valeurs devenus obsolètes au lieu de les supprimer, ce qui préserverait l'historique.product_product_template_linkajoute un bouton de navigation de la variante vers son modèle : évident, et absent.product_attribute_value_dependent_mixinest une brique technique pour les développements qui ont besoin de champs dépendant des valeurs d'attributs.
Le premier répond à une question que pose tout gestionnaire de catalogue à variantes : quelles valeurs existent, et laquelle porte un supplément de prix. Sans écran dédié, l'information est répartie sur chaque fiche produit.
Limites connues
- Les catégories supplémentaires ne portent ni comptabilité ni routes : c'est leur intérêt, et il faut le dire aux équipes qui les confondront avec la catégorie principale.
- Archiver une catégorie ne déplace pas ses produits : à traiter avant.
- Un code sur la catégorie n'est utile que s'il est tenu : sans règle de codification, il devient un champ vide.
- Les modèles de lignes d'attributs figent une structure : utile pour l'homogénéité, contraignant pour un article atypique.
- L'option anti-remplissage automatique est à activer dès le départ : sur une base où les variantes ont déjà explosé, elle n'efface rien.
product_attribute_value_dependent_mixinest une brique de développement : sans effet fonctionnel direct.
Identité technique
Les dix-sept modules viennent du dépôt OCA product-attribute, branche 18.0, en licence AGPL-3 sauf product_attribute_value_menu (LGPL-3). Quelques-uns dépendent d'applications tierces — sale, purchase, stock, account — parce qu'ils exposent des écrans dans ces applications.
Les familles voisines du même dépôt : la fiche produit, emballages, poids et unités et les listes de prix.
Questions fréquentes
Pourquoi ne pas utiliser la catégorie produit pour classer commercialement ?
Parce qu'elle porte les comptes comptables de stock, la méthode de valorisation et les routes logistiques. La tordre pour y mettre une classification commerciale casse la comptabilité analytique. product_multi_category ajoute des catégories supplémentaires, et product_category_tag des étiquettes : deux classifications sans effet comptable.
Peut-on archiver une catégorie de produits ?
Pas en standard : le modèle n'a pas de champ d'activation. product_category_active l'ajoute. Pensez à traiter les produits rattachés avant d'archiver — l'archivage de la catégorie ne les déplace pas.
Comment éviter l'explosion du nombre de variantes ?
Avec product_attribute_value_avoid_auto_fill, qui empêche le remplissage automatique de toutes les valeurs d'un attribut quand on l'ajoute à un produit. Sans cette option, ajouter « couleur » crée d'un coup toutes les couleurs du référentiel : trois attributs à dix valeurs font mille variantes en trois clics.
Comment créer rapidement des produits à variantes homogènes ?
product_attribute_line_template définit des modèles réutilisables de lignes d'attributs, appliqués en un clic. Sur un catalogue textile ou mobilier, cela supprime la recréation des mêmes lignes à chaque article et garantit que deux produits d'une même famille ont la même structure.
Où gérer les étiquettes produit dans Odoo ?
Nativement, leur écran n'est pas accessible depuis toutes les applications. sale_product_template_tags et purchase_product_template_tags exposent le menu dans Ventes et dans Achats ; product_tag_view affiche les étiquettes sur l'onglet principal de la fiche, et product_tags_code leur donne un code stable pour les imports.
Se faire accompagner
La structure d'un catalogue est une décision qu'on prend une fois et qu'on subit pendant des années. L'erreur la plus courante est d'utiliser la catégorie produit comme classification commerciale : elle finit par compter trois cents entrées, et la comptabilité analytique devient illisible.
Nous séparons donc dès le départ : la catégorie pour la comptabilité et la logistique, les catégories supplémentaires et les étiquettes pour le commerce. Et nous activons l'option anti-remplissage des attributs avant la première création de variantes. Voir les prestations d'Atalios Consulting, notre méthode ou demander un rappel.
Pour aller plus loin
- Fiche produit : codification, cycle de vie et coût
- Listes de prix : marge, révisions et impression
- Emballages, poids et unités de mesure
En résumé
La catégorie d'Odoo porte la comptabilité et la logistique : ces modules lui ajoutent code, type et archivage, puis déportent la classification commerciale vers des catégories supplémentaires et des étiquettes. Côté variantes, un modèle de lignes d'attributs et l'option qui évite d'en créer mille d'un coup. Parlons de la structure de votre catalogue.