Odoo 20.0 Community · Persistant

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 188 champs, dont 154 déclarés directement sur le modèle ; 35 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
sale.order
Libellé
Commande client
Type
Persistant (models.Model)
Table SQL
sale_order
Module d'origine
Ventes (sale)
Étendu par
sale_management, sale_project, crm_sale_project, delivery, event_sale, event_booth_sale, sale_crm, mass_mailing_sale, sale_stock, stock_delivery, repair, sale_purchase, sale_purchase_stock, stock_dropshipping, partnership, pos_sale, sale_margin, pos_sale_stock, sale_mrp, 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_mrp
Tri par défaut (_order)
date_order desc, id desc
Hérite de (mixins)
account.document.import.mixinmail.activity.mixinmail.thread.subject.suggestedportal.mixinproduct.catalog.mixinutm.mixinpos.load.mixinwebsite.checkout.alert.mixin

Champs du modèle

154 champs propres, 29 hérités des mixins et 5 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.

188 champs affichés sur 188

Nom techniqueLibelléTypeDétails
amount_deliveryCoût de livraison

Toutes taxes comprises ou hors taxes en fonction de la configuration du site web.

monetary
calculé

ajouté par eCommerce (website_sale)

amount_invoicedDéjà facturémonetary
calculé
amount_paidMontant 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_taxTaxesmonetary
calculé, stocké
amount_to_invoiceSolde non facturémonetary
calculé
amount_totalTotalmonetary
calculé, stocké
amount_unpaidAmount Remaining

Amount left to pay to avoid double payment or double invoicing.

monetary
calculé, stocké
amount_untaxedMontant hors taxesmonetary
calculé, stocké
analytic_account_idCompte analytiquemany2one
applied_coupon_idsBons de réduction appliqués manuellementmany2many

ajouté par Sale Loyalty (sale_loyalty)

assigned_grade_idGrade assignémany2one
calculé

ajouté par Partnership / Membership (partnership)

assigned_website_idSite Webmany2one
calculé, stocké

ajouté par eCommerce (website_sale)

attendee_countNombre de participantsinteger
calculé

ajouté par Events Sales (event_sale)

authorized_transaction_idsTransactions autoriséesmany2many
calculé
available_quotation_document_idsDocuments de devis disponiblesmany2many
calculé

ajouté par Sales PDF Quotation Builder (sale_pdf_quote_builder)

campaign_idCampagnemany2one
carrier_idMode de livraison

Complétez ce champ si vous envisagez de facturer l'expédition en fonction du transfert.

many2one

ajouté par Delivery Costs (delivery)

cart_quantityQuantité du panierinteger
calculé

ajouté par eCommerce (website_sale)

cart_recovery_email_sentE-mail de récupération du panier déjà envoyéboolean

ajouté par eCommerce (website_sale)

client_order_refRéférence clientchar
closed_task_countClosed Task Countinteger
calculé

ajouté par Sales - Project (sale_project)

code_enabled_rule_idsRègles déclenchées manuellementmany2many

ajouté par Sale Loyalty (sale_loyalty)

commitment_dateLivraison promise

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_idSociétémany2one
requis
company_price_includeCompany Price Includeselection

related : company_id.account_price_include

completed_task_percentageCompleted Task Percentagefloat
calculé

ajouté par Sales - Project (sale_project)

country_codeCode payschar

related : company_id.account_fiscal_country_id.code

coupon_point_idsPoint de réductionone2many

inverse : order_id

ajouté par Sale Loyalty (sale_loyalty)

create_dateDate de créationdatetime
lecture seule
currency_idDevisemany2one
calculé, stocké
currency_rateTaux de changefloat
calculé, stocké
customizable_pdf_form_fieldsChamps de formulaire PDF personnalisablesjson

ajouté par Sales PDF Quotation Builder (sale_pdf_quote_builder)

date_orderDate de la commande

Creation date of draft/sent orders, Confirmation date of confirmed orders.

