product.category : champs, relations et API
Le modèle product.category (« Catégorie de produits ») est un modèle persistant déclaré par le module Produits & Listes de prix, puis enrichi par 6 autres modules. Il expose 43 champs, dont 24 déclarés directement sur le modèle ; 21 champs d'autres modèles pointent vers lui. Retrouvez ci-dessous chaque champ avec son nom technique, son type, son libellé français et ses relations, puis un exemple d'appel à l'API JSON-2 d'Odoo 19.
Fiche d'identité
- Nom technique
product.category- Libellé
- Catégorie de produits
- Type
- Persistant (models.Model)
- Table SQL
product_category- Module d'origine
- Produits & Listes de prix (
product) - Étendu par
- account, delivery, stock, stock_account, point_of_sale, mrp_account
- Tri par défaut (_order)
complete_name- Champ d'affichage (_rec_name)
complete_name- Hérite de (mixins)
- mail.threadpos.load.mixin
Champs du modèle
24 champs propres, 13 hérités des mixins et 6 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
43 champs affichés sur 43
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| account_stock_variation_id | Compte de variation de stock | many2one | related : ajouté par WMS Comptabilité ( |
| anglo_saxon_accounting | Utiliser la comptabilité anglo-saxonne Si coché, le produit sera valorisé selon la méthode comptable anglo-saxonne. | boolean | calculé ajouté par WMS Comptabilité ( |
| child_id | Catégories enfants | one2many | inverse : |
| complete_name | Nom complet | char | calculé, stocké |
| filter_for_stock_putaway_rule | stock.putaway.rule | boolean | ajouté par Inventaire ( |
| name | Nom | char | requis |
| packaging_reserve_method | Réserver des conditionnements Reserve Only Full Packagings: will not reserve partial packagings. If customer orders 2 pallets of 1000 units each and you only have 1600 in stock, then only 1000 will be reserved Reserve Partial Packagings: allow reserving partial packagings. If customer orders 2 pallets of 1000 units each and you only have 1600 in stock, then 1600 will be reserved | selection | Valeurs : ajouté par Inventaire ( |
| parent_id | Catégorie parente | many2one | |
| parent_path | Chemin parent | char | |
| parent_route_ids | Itinéraires parents | many2many | calculé ajouté par Inventaire ( |
| product_count | # Produits Le nombre de produits dans cette catégorie (Ne tient pas compte des catégories enfants) | integer | calculé |
| product_properties_definition | Propriétés du produit | properties_definition | |
| property_account_expense_categ_id | Compte de charges La charge est comptabilisée lorsqu'une facture fournisseur est validée, sauf dans le cadre du système comptable anglo-saxon avec la valorisation permanente d'inventaire, auquel cas la charge (compte du coût des biens vendus) est comptabilisée lors de la validation de la facture client. | many2one | dépend de la société ajouté par Facturation ( |
| property_account_income_categ_id | Compte des revenus Ce compte sera utilisé lors de la validation d'une facture client. | many2one | dépend de la société ajouté par Facturation ( |
| property_cost_method | Méthode de coût Standard Price: The products are valued at their standard cost defined on the product. Average Cost (AVCO): The products are valued at weighted average cost. First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first. | selection | dépend de la société Valeurs : ajouté par WMS Comptabilité ( |
| property_price_difference_account_id | Compte de différence de prix Avec la valorisation perpétuelle, ce compte contient l’écart de prix entre le prix standard et le prix facturé. | many2one | dépend de la société ajouté par WMS Comptabilité ( |
| property_stock_account_production_cost_id | Compte de production This account will be used as a valuation counterpart for both components and final products for manufacturing orders. If there are any workcenter/employee costs, this value will remain on the account once the production is completed. | many2one | dépend de la société ajouté par Comptabilité - MRP ( |
| property_stock_journal | Journal des stocks Quand la valorisation d'inventaire est automatisée, c'est le journal comptable dans lequel les entrées seront automatiquement postées lorsque les mouvements de stock seront réalisés. | many2one | dépend de la société ajouté par WMS Comptabilité ( |
| property_stock_valuation_account_id | Compte de valorisation des stocks Quand la valorisation d'inventaire automatisée est activée sur un article, ce compte contient la valeur actuelle des articles. | many2one | dépend de la société ajouté par WMS Comptabilité ( |
| property_valuation | Valorisation d'inventaire Periodic: The accounting entries are suggested manually in the inventory valuation report. Perpetual: An accounting entry is automatically created to value the inventory when a product is billed or invoiced. | selection | dépend de la société Valeurs : ajouté par WMS Comptabilité ( |
| putaway_rule_ids | Stratégies de rangement | one2many | inverse : ajouté par Inventaire ( |
| removal_strategy_id | Forcer la stratégie d'enlèvement Set a specific removal strategy that will be used regardless of the source location for this product category. FIFO: products/lots that were stocked first will be moved out first. LIFO: products/lots that were stocked last will be moved out first. Closest location: products/lots closest to the target location will be moved out first. FEFO: products/lots with the closest removal date will be moved out first (the availability of this method depends on the "Expiration Dates" setting). Least Packages: FIFO but with the least number of packages possible when there are several packages containing the same product. | many2one | ajouté par Inventaire ( |
| route_ids | Routes | many2many | ajouté par Inventaire ( |
| total_route_ids | Total des routes | many2many | lecture seulecalculé ajouté par Inventaire ( |
| has_message | A un message | boolean | calculé hérité de mail.thread |
| message_attachment_count | Nombre de pièces jointes | integer | calculé hérité de mail.thread |
| message_follower_ids | Abonnés | one2many | inverse : hérité de mail.thread |
| message_has_error | Erreur d'envoi du message Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_has_error_counter | Nombre d'erreurs Nombre de messages avec des erreurs d'envoi | integer | calculé hérité de mail.thread |
| message_has_sms_error | Erreur d'envoi SMS Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_ids | Messages | one2many | inverse : hérité de mail.thread |
| message_is_follower | Est un abonné | boolean | calculé hérité de mail.thread |
| message_needaction | Nécessite une action Si coché, de nouveaux messages demandent votre attention. | boolean | calculé hérité de mail.thread |
| message_needaction_counter | Nombre d'actions Nombre de messages nécessitant une action | integer | calculé hérité de mail.thread |
| message_partner_ids | Abonnés (Partenaires) | many2many | calculé hérité de mail.thread |
| rating_ids | Évaluations | one2many | inverse : hérité de mail.thread |
| website_message_ids | Messages du site web Historique de communication du site web | one2many | inverse : hérité de mail.thread |
| create_date | Créé le | datetime | lecture seuleautomatique |
| create_uid | Créé par | many2one | lecture seuleautomatique |
| display_name | Nom affiché | char | lecture seulecalculéautomatique |
| id | ID | integer | lecture seuleautomatique |
| write_date | Dernière mise à jour le | datetime | lecture seuleautomatique |
| write_uid | Dernière mise à jour par | many2one | lecture seuleautomatique |
Relations
Modèles liés depuis ce modèle
- account.account : account_stock_variation_id, property_account_expense_categ_id, property_account_income_categ_id, property_price_difference_account_id, property_stock_account_production_cost_id, property_stock_valuation_account_id
- account.journal : property_stock_journal
- product.category : child_id, parent_id
- product.removal : removal_strategy_id
- stock.putaway.rule : putaway_rule_ids
- stock.route : parent_route_ids, route_ids, total_route_ids
Champs d'autres modèles qui pointent ici
- account.analytic.applicability : product_categ_id
- account.analytic.distribution.model : product_categ_id
- account.analytic.line : product_category
- account.invoice.report : product_categ_id
- account.move.line : product_category_id
- loyalty.reward : discount_product_category_id
- loyalty.rule : product_category_id
- product.category : parent_id
- product.pricelist.item : categ_id
- product.template : categ_id
- purchase.report : category_id
- report.pos.order : product_categ_id
- sale.order.line : categ_id
- sale.report : categ_id
- stock.move : product_category_id
- stock.picking.type : wave_category_ids
- stock.putaway.rule : category_id
- stock.quant : product_categ_id
- stock.route : categ_ids
- stock.warehouse.orderpoint : product_category_id
- vendor.delay.report : category_id
Lire ce modèle par l'API
Exemple d'appel à l'API JSON-2 d'Odoo 19 : lecture des cinq premiers enregistrements avec des champs réels du modèle. Remplacez l'instance, la base et la clé API par les vôtres.
curl -X POST "https://votre-instance.odoo.com/json/2/product.category/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: votre-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["complete_name","name","account_stock_variation_id","parent_id","property_account_expense_categ_id"],"limit":5}'import requests
BASE_URL = "https://votre-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "votre-base"}
res = requests.post(
f"{BASE_URL}/product.category/search_read",
headers=headers,
json={"domain": [], "fields": ["complete_name","name","account_stock_variation_id","parent_id","property_account_expense_categ_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- L'accès à l'API externe est réservé à la formule Custom d'Odoo.
- XML-RPC et JSON-RPC seront retirés dans Odoo 22 (automne 2028) : préférez JSON-2.
- Les droits d'accès et règles d'enregistrement de l'utilisateur de la clé s'appliquent.
Citer cet outil
Vous rédigez un tutoriel, une documentation interne ou une réponse sur un forum ? Copiez ce lien pour renvoyer vos lecteurs vers la fiche à jour.
<a href="https://aidoo.ai/fr/outils/explorateur-modeles-odoo/product-category">product.category (Odoo 19.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 19 : ORM API
- Documentation Odoo 19 : API externe JSON-2
Données vérifiées le 23 septembre 2026 · Odoo 19.0 Community
Vous avez un projet Odoo ou souhaitez exploiter votre ERP avec l'IA ? Échangeons
Intégration, développement de modules, connexion de Claude ou ChatGPT à vos données : décrivez-nous votre contexte, nous vous répondons sous 24 heures ouvrées.