sale.order : champs, relations et API
Le modèle sale.order (« Commande client ») est un modèle persistant déclaré par le module Ventes, puis enrichi par 36 autres modules. Il expose 175 champs, dont 143 déclarés directement sur le modèle ; 31 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
sale.order- Libellé
- Commande client
- Type
- Persistant (models.Model)
- Table SQL
sale_order- Module d'origine
- Ventes (
sale) - Étendu par
- delivery, sale_stock, stock_delivery, delivery_mondialrelay, sale_management, event_sale, event_booth_sale, sale_crm, mass_mailing_sale, repair, sale_purchase, sale_purchase_stock, stock_dropshipping, partnership, pos_sale, sale_margin, sale_mrp, sale_project, sale_expense, sale_edi_ubl, sale_gelato, sale_loyalty, sale_loyalty_delivery, sale_pdf_quote_builder, sale_product_matrix, sale_timesheet, website_sale, website_sale_slides, website_event_booth_sale, website_event_sale, website_sale_stock, website_sale_collect, website_sale_gelato, website_sale_loyalty, website_sale_mondialrelay, website_sale_mrp
- Tri par défaut (_order)
date_order desc, id desc
Champs du modèle
143 champs propres, 27 hérités des mixins et 5 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
175 champs affichés sur 175
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| amount_delivery | Coût de livraison Toutes taxes comprises ou hors taxes en fonction de la configuration du site web. | monetary | calculé ajouté par eCommerce ( |
| amount_invoiced | Déjà facturé | monetary | calculé |
| amount_paid | Montant des transactions de paiement Somme des transactions effectuées via le formulaire de paiement en ligne et qui se trouvent au stade « effectué » ou « autorisé » et qui sont liées à cette commande. | float | calculé |
| amount_tax | Taxes | monetary | calculé, stocké |
| amount_to_invoice | Solde non facturé | monetary | calculé |
| amount_total | Total | monetary | calculé, stocké |
| amount_undiscounted | Montant avant remise | float | calculé |
| amount_unpaid | Montant à payer dans le PdV Montant restant à payer dans le PdV pour éviter un double paiement ou une double facturation. | monetary | calculé, stocké ajouté par PdV - Ventes ( |
| amount_untaxed | Montant hors taxes | monetary | calculé, stocké |
| applied_coupon_ids | Bons de réduction appliqués manuellement | many2many | ajouté par Ventes Fidélité ( |
| assigned_grade_id | Grade assigné | many2one | calculé ajouté par Partenariat / Adhésion ( |
| attendee_count | Nombre de participants | integer | calculé ajouté par Ventes sur événements ( |
| authorized_transaction_ids | Transactions autorisées | many2many | calculé |
| available_quotation_document_ids | Documents de devis disponibles | many2many | calculé ajouté par Créateur de devis PDF ( |
| campaign_id | Campagne | many2one | |
| carrier_id | Mode de livraison Complétez ce champ si vous envisagez de facturer l'expédition en fonction du transfert. | many2one | ajouté par Frais de livraison ( |
| cart_quantity | Quantité du panier | integer | calculé ajouté par eCommerce ( |
| cart_recovery_email_sent | E-mail de récupération du panier déjà envoyé | boolean | ajouté par eCommerce ( |
| client_order_ref | Référence client | char | |
| closed_task_count | Closed Task Count | integer | calculé ajouté par Ventes - Projet ( |
| code_enabled_rule_ids | Règles déclenchées manuellement | many2many | ajouté par Ventes Fidélité ( |
| commitment_date | Date de livraison Il s'agit de la date de livraison promise au client. Si elle est définie, le bon de livraison se basera sur cette date plutôt que celle définie grâce au délai indiqué sur le produit. | datetime | |
| company_id | Société | many2one | requis |
| company_price_include | Company Price Include | selection | related : |
| completed_task_percentage | Completed Task Percentage | float | calculé ajouté par Ventes - Projet ( |
| country_code | Code pays | char | related : |
| coupon_point_ids | Point de réduction | one2many | inverse : ajouté par Ventes Fidélité ( |
| create_date | Date de création | datetime | lecture seule |
| currency_id | Devise | many2one | calculé, stocké |
| currency_rate | Taux de change | float | calculé, stocké |
| customizable_pdf_form_fields | Champs de formulaire PDF personnalisables | json | ajouté par Créateur de devis PDF ( |
| date_order | Date de la commande Creation date of draft/sent orders, Confirmation date of confirmed orders. | datetime | requis |
| delivery_count | Bons de livraison | integer | calculé ajouté par Gestion des ventes et des entrepôts ( |
| delivery_message | Message de livraison | char | lecture seule ajouté par Frais de livraison ( |
| delivery_set | Mode de livraison défini | boolean | calculé ajouté par Frais de livraison ( |
| delivery_status | Statut de livraison Blue: Not Delivered/Started Orange: Partially Delivered Green: Fully Delivered | selection | calculé, stocké Valeurs : ajouté par Gestion des ventes et des entrepôts ( |
| disabled_auto_rewards | Récompenses automatiques désactivées | many2many | ajouté par Bons de réduction, promotions, cartes-cadeaux et fidélité pour l'eCommerce ( |
| dropship_picking_count | Nombre de livraisons en dropshipping | integer | calculé ajouté par Drop Shipping ( |
| duplicated_order_ids | Commande dupliquée | many2many | calculé |
| effective_date | Date effective Date d'exécution du premier ordre de livraison. | datetime | calculé, stocké ajouté par Gestion des ventes et des entrepôts ( |
| event_booth_count | Nombre de stands | integer | calculé ajouté par Ventes de stands d'événement ( |
| event_booth_ids | Stands | one2many | inverse : ajouté par Ventes de stands d'événement ( |
| expected_date | Date prévue Date de livraison que vous pouvez promettre au client, calculée à partir du délai minimum des lignes de commande dans le cas des produits de type Service. En cas d'expédition, la politique d'expédition de la commande sera prise en compte pour utiliser soit le délai minimum soit le délai maximum des lignes de commande. | datetime | calculé |
| expense_count | # de dépenses | integer | calculé ajouté par Ventes Dépenses ( |
| expense_ids | Dépenses | one2many | lecture seule inverse : ajouté par Ventes Dépenses ( |
| fiscal_position_id | Position fiscale Les positions fiscales sont utilisées pour adapter les taxes et les comptes comptables par clients ou par commandes clients/factures. La valeur par défaut sera celle renseignée sur le client. | many2one | calculé, stocké |
| gift_card_count | Nombre de cartes-cadeaux | integer | calculé ajouté par Ventes Fidélité ( |
| grid | Stockage local matriciel Technical local storage of grid. If grid_update, will be loaded on the SO. If not, represents the matrix to open. | char | ajouté par Matrice de vente ( |
| grid_product_tmpl_id | Grille des modèles de produits | many2one | ajouté par Matrice de vente ( |
| grid_update | Mise à jour de la grille | boolean | ajouté par Matrice de vente ( |
| has_active_pricelist | A une liste de prix active | boolean | calculé |
| has_archived_products | Contient des produits archivés | boolean | calculé |
| has_authorized_transaction_ids | A des transactions autorisées | boolean | calculé |
| incoterm | Incoterm Les Incoterms sont une série de termes commerciaux prédéfinis utilisés dans les transactions internationales. | many2one | ajouté par Gestion des ventes et des entrepôts ( |
| incoterm_location | Lieu Incoterm | char | ajouté par Gestion des ventes et des entrepôts ( |
| invoice_count | Nombre de factures | integer | calculé |
| invoice_ids | Factures clients | many2many | calculé |
| invoice_status | Statut de la facture | selection | calculé, stocké Valeurs : |
| is_abandoned_cart | Panier abandonné | boolean | calculé ajouté par eCommerce ( |
| is_all_service | Produit de service | boolean | calculé ajouté par Frais de livraison ( |
| is_expired | A expiré | boolean | calculé |
| is_pdf_quote_builder_available | Le générateur de devis PDF est disponible | boolean | calculé ajouté par Créateur de devis PDF ( |
| is_product_milestone | Is Product Milestone | boolean | calculé ajouté par Ventes - Projet ( |
| journal_id | Journal de facturation Si défini, la commande client sera facturée dans ce journal ; sinon, le journal des ventes avec la séquence la plus basse est utilisé. | many2one | calculé, stocké |
| json_popover | Données JSON pour le widget popover | char | calculé ajouté par Gestion des ventes et des entrepôts ( |
| late_availability | Disponibilités tardives Vrai si un transfert lié est en retard de disponibilité | boolean | calculé ajouté par Gestion des ventes et des entrepôts ( |
| locked | Verrouillé Les commandes verrouillées ne peuvent plus être modifiées. | boolean | |
| loyalty_data | Données de fidélité | json | calculé ajouté par Ventes Fidélité ( |
| margin | Marge | monetary | calculé, stocké ajouté par Marges sur les commandes de ventes ( |
| margin_percent | Marge (%) | float | calculé, stocké ajouté par Marges sur les commandes de ventes ( |
| medium_id | Médium | many2one | |
| milestone_count | Milestone Count | integer | calculé ajouté par Ventes - Projet ( |
| mrp_production_count | Nombre d'OF générés | integer | calculé ajouté par Gestion de Ventes et MRP ( |
| mrp_production_ids | Ordres de fabrication associés à cette commande client. | many2many | calculé ajouté par Gestion de Ventes et MRP ( |
| name | Référence commande | char | requis |
| note | Conditions générales | html | calculé, stocké |
| only_services | Services seulement | boolean | calculé ajouté par eCommerce ( |
| opportunity_id | Opportunité | many2one→ crm.lead | ajouté par Opportunité de devis ( |
| order_line | Lignes de commande | one2many | inverse : |
| origin | Document d'origine Référence du document qui a généré cette demande de commande client | char | |
| partner_credit_warning | Avertissement du crédit partenaire | text | calculé |
| partner_id | Client | many2one | requis |
| partner_invoice_id | Adresse de facturation | many2one | requiscalculé, stocké |
| partner_shipping_id | Adresse de livraison | many2one | requiscalculé, stocké |
| payment_term_id | Conditions de paiement | many2one | calculé, stocké |
| pending_email_template_id | Modèle d'e-mail en attente | many2one | lecture seule |
| picking_ids | Transferts | one2many | inverse : ajouté par Gestion des ventes et des entrepôts ( |
| picking_policy | Politique d'expédition Si vous livrez tous les produits en même temps, le bon de livraison sera planifié sur base du produit avec le plus grand délai. Autrement, il le sera sur le plus court. | selection | requis Valeurs : ajouté par Gestion des ventes et des entrepôts ( |
| pickup_location_data | Données sur le lieu de collecte | json | ajouté par Frais de livraison ( |
| pos_order_count | Nombre de commandes du PdV | integer | lecture seulecalculé ajouté par PdV - Ventes ( |
| pos_order_line_ids | Lignes de commandes transférées vers le Point de Vente | one2many | lecture seule inverse : ajouté par PdV - Ventes ( |
| preferred_payment_method_line_id | Mode de paiement | many2one | calculé, stocké |
| prepayment_percent | Pourcentage d'acompte Le pourcentage du montant qui doit être payé par le client pour confirmer la commande. | float | calculé, stocké |
| pricelist_id | Liste de prix Si vous modifiez la liste de prix, seules les lignes ajoutées après cette modification seront affectées. | many2one | calculé, stocké |
| project_account_id | Compte de projet | many2one | related : ajouté par Ventes - Projet ( |
| project_count | Number of Projects | integer | calculé ajouté par Ventes - Projet ( |
| project_id | Projet Une tâche sera créée pour le projet lors de la confirmation de la commande client. La répartition analytique de ce projet servira également de référence pour les nouveaux articles de la commande client créée. | many2one | ajouté par Ventes - Projet ( |
| project_ids | Projets | many2many | calculé ajouté par Ventes - Projet ( |
| purchase_order_count | Nombre de bons de commande générés | integer | calculé ajouté par Ventes & Achats ( |
| quotation_document_ids | En-têtes/Pieds de page | many2many | ajouté par Créateur de devis PDF ( |
| recompute_delivery_price | Les frais de livraison doivent être recalculés | boolean | ajouté par Frais de livraison ( |
| reference | Réf. paiement La communication de paiement de ce bon de commande. | char | |
| repair_count | Ordre(s) de réparation | integer | calculé ajouté par Réparations ( |
| repair_order_ids | Ordre de réparation | one2many | inverse : ajouté par Réparations ( |
| report_grids | Imprimer la grille des variantes | boolean | ajouté par Matrice de vente ( |
| require_payment | Paiement en ligne Demander un paiement en ligne au client pour confirmer la commande. | boolean | calculé, stocké |
| require_signature | Signature en ligne Demander une signature en ligne au client pour confirmer la commande. | boolean | calculé, stocké |
| reward_amount | Montant de la récompense | float | calculé ajouté par Ventes Fidélité ( |
| sale_order_template_id | Modèle de devis | many2one | calculé, stocké ajouté par Ventes ( |
| sale_warning_text | Avertissement vente Avertissement interne pour le partenaire ou les produits défini par l’utilisateur. | text | calculé |
| shipping_weight | Poids d'expédition | float | calculé, stocké ajouté par Frais de livraison ( |
| shop_warning | Avertissement | char | ajouté par eCommerce ( |
| show_create_project_button | Show Create Project Button | boolean | calculé ajouté par Ventes - Projet ( |
| show_hours_recorded_button | Show Hours Recorded Button | boolean | calculé ajouté par Feuille de temps des ventes ( |
| show_json_popover | A un transfert en retard | boolean | calculé ajouté par Gestion des ventes et des entrepôts ( |
| show_project_button | Show Project Button | boolean | calculé ajouté par Ventes - Projet ( |
| show_update_fpos | A changé de position fiscale | boolean | |
| show_update_pricelist | A une modification de liste de prix | boolean | |
| signature | Signature | image | |
| signed_by | Signé par | char | |
| signed_on | Signé le | datetime | |
| source_id | Source | many2one | |
| state | Statut | selection | lecture seule Valeurs : |
| stock_reference_ids | Références | many2many | ajouté par Gestion des ventes et des entrepôts ( |
| tag_ids | Étiquettes | many2many→ crm.tag | |
| tasks_count | Tâches | integer | calculé ajouté par Ventes - Projet ( |
| tasks_ids | Tasks associated with this sale | many2many | calculé ajouté par Ventes - Projet ( |
| tax_calculation_rounding_method | Méthode d'arrondi pour le calcul de la taxe | selection | related : |
| tax_country_id | Pays de la taxe | many2one | calculé |
| tax_totals | Taxes totales | binary | calculé |
| team_id | Équipe commerciale | many2one→ crm.team | calculé, stocké |
| terms_type | Terms Type | selection | related : |
| timesheet_count | Timesheet activities | float | calculé ajouté par Feuille de temps des ventes ( |
| timesheet_encode_uom_id | Timesheet Encode Uom | many2one→ uom.uom | related : ajouté par Feuille de temps des ventes ( |
| timesheet_total_duration | Durée totale des feuilles de temps Durée totale enregistrée, exprimée dans l'unité de mesure d'encodage, et arrondie à l'unité. | integer | calculé ajouté par Feuille de temps des ventes ( |
| transaction_ids | Transactions | many2many | lecture seule |
| type_name | Nom du type | char | calculé |
| user_id | Vendeur | many2one | calculé, stocké |
| validity_date | Expiration Validity of the quotation. After this date, you will no longer be able to sign and pay it. | date | calculé, stocké |
| visible_project | Display project | boolean | lecture seulecalculé ajouté par Ventes - Projet ( |
| warehouse_id | Entrepôt | many2one | calculé, stocké ajouté par Gestion des ventes et des entrepôts ( |
| website_id | Site Web Site web via lequel cette commande a été placée pour les commandes eCommerce. | many2one→ website | lecture seule ajouté par eCommerce ( |
| website_order_line | Les lignes de commandes sont affichées sur le site web | one2many | calculé ajouté par eCommerce ( |
| 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_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.analytic.account : project_account_id
- account.fiscal.position : fiscal_position_id
- account.incoterms : incoterm
- account.journal : journal_id
- account.move : invoice_ids
- account.payment.method.line : preferred_payment_method_line_id
- account.payment.term : payment_term_id
- crm.lead : opportunity_id
- crm.tag : tag_ids
- crm.team : team_id
- delivery.carrier : carrier_id
- event.booth : event_booth_ids
- hr.expense : expense_ids
- loyalty.card : applied_coupon_ids
- loyalty.reward : disabled_auto_rewards
- loyalty.rule : code_enabled_rule_ids
- mail.template : pending_email_template_id
- mrp.production : mrp_production_ids
- payment.transaction : authorized_transaction_ids, transaction_ids
- pos.order.line : pos_order_line_ids
- product.pricelist : pricelist_id
- product.template : grid_product_tmpl_id
- project.project : project_id, project_ids
- project.task : tasks_ids
- quotation.document : available_quotation_document_ids, quotation_document_ids
- repair.order : repair_order_ids
- res.company : company_id
- res.country : tax_country_id
- res.currency : currency_id
- res.partner : partner_id, partner_invoice_id, partner_shipping_id
- res.partner.grade : assigned_grade_id
- res.users : user_id
- sale.order : duplicated_order_ids
- sale.order.coupon.points : coupon_point_ids
- sale.order.line : order_line, website_order_line
- sale.order.template : sale_order_template_id
- stock.picking : picking_ids
- stock.reference : stock_reference_ids
- stock.warehouse : warehouse_id
- uom.uom : timesheet_encode_uom_id
- utm.campaign : campaign_id
- utm.medium : medium_id
- utm.source : source_id
- website : website_id
Champs d'autres modèles qui pointent ici
- account.analytic.line : order_id
- choose.delivery.carrier : order_id
- event.booth : sale_order_id
- event.registration : sale_order_id
- event.sale.report : sale_order_id
- hr.expense : sale_order_id
- hr.expense.split : sale_order_id
- loyalty.card : order_id
- payment.transaction : sale_order_ids
- pos.order.line : sale_order_origin_id
- project.project : reinvoiced_sale_order_id, sale_order_id
- project.sale.line.employee.map : sale_order_id
- project.task : project_sale_order_id, sale_order_id
- purchase.order.line : sale_order_id
- registration.editor : sale_order_id
- repair.order : sale_order_id
- report.project.task.user : sale_order_id
- sale.advance.payment.inv : sale_order_ids
- sale.loyalty.coupon.wizard : order_id
- sale.loyalty.reward.wizard : order_id
- sale.mass.cancel.orders : sale_order_ids
- sale.order : duplicated_order_ids
- sale.order.coupon.points : order_id
- sale.order.discount : sale_order_id
- sale.order.line : order_id
- stock.lot : sale_order_ids
- stock.picking : sale_id
- stock.reference : sale_ids
- timesheets.analysis.report : order_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/sale.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","date_order","partner_id","partner_invoice_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}/sale.order/search_read",
headers=headers,
json={"domain": [], "fields": ["name","company_id","date_order","partner_id","partner_invoice_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/sale-order">sale.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.