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 15 autres modules. Il expose 107 champs, dont 74 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 20.
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, purchase_alternative, purchase_alternative_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
74 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.
107 champs affichés sur 107
| 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 Alternative 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é |
| bill_matched_ratio | Bill Matched Ratio | float | calculé |
| 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 la commande | 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 prévue des marchandises par le fournisseur, selon les dernières informations disponibles | datetime | calculé, stocké |
| date_promised | Date promise Date promise par le fournisseur pour la livraison d’au moins un ou plusieurs produits. | datetime | calculé, stocké ajouté par Purchase Stock ( |
| default_location_dest_id_is_subcontracting_loc | ID empl. dest. par défaut est empl. sous-traitance | boolean | calculé ajouté par Dropship and Subcontracting Management ( |
| 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 Purchase Stock ( |
| 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é |
| document_tax_mode | Mode de taxe du document | selection | requiscalculé, stocké Valeurs : |
| 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 de finalisation de la dernière réception. | datetime | calculé, stocké ajouté par Purchase Stock ( |
| 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 Purchase Matrix ( |
| grid_product_tmpl_id | Grille des modèles de produits Champ technique pour les fonctionnalités de product_matrix. | many2one | ajouté par Purchase Matrix ( |
| grid_update | Mise à jour de la grille Si le champ grille contient une nouvelle matrice à appliquer ou pas. | boolean | ajouté par Purchase Matrix ( |
| has_sale_order | Champ technique indiquant si le bon de commande est lié à des commandes client. | boolean | calculé ajouté par Sale Purchase ( |
| incoming_picking_count | Nombre de réceptions | integer | calculé ajouté par Purchase Stock ( |
| incoterm_id | Incoterm Les Incoterms sont une série de termes commerciaux prédéfinis utilisés dans les transactions internationales. | many2one | calculé, stocké |
| incoterm_location | Lieu Incoterm | char | calculé, stocké |
| 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 Purchase Stock ( |
| 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 Purchase and MRP Management ( |
| name | Référence commande | char | requis |
| note | Conditions générales | html | |
| on_time_rate | On Time Rate | float | related : ajouté par Purchase Stock ( |
| on_time_rate_perc | OTD | float | calculé ajouté par Purchase Alternative 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 Purchase Stock ( |
| picking_type_id | Livrer à Cela déterminera le type d'opération des réceptions | many2one | requis ajouté par Purchase Stock ( |
| priority | Priorité | selection | Valeurs : |
| product_id | Produit | many2one | related : |
| project_id | Projet | many2one | ajouté par Project Purchase ( |
| purchase_group_id | Groupe d'achat | many2one | ajouté par Alternative 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 | Rappel de réception | boolean | calculé, stocké |
| receipt_status | Statut de la réception | selection | calculé, stocké Valeurs : |
| reference_ids | Références | many2many | ajouté par Purchase Stock ( |
| reminder_date_before_receipt | Jours avant réception | integer | calculé, stocké |
| repair_count | Count of source repairs | integer | calculé ajouté par Purchase Repair ( |
| 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 Sale Purchase ( |
| show_comparison | Afficher la comparaison | boolean | calculé |
| show_receive_button | Afficher le bouton Recevoir | 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 Purchase and Subcontracting Management ( |
| 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 | json | 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_plans_ids | Plans d'activité | many2many | calculé 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 |
| 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.alternative.create : origin_po_id
- purchase.alternative.warning : alternative_po_ids, po_ids
- 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
- 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 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/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","document_tax_mode"],"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","document_tax_mode"], "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 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.