datetime
requis
delivery_countBons de livraisoninteger
calculé

ajouté par Sales and Warehouse Management (sale_stock)

delivery_dateDate de livraisondatetime
calculé
delivery_messageMessage de livraisonchar
lecture seule

ajouté par Delivery Costs (delivery)

delivery_setMode de livraison définiboolean
calculé

ajouté par Delivery Costs (delivery)

delivery_statusStatut de livraison

Blue: Not Delivered/Started Orange: Partially Delivered Green: Fully Delivered

selection
calculé, stocké

Valeurs : pending (Non livré), started (Démarré), partial (Partiellement livré), full (Entièrement livré)

delivery_typeDelivery Typeselection

related : carrier_id.delivery_type

ajouté par Click & Collect (website_sale_collect)

disabled_auto_rewardsRécompenses automatiques désactivéesmany2many

ajouté par Coupons, Promotions, Gift Card and Loyalty for eCommerce (website_sale_loyalty)

document_tax_modeMode de taxe du documentselection
requiscalculé, stocké

Valeurs : tax_excluded (Hors taxes), tax_included (Toutes taxes comprises)

dropship_picking_countNombre de livraisons en dropshippinginteger
calculé

ajouté par Drop Shipping (stock_dropshipping)

duplicated_order_idsCommande dupliquéemany2many
calculé
effective_dateDate effective

Date d'exécution du premier ordre de livraison.

datetime
calculé, stocké

ajouté par Sales and Warehouse Management (sale_stock)

event_booth_countNombre de standsinteger
calculé

ajouté par Events Booths Sales (event_booth_sale)

event_booth_idsStandsone2many

inverse : sale_order_id

ajouté par Events Booths Sales (event_booth_sale)

expected_dateDate 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épensesinteger
calculé

ajouté par Sales Expense (sale_expense)

expense_idsDépensesone2many
lecture seule

inverse : sale_order_id

ajouté par Sales Expense (sale_expense)

extra_total_fieldsExtra Total Fieldsjson
calculé
fiscal_position_idPosition fiscale

Les positions fiscales sont utilisées pour adapter les taxes et les comptes à des clients particuliers ou à des commandes clients/factures. La valeur par défaut provient du client.

many2one
calculé, stocké
gift_card_countNombre de cartes-cadeauxinteger
calculé

ajouté par Sale Loyalty (sale_loyalty)

gridStockage 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 Sale Matrix (sale_product_matrix)

grid_product_tmpl_idGrille des modèles de produitsmany2one

ajouté par Sale Matrix (sale_product_matrix)

grid_updateMise à jour de la grilleboolean

ajouté par Sale Matrix (sale_product_matrix)

has_active_pricelistA une liste de prix activeboolean
calculé
has_archived_productsContient des produits archivésboolean
calculé
has_authorized_transaction_idsA des transactions autoriséesboolean
calculé
has_overagesHas Overagesboolean
calculé
incotermIncoterm

Les Incoterms sont une série de termes commerciaux prédéfinis utilisés dans les transactions internationales.

many2one
calculé, stocké
incoterm_locationLieu Incotermchar
calculé, stocké
invoice_countNombre de facturesinteger
calculé
invoice_idsFactures clientsmany2many
calculé
invoice_overagesInvoice Overagesboolean
invoice_statusStatut de la factureselection
calculé, stocké

Valeurs : upselling (Opportunité de vente incitative), invoiced (Entièrement facturé), to invoice (À facturer), no (Rien à facturer)

invoicing_closedClôturé(e) manuellement pour la facturation

Si activé, la commande est considérée comme entièrement facturée, indépendamment des lignes.

boolean
is_abandoned_cartPanier abandonnéboolean
calculé

ajouté par eCommerce (website_sale)

is_all_serviceProduit de serviceboolean
calculé

ajouté par Delivery Costs (delivery)

is_expiredA expiréboolean
calculé
is_linked_to_expense_with_attachmentIs Linked To Expense With Attachmentboolean
calculé

