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 Products & Pricelists, puis enrichi par 9 autres modules. Il expose 54 champs, dont 36 déclarés directement sur le modèle ; 22 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 20.
Fiche d'identité
- Nom technique
product.category- Libellé
- Catégorie de produits
- Type
- Persistant (models.Model)
- Table SQL
product_category- Module d'origine
- Products & Pricelists (
product) - Étendu par
- account, sale, delivery, point_of_sale, stock, stock_account, mrp_account, purchase, pos_stock
- Tri par défaut (_order)
parent_id desc, name asc- Champ d'affichage (_rec_name)
complete_name- Hérite de (mixins)
- mail.threadpos.load.mixin
Champs du modèle
36 champs propres, 12 hérités des mixins et 6 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
54 champs affichés sur 54
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| account_stock_variation_active | Stock Variation Account Active | boolean | related : ajouté par Facturation ( |
| account_stock_variation_id | Stock Variation Account | many2one | related : ajouté par Facturation ( |
| 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 Accounting ( |
| child_id | Catégories enfants | one2many | inverse : |
| company_id | Société | many2one | |
| complete_name | Nom complet | char | calculé |
| filter_for_stock_putaway_rule | stock.putaway.rule | boolean | ajouté par Inventaire ( |
| name | Nom | char | requistraduisible |
| 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_billed_not_received_active | Billed Not Received Account Active | boolean | related : ajouté par Achats ( |
| property_account_billed_not_received_id | Billed Not Received Account Account holding the accrued value of the goods billed but not received yet. With perpetual valuation, it counterbalances the stock valuation account at closing. | many2one | dépend de la société ajouté par Achats ( |
| property_account_bills_to_receive_active | Bills to Receive Account Active | boolean | related : ajouté par Achats ( |
| property_account_bills_to_receive_id | Bills to Receive Account Account holding the accrued value of the goods received but not billed yet. With perpetual valuation, it counterbalances the stock valuation account at closing. | many2one | dépend de la société ajouté par Achats ( |
| 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_account_invoiced_not_delivered_active | Invoiced Not Delivered Account Active | boolean | related : ajouté par Ventes ( |
| property_account_invoiced_not_delivered_id | Invoiced Not Delivered Account Account holding the accrued value of the goods invoiced but not delivered yet. With perpetual valuation, it counterbalances the stock valuation account at closing. | many2one | dépend de la société ajouté par Ventes ( |
| property_account_invoices_to_issue_active | Invoices to be Issued Account Active | boolean | related : ajouté par Ventes ( |
| property_account_invoices_to_issue_id | Invoices to be Issued Account Account holding the accrued value of the goods delivered but not invoiced yet. With perpetual valuation, it counterbalances the stock valuation account at closing. | many2one | dépend de la société ajouté par Ventes ( |
| 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. | selection | dépend de la société Valeurs : ajouté par Facturation ( |
| property_price_difference_account_active | Price Difference Account Active | boolean | related : ajouté par Facturation ( |
| property_price_difference_account_id | Compte de différence de prix With perpetual valuation, this account will hold the price difference between the standard price and the bill price. | many2one | dépend de la société ajouté par Facturation ( |
| 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 Accounting - MRP ( |
| property_stock_journal | Stock Journal When doing automated inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed. | many2one | dépend de la société ajouté par Facturation ( |
| property_stock_valuation_account_active | Stock Valuation Account Active | boolean | related : ajouté par Facturation ( |
| property_stock_valuation_account_id | Compte de valorisation des stocks When automated inventory valuation is enabled on a product, this account will hold the current value of the products. | many2one | dépend de la société ajouté par Facturation ( |
| 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 Facturation ( |
| 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 |
| 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_billed_not_received_id, property_account_bills_to_receive_id, property_account_expense_categ_id, property_account_income_categ_id, property_account_invoiced_not_delivered_id, property_account_invoices_to_issue_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
- res.company : company_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.move.line : 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 20 : 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","company_id","parent_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","company_id","parent_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 20.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 20 : ORM API
- Documentation Odoo 20 : API externe JSON-2
Données vérifiées le 25 septembre 2026 · Odoo 20.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.