Odoo 19.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 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
Hérite de (mixins)
portal.mixinproduct.catalog.mixinmail.threadmail.activity.mixinutm.mixinaccount.document.import.mixinpos.load.mixin

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 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_undiscountedMontant avant remisefloat
calculé
amount_unpaidMontant à 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 (pos_sale)

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

ajouté par Ventes Fidélité (sale_loyalty)

assigned_grade_idGrade assignémany2one
calculé

ajouté par Partenariat / Adhésion (partnership)

attendee_countNombre de participantsinteger
calculé

ajouté par Ventes sur événements (event_sale)

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

ajouté par Créateur de devis PDF (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 Frais de livraison (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 Ventes - Projet (sale_project)

code_enabled_rule_idsRègles déclenchées manuellementmany2many

ajouté par Ventes Fidélité (sale_loyalty)

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

related : company_id.account_price_include

completed_task_percentageCompleted Task Percentagefloat
calculé

ajouté par Ventes - Projet (sale_project)

country_codeCode payschar

related : company_id.account_fiscal_country_id.code

coupon_point_idsPoint de réductionone2many

inverse : order_id

ajouté par Ventes Fidélité (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 Créateur de devis PDF (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 Gestion des ventes et des entrepôts (sale_stock)

delivery_messageMessage de livraisonchar
lecture seule

ajouté par Frais de livraison (delivery)

delivery_setMode de livraison définiboolean
calculé

ajouté par Frais de livraison (delivery)

delivery_statusStatut de livraison

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

selection
calculé, stocké

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

ajouté par Gestion des ventes et des entrepôts (sale_stock)

disabled_auto_rewardsRécompenses automatiques désactivéesmany2many

ajouté par Bons de réduction, promotions, cartes-cadeaux et fidélité pour l'eCommerce (website_sale_loyalty)

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 Gestion des ventes et des entrepôts (sale_stock)

event_booth_countNombre de standsinteger
calculé

ajouté par Ventes de stands d'événement (event_booth_sale)

event_booth_idsStandsone2many

inverse : sale_order_id

ajouté par Ventes de stands d'événement (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 Ventes Dépenses (sale_expense)

expense_idsDépensesone2many
lecture seule

inverse : sale_order_id

ajouté par Ventes Dépenses (sale_expense)

fiscal_position_idPosition 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_countNombre de cartes-cadeauxinteger
calculé

ajouté par Ventes Fidélité (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 Matrice de vente (sale_product_matrix)

grid_product_tmpl_idGrille des modèles de produitsmany2one

ajouté par Matrice de vente (sale_product_matrix)

grid_updateMise à jour de la grilleboolean

ajouté par Matrice de vente (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é
incotermIncoterm

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 (sale_stock)

incoterm_locationLieu Incotermchar

ajouté par Gestion des ventes et des entrepôts (sale_stock)

invoice_countNombre de facturesinteger
calculé
invoice_idsFactures clientsmany2many
calculé
invoice_statusStatut de la factureselection
calculé, stocké

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

is_abandoned_cartPanier abandonnéboolean
calculé

ajouté par eCommerce (website_sale)

is_all_serviceProduit de serviceboolean
calculé

ajouté par Frais de livraison (delivery)

is_expiredA expiréboolean
calculé
is_pdf_quote_builder_availableLe générateur de devis PDF est disponibleboolean
calculé

ajouté par Créateur de devis PDF (sale_pdf_quote_builder)

is_product_milestoneIs Product Milestoneboolean
calculé

ajouté par Ventes - Projet (sale_project)

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

ajouté par Gestion des ventes et des entrepôts (sale_stock)

late_availabilityDisponibilités tardives

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

boolean
calculé

ajouté par Gestion des ventes et des entrepôts (sale_stock)

lockedVerrouillé

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

boolean
loyalty_dataDonnées de fidélitéjson
calculé

ajouté par Ventes Fidélité (sale_loyalty)

marginMargemonetary
calculé, stocké

ajouté par Marges sur les commandes de ventes (sale_margin)

margin_percentMarge (%)float
calculé, stocké

ajouté par Marges sur les commandes de ventes (sale_margin)

medium_idMédiummany2one
milestone_countMilestone Countinteger
calculé

ajouté par Ventes - Projet (sale_project)

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

ajouté par Gestion de Ventes et MRP (sale_mrp)

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

ajouté par Gestion de Ventes et MRP (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 Opportunité de devis (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 Gestion des ventes et des entrepôts (sale_stock)

picking_policyPolitique 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 : direct (Aussi vite que possible), one (Quand tous les articles sont prêts)

ajouté par Gestion des ventes et des entrepôts (sale_stock)

pickup_location_dataDonnées sur le lieu de collectejson

ajouté par Frais de livraison (delivery)

pos_order_countNombre de commandes du PdVinteger
lecture seulecalculé

ajouté par PdV - Ventes (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 PdV - Ventes (pos_sale)

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

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

float
calculé, stocké
pricelist_idListe 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_idCompte de projetmany2one

related : project_id.account_id

ajouté par Ventes - Projet (sale_project)

project_countNumber of Projectsinteger
calculé

ajouté par Ventes - Projet (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 Ventes - Projet (sale_project)

project_idsProjetsmany2many
calculé

ajouté par Ventes - Projet (sale_project)

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

ajouté par Ventes & Achats (sale_purchase)

quotation_document_idsEn-têtes/Pieds de pagemany2many

ajouté par Créateur de devis PDF (sale_pdf_quote_builder)

recompute_delivery_priceLes frais de livraison doivent être recalculésboolean

ajouté par Frais de livraison (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 Matrice de vente (sale_product_matrix)

require_paymentPaiement en ligne

Demander un paiement en ligne au client pour confirmer la commande.

boolean
calculé, stocké
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 Ventes Fidélité (sale_loyalty)

sale_order_template_idModèle de devismany2one
calculé, stocké

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 Frais de livraison (delivery)

shop_warningAvertissementchar

ajouté par eCommerce (website_sale)

show_create_project_buttonShow Create Project Buttonboolean
calculé

ajouté par Ventes - Projet (sale_project)

show_hours_recorded_buttonShow Hours Recorded Buttonboolean
calculé

ajouté par Feuille de temps des ventes (sale_timesheet)

show_json_popoverA un transfert en retardboolean
calculé

ajouté par Gestion des ventes et des entrepôts (sale_stock)

show_project_buttonShow Project Buttonboolean
calculé

ajouté par Ventes - Projet (sale_project)

show_update_fposA changé de position fiscaleboolean
show_update_pricelistA une modification de liste de prixboolean
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 Gestion des ventes et des entrepôts (sale_stock)

tag_idsÉtiquettesmany2many
tasks_countTâchesinteger
calculé

ajouté par Ventes - Projet (sale_project)

tasks_idsTasks associated with this salemany2many
calculé

ajouté par Ventes - Projet (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 totalesbinary
calculé
team_idÉquipe commercialemany2one
calculé, stocké
terms_typeTerms Typeselection

related : company_id.terms_type

timesheet_countTimesheet activitiesfloat
calculé

ajouté par Feuille de temps des ventes (sale_timesheet)

timesheet_encode_uom_idTimesheet Encode Uommany2one

related : company_id.timesheet_encode_uom_id

ajouté par Feuille de temps des ventes (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 Feuille de temps des ventes (sale_timesheet)

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 Ventes - Projet (sale_project)

warehouse_idEntrepôtmany2one
calculé, stocké

ajouté par Gestion des ventes et des entrepôts (sale_stock)

website_idSite Web

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_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

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

website_message_idsMessages du site web

Historique de communication du site web

one2many

inverse : res_id

hérité de mail.thread

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 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
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}'
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","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

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.