purchase.order : champs, relations et API
Le modèle purchase.order (« Bon de commande fournisseur ») est un modèle persistant déclaré par le module Achats, puis enrichi par 14 autres modules. Il expose 104 champs, dont 71 déclarés directement sur le modèle ; 14 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
purchase.order- Libellé
- Bon de commande fournisseur
- Type
- Persistant (models.Model)
- Table SQL
purchase_order- Module d'origine
- Achats (
purchase) - Étendu par
- purchase_stock, sale_purchase, sale_purchase_stock, stock_dropshipping, mrp_subcontracting_dropshipping, purchase_mrp, mrp_subcontracting_purchase, project_purchase, project_purchase_stock, purchase_edi_ubl_bis3, purchase_product_matrix, purchase_repair, purchase_requisition, purchase_requisition_stock
- Tri par défaut (_order)
priority desc, id desc
Champs du modèle
71 champs propres, 27 hérités des mixins et 6 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
104 champs affichés sur 104
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| acknowledged | Confirmé Indique que le fournisseur a accusé réception du bon de commande. | boolean | |
| alternative_po_ids | Bons de commande alternatifs Autres bons de commande potentiels pour l'achat de produits | one2many | related : ajouté par Conventions d'achat ( |
| amount_tax | Taxes | monetary | lecture seulecalculé, stocké |
| amount_total | Total | monetary | lecture seulecalculé, stocké |
| amount_total_cc | Total en devise | monetary | lecture seulecalculé, stocké |
| amount_untaxed | Montant hors taxes | monetary | lecture seulecalculé, stocké |
| company_currency_id | Devise de la société | many2one | related : |
| company_id | Société | many2one | requis |
| company_price_include | Company Price Include | selection | related : |
| country_code | Code pays | char | related : |
| currency_id | Devise | many2one | requiscalculé, stocké |
| currency_rate | Taux de change | float | calculé, stocké |
| date_approve | Date de confirmation | datetime | lecture seule |
| date_calendar_start | Date calendrier de début | datetime | lecture seulecalculé, stocké |
| date_order | Échéance de commande Représente la date à laquelle le devis devrait être validé et converti en bon de commande. | datetime | requis |
| date_planned | Arrivée prévue Date de livraison promise par le fournisseur. Cette date est utilisée pour déterminer la date de réception prévue des produits. | datetime | calculé, stocké |
| default_location_dest_id_is_subcontracting_loc | ID empl. dest. par défaut est empl. sous-traitance | boolean | calculé ajouté par Gestion du dropshipping et de la sous-traitance ( |
| default_location_dest_id_usage | Type d'emplacement de destination Champ technique utilisé pour afficher l'adresse de dropshipping. | selection | lecture seule related : ajouté par Achats Inventaire ( |
| dest_address_id | Adresse de dropshipping Ajoutez une adresse si vous voulez livrer directement du fournisseur au client. Sinon, laissez vide pour vous faire livrer à votre société. | many2one | calculé, stocké |
| dropship_picking_count | Nombre de livraisons en dropshipping | integer | calculé ajouté par Drop Shipping ( |
| duplicated_order_ids | Commande dupliquée | many2many | calculé |
| effective_date | Arrivée Date d'achèvement de la première réception. | datetime | calculé, stocké ajouté par Achats Inventaire ( |
| fiscal_position_id | Position fiscale | many2one | |
| grid | Grid Technical storage of grid. If grid_update, will be loaded on the PO. If not, represents the matrix to open. | char | ajouté par Matrice d'achat ( |
| grid_product_tmpl_id | Grille des modèles de produits Champ technique pour les fonctionnalités de product_matrix. | many2one | ajouté par Matrice d'achat ( |
| grid_update | Mise à jour de la grille Si le champ grille contient une nouvelle matrice à appliquer ou pas. | boolean | ajouté par Matrice d'achat ( |
| has_sale_order | Champ technique indiquant si le bon de commande est lié à des commandes client. | boolean | calculé ajouté par Ventes & Achats ( |
| incoming_picking_count | Nombre de réceptions | integer | calculé ajouté par Achats Inventaire ( |
| incoterm_id | Incoterm Les Incoterms sont une série de termes commerciaux prédéfinis utilisés dans les transactions internationales. | many2one | |
| incoterm_location | Lieu Incoterm | char | ajouté par Achats Inventaire ( |
| invoice_count | Nombre de factures | integer | calculé, stocké |
| invoice_ids | Factures fournisseurs | many2many | calculé, stocké |
| invoice_status | Statut de facturation | selection | lecture seulecalculé, stocké Valeurs : |
| is_late | En retard | boolean | |
| is_shipped | Est expédié | boolean | calculé ajouté par Achats Inventaire ( |
| lock_confirmed_po | Lock Confirmed Po | selection | related : |
| locked | Verrouillé Les bons de commandes verrouillés ne peuvent pas être modifiés. | boolean | |
| mrp_production_count | Nombre d'OF d'origine | integer | calculé ajouté par Gestion des achats et du MRP ( |
| name | Référence commande | char | requis |
| note | Conditions générales | html | |
| on_time_rate | On Time Rate | float | related : ajouté par Achats Inventaire ( |
| on_time_rate_perc | OTD | float | calculé ajouté par Demande d'achat stock ( |
| order_line | Lignes de commande | one2many | inverse : |
| origin | Source Référence du document qui a généré cette demande de bon de commande (par ex. une commande client) | char | |
| partner_bill_count | Partner Bill Count | integer | related : |
| partner_id | Fournisseur Vous pouvez trouver un fournisseur par son nom, numéro de TVA, e-mail ou sa référence interne. | many2one | requis |
| partner_ref | Référence fournisseur Référence de la commande client ou de l'offre envoyée par le fournisseur. Utilisé principalement pour faire la correspondance lors de la réception des produits, puisque cette référence est généralement écrite sur le bon de livraison envoyé par votre fournisseur. | char | |
| payment_term_id | Conditions de paiement | many2one | |
| picking_ids | Réceptions | many2many | calculé, stocké ajouté par Achats Inventaire ( |
| picking_type_id | Livrer à Cela déterminera le type d'opération des réceptions | many2one | requis ajouté par Achats Inventaire ( |
| priority | Priorité | selection | Valeurs : |
| product_id | Produit | many2one | related : |
| project_id | Projet | many2one | ajouté par Projet Achats ( |
| purchase_group_id | Groupe d'achat | many2one | ajouté par Conventions d'achat ( |
| purchase_warning_text | Avertissement d’achat Avertissement interne pour le partenaire ou les produits défini par l’utilisateur. | text | calculé |
| receipt_reminder_email | E-mail de rappel de réception | boolean | calculé, stocké |
| receipt_status | Statut de la réception Red: Late Orange: To process today Green: On time | selection | calculé, stocké Valeurs : ajouté par Achats Inventaire ( |
| reference_ids | Références | many2many | ajouté par Achats Inventaire ( |
| reminder_date_before_receipt | Jours avant réception | integer | calculé, stocké |
| repair_count | Count of source repairs | integer | calculé ajouté par Réparation d'achat ( |
| report_grids | Imprimer la grille des variantes Si coché, la matrice des produits configurables sera montrée sur le rapport de cette commande. | boolean | ajouté par Matrice d'achat ( |
| requisition_id | Accord | many2one | ajouté par Conventions d'achat ( |
| requisition_type | Requisition Type | selection | related : ajouté par Conventions d'achat ( |
| sale_order_count | Nombre de ventes à la source | integer | calculé ajouté par Ventes & Achats ( |
| show_comparison | Afficher la comparaison | boolean | calculé |
| state | Statut | selection | lecture seule Valeurs : |
| subcontracting_resupply_picking_count | Nombre de réapprovisionnements de sous-traitance Nombre de réapprovisionnements de sous-traitance pour les composants | integer | calculé ajouté par Gestion des achats et de la sous-traitance ( |
| tax_calculation_rounding_method | Méthode d'arrondi pour le calcul des taxes | selection | lecture seule related : |
| tax_country_id | Pays de la taxe Champ technique pour filtrer les taxes disponibles en fonction du pays fiscal et de la position fiscale. | many2one | calculé |
| tax_totals | Taxes totales | binary | calculé |
| user_id | Acheteur | many2one | |
| access_token | Jeton de sécurité | char | hérité de portal.mixin |
| access_url | URl d'accès au portail URl du portail client | char | calculé hérité de portal.mixin |
| access_warning | Avertissement d'accès | text | calculé hérité de portal.mixin |
| activity_calendar_event_id | Activité suivante de l'événement du calendrier | many2one | calculé hérité de mail.activity.mixin |
| activity_date_deadline | Date limite de l'activité à venir | date | lecture seulecalculé hérité de mail.activity.mixin |
| activity_exception_decoration | Indicateur d’exception d’activité Type d'activité d'exception enregistrée. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_exception_icon | Icône Icône pour indiquer une activité d'exception. | char | calculé hérité de mail.activity.mixin |
| activity_ids | Activités | one2many | inverse : hérité de mail.activity.mixin |
| activity_state | Statut de l'activité Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_summary | Résumé de l'activité suivante | char | related : hérité de mail.activity.mixin |
| activity_type_icon | Icône de type d'activité | char | related : hérité de mail.activity.mixin |
| activity_type_id | Type d'activités à venir | many2one | related : hérité de mail.activity.mixin |
| activity_user_id | Utilisateur responsable | many2one | lecture seulecalculé hérité de mail.activity.mixin |
| 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 |
| my_activity_date_deadline | Échéance de mon activité | date | lecture seulecalculé hérité de mail.activity.mixin |
| 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.fiscal.position : fiscal_position_id
- account.incoterms : incoterm_id
- account.move : invoice_ids
- account.payment.term : payment_term_id
- product.product : product_id
- product.template : grid_product_tmpl_id
- project.project : project_id
- purchase.order : alternative_po_ids, duplicated_order_ids
- purchase.order.group : purchase_group_id
- purchase.order.line : order_line
- purchase.requisition : requisition_id
- res.company : company_id
- res.country : tax_country_id
- res.currency : company_currency_id, currency_id
- res.partner : dest_address_id, partner_id
- res.users : user_id
- stock.picking : picking_ids
- stock.picking.type : picking_type_id
- stock.reference : reference_ids
Champs d'autres modèles qui pointent ici
- account.move : purchase_id
- account.move.line : purchase_order_id
- bill.to.po.wizard : purchase_order_id
- purchase.bill.line.match : purchase_order_id
- purchase.bill.union : purchase_order_id
- purchase.order : duplicated_order_ids
- purchase.order.line : order_id
- purchase.report : order_id
- purchase.requisition.alternative.warning : alternative_po_ids, po_ids
- purchase.requisition.create.alternative : origin_po_id
- stock.lot : purchase_order_ids
- stock.picking : purchase_id
- stock.reference : purchase_ids
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/purchase.order/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: votre-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","company_id","currency_id","date_order","partner_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}/purchase.order/search_read",
headers=headers,
json={"domain": [], "fields": ["name","company_id","currency_id","date_order","partner_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/purchase-order">purchase.order (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.