ajouté par Sales Expense (sale_expense)

is_pdf_quote_builder_availableLe générateur de devis PDF est disponibleboolean
calculé

ajouté par Sales PDF Quotation Builder (sale_pdf_quote_builder)

is_pickup_requiredIs Pickup Requiredboolean

related : carrier_id.support_pickup_locations

ajouté par Disponibilité des produits (website_sale_stock)

is_product_milestoneIs Product Milestoneboolean
calculé

ajouté par Sales - Project (sale_project)

is_rating_email_sentE-mail de demande d'avis déjà envoyéboolean

ajouté par eCommerce (website_sale)

is_unfulfilledUnfulfilled Ordersboolean
journal_idJournal

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_popoverDonnées JSON pour le widget popoverchar
calculé

ajouté par Sales and Warehouse Management (sale_stock)

late_availabilityDisponibilités tardives

Vrai si un transfert lié est en retard de disponibilité

boolean
calculé

ajouté par Sales and Warehouse Management (sale_stock)

lockedVerrouillé

Les commandes verrouillées ne peuvent plus être modifiées.

boolean
marginMargemonetary
calculé, stocké

ajouté par Margins in Sales Orders (sale_margin)

margin_percentMarge (%)float
calculé, stocké

ajouté par Margins in Sales Orders (sale_margin)

medium_idMédiummany2one
milestone_countMilestone Countinteger
calculé

ajouté par Sales - Project (sale_project)

mrp_production_countNombre d'OF générésinteger
calculé

ajouté par Sales and MRP Management (sale_mrp)

mrp_production_idsOrdres de fabrication associés à cette commande client.many2many
calculé

ajouté par Sales and MRP Management (sale_mrp)

nameRéférence commandechar
requis
noteConditions généraleshtml
calculé, stocké
only_servicesServices seulementboolean
calculé

ajouté par eCommerce (website_sale)

opportunity_idOpportunitémany2one

ajouté par Opportunity to Quotation (sale_crm)

order_lineLignes de commandeone2many

inverse : order_id

originDocument d'origine

Référence du document qui a généré cette demande de commande client

char
partner_credit_warningAvertissement du crédit partenairetext
calculé
partner_idClientmany2one
requis
partner_invoice_idAdresse de facturationmany2one
requiscalculé, stocké
partner_shipping_idAdresse de livraisonmany2one
requiscalculé, stocké
payment_term_idConditions de paiementmany2one
calculé, stocké
pending_email_template_idModèle d'e-mail en attentemany2one
lecture seule
picking_idsTransfertsone2many

inverse : sale_id

ajouté par Sales and Warehouse Management (sale_stock)

picking_policyPolitique d'expédition

Indique si les marchandises doivent être livrées partiellement ou en une seule fois

selection
requis

Valeurs : direct (Dès que possible, avec des reliquats), one (Quand tous les articles sont prêts)

ajouté par Sales and Warehouse Management (sale_stock)

pos_order_countNombre de commandes du PdVinteger
lecture seulecalculé

ajouté par POS - Sales (pos_sale)

pos_order_line_idsLignes de commandes transférées vers le Point de Venteone2many
lecture seule

inverse : sale_order_origin_id

ajouté par POS - Sales (pos_sale)

preferred_payment_method_line_idMode de paiementmany2one
calculé, stocké
prepayment_amountMontant d'acompte

The amount that must be paid by the customer to confirm the order.

monetary
calculé
prepayment_percentPrepayment

Le pourcentage du montant qui doit être payé par le client pour confirmer la commande.

float
calculé, stocké
pricelist_idListe de prix

If you change the pricelist, the prices of all order lines will be updated accordingly.

many2one
calculé, stocké
project_account_idCompte de projetmany2one

related : project_id.account_id

ajouté par Sales - Project (sale_project)

project_countNumber of Projectsinteger
calculé

ajouté par Sales - Project (sale_project)

project_idProjet

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 Sales - Project (sale_project)

project_idsProjetsmany2many
calculé

ajouté par Sales - Project (sale_project)

project_requiredProject Requiredboolean
calculé

ajouté par Sales - Project (sale_project)

purchase_order_countNombre de bons de commande générésinteger
calculé

ajouté par Sale Purchase (sale_purchase)

quotation_document_idsEn-têtes/Pieds de pagemany2many

ajouté par Sales PDF Quotation Builder (sale_pdf_quote_builder)

recompute_delivery_priceLes frais de livraison doivent être recalculésboolean

ajouté par Delivery Costs (delivery)

referenceRéf. paiement

La communication de paiement de ce bon de commande.

char
repair_countOrdre(s) de réparationinteger
calculé

ajouté par Réparations (repair)

repair_order_idsOrdre de réparationone2many

inverse : sale_order_id

ajouté par Réparations (repair)

report_gridsImprimer la grille des variantesboolean

ajouté par Sale Matrix (sale_product_matrix)

require_signatureSignature en ligne

Demander une signature en ligne au client pour confirmer la commande.

boolean
calculé, stocké
reward_amountMontant de la récompensefloat
calculé

ajouté par Sale Loyalty (sale_loyalty)

sale_order_template_idModèlemany2one

ajouté par Ventes (sale_management)

sale_warning_textAvertissement vente

Avertissement interne pour le partenaire ou les produits défini par l’utilisateur.

text
calculé
shipping_weightPoids d'expéditionfloat
calculé, stocké

ajouté par Delivery Costs (delivery)

show_create_project_buttonShow Create Project Buttonboolean
calculé

ajouté par Sales - Project (sale_project)

show_hours_recorded_buttonShow Hours Recorded Buttonboolean
calculé

ajouté par Sales Timesheet (sale_timesheet)

show_json_popoverA un transfert en retardboolean
calculé

ajouté par Sales and Warehouse Management (sale_stock)

show_project_buttonShow Project Buttonboolean
calculé

ajouté par Sales - Project (sale_project)

show_ship_buttonShow Ship Buttonboolean
calculé
show_sol_numbersShow Sol Numbersboolean

related : company_id.show_sol_numbers

signatureSignatureimage
signed_bySigné parchar
signed_onSigné ledatetime
source_idSourcemany2one
stateStatutselection
lecture seule

Valeurs : draft (Devis), sent (Envoyé), sale (Commande client), cancel (Annulé)

stock_reference_idsRéférencesmany2many

ajouté par Sales and Warehouse Management (sale_stock)

tag_idsÉtiquettesmany2many
tasks_countTâchesinteger
calculé

ajouté par Sales - Project (sale_project)

tasks_idsTasks associated with this salemany2many
calculé

ajouté par Sales - Project (sale_project)

tax_calculation_rounding_methodMéthode d'arrondi pour le calcul de la taxeselection

related : company_id.tax_calculation_rounding_method

tax_country_idPays de la taxemany2one
calculé
tax_totalsTaxes totalesjson
calculé
team_idÉquipe commercialemany2one
calculé, stocké
terms_typeTerms Typeselection

related : company_id.terms_type

timesheet_countTimesheet activitiesfloat
calculé

ajouté par Sales Timesheet (sale_timesheet)

timesheet_encode_uom_idTimesheet Encode Uommany2one

related : company_id.timesheet_encode_uom_id

ajouté par Sales Timesheet (sale_timesheet)

timesheet_total_durationDuré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 Sales Timesheet (sale_timesheet)

transaction_countNombre de transactionsinteger
calculé
transaction_idsTransactionsmany2many
lecture seule
type_nameNom du typechar
calculé
user_idVendeurmany2one
calculé, stocké
validity_dateExpiration

Validity of the quotation. After this date, you will no longer be able to sign and pay it.

date
calculé, stocké
visible_projectDisplay projectboolean
lecture seulecalculé

ajouté par Sales - Project (sale_project)

warehouse_idEntrepôtmany2one
calculé, stocké

ajouté par Sales and Warehouse Management (sale_stock)

website_ideCommerce Website

Site web via lequel cette commande a été placée pour les commandes eCommerce.

many2one
lecture seule

ajouté par eCommerce (website_sale)

website_order_lineLes lignes de commandes sont affichées sur le site webone2many
calculé

ajouté par eCommerce (website_sale)

access_tokenJeton de sécuritéchar

hérité de portal.mixin

access_urlURl d'accès au portail

URl du portail client

char
calculé

hérité de portal.mixin

access_warningAvertissement d'accèstext
calculé

hérité de portal.mixin

activity_calendar_event_idActivité suivante de l'événement du calendriermany2one
calculé

hérité de mail.activity.mixin

activity_date_deadlineDate limite de l'activité à venirdate
lecture seulecalculé

hérité de mail.activity.mixin

activity_exception_decorationIndicateur d’exception d’activité

Type d'activité d'exception enregistrée.

selection
calculé

Valeurs : warning (Alerte), danger (Erreur)

hérité de mail.activity.mixin

activity_exception_iconIcône

Icône pour indiquer une activité d'exception.

char
calculé

hérité de mail.activity.mixin

activity_idsActivitésone2many

inverse : res_id

hérité de mail.activity.mixin

activity_plans_idsPlans d'activitémany2many
calculé

hérité de mail.activity.mixin

activity_stateStatut de l'activité

Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities.

selection
calculé

Valeurs : overdue (En retard), today (Aujourd'hui), planned (Planifié)

hérité de mail.activity.mixin

activity_summaryRésumé de l'activité suivantechar

related : activity_ids.summary

hérité de mail.activity.mixin

activity_type_iconIcône de type d'activitéchar

related : activity_ids.icon

hérité de mail.activity.mixin

activity_type_idType d'activités à venirmany2one

related : activity_ids.activity_type_id

hérité de mail.activity.mixin

activity_user_idUtilisateur responsablemany2one
lecture seulecalculé

hérité de mail.activity.mixin

alertsAlertesjson

hérité de website.checkout.alert.mixin

has_messageA un messageboolean
calculé

hérité de mail.thread

message_attachment_countNombre de pièces jointesinteger
calculé

hérité de mail.thread

message_follower_idsAbonnésone2many

inverse : res_id

hérité de mail.thread

message_has_errorErreur d'envoi du message

Si coché, certains messages ont une erreur de livraison.

boolean
calculé

hérité de mail.thread

message_has_error_counterNombre d'erreurs

Nombre de messages avec des erreurs d'envoi

integer
calculé

hérité de mail.thread

message_has_sms_errorErreur d'envoi SMS

Si coché, certains messages ont une erreur de livraison.

boolean
calculé

hérité de mail.thread

message_idsMessagesone2many

inverse : res_id

hérité de mail.thread

message_is_followerEst un abonnéboolean
calculé

hérité de mail.thread

message_needactionNécessite une action

Si coché, de nouveaux messages demandent votre attention.

boolean
calculé

hérité de mail.thread

message_needaction_counterNombre d'actions

Nombre de messages nécessitant une action

integer
calculé

hérité de mail.thread

message_partner_idsAbonné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Évaluationsone2many

inverse : res_id

hérité de mail.thread

utm_referenceRéférence UTMreference

hérité de utm.mixin

create_uidCréé parmany2one
lecture seuleautomatique
display_nameNom affichéchar
lecture seulecalculéautomatique
idIDinteger
lecture seuleautomatique
write_dateDernière mise à jour ledatetime
lecture seuleautomatique
write_uidDernière mise à jour parmany2one
lecture seuleautomatique

Relations

Modèles liés depuis ce modèle

Champs d'autres modèles qui pointent ici

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
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","document_tax_mode","partner_id"],"limit":5}'
Python (requests)
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","document_tax_mode","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/sale-order">sale.order (Odoo 20.0)</a>

Sources

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.