Odoo 19.0 Community · Persistent

sale.order: fields, relations and API

The sale.order model ("Sales Order") is a persistent model declared by the Sales module, then extended by 36 other modules. It exposes 175 fields, 143 of them declared directly on the model; 31 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.

Model identity

Technical name
sale.order
Label
Sales Order
Type
Persistent (models.Model)
SQL table
sale_order
Origin module
Sales (sale)
Extended by
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
Default order (_order)
date_order desc, id desc
Inherits from (mixins)
portal.mixinproduct.catalog.mixinmail.threadmail.activity.mixinutm.mixinaccount.document.import.mixinpos.load.mixin

Model fields

143 own fields, 27 inherited from mixins and 5 automatic ORM fields. Click a name to get a direct link to that field.

175 of 175 fields shown

Technical nameLabelTypeDetails
amount_deliveryDelivery Amount

Tax included or excluded depending on the website configuration.

monetary
computed

added by eCommerce (website_sale)

amount_invoicedAlready invoicedmonetary
computed
amount_paidPayment Transactions Amount

Sum of transactions made in through the online payment form that are in the state 'done' or 'authorized' and linked to this order.

float
computed
amount_taxTaxesmonetary
computed, stored
amount_to_invoiceUn-invoiced Balancemonetary
computed
amount_totalTotalmonetary
computed, stored
amount_undiscountedAmount Before Discountfloat
computed
amount_unpaidAmount To Pay In POS

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

monetary
computed, stored

added by POS - Sales (pos_sale)

amount_untaxedUntaxed Amountmonetary
computed, stored
applied_coupon_idsManually Applied Couponsmany2many

added by Sale Loyalty (sale_loyalty)

assigned_grade_idAssigned Grademany2one
computed

added by Partnership / Membership (partnership)

attendee_countAttendee Countinteger
computed

added by Events Sales (event_sale)

authorized_transaction_idsAuthorized Transactionsmany2many
computed
available_quotation_document_idsAvailable Quotation Documentsmany2many
computed

added by Sales PDF Quotation Builder (sale_pdf_quote_builder)

campaign_idCampaignmany2one
carrier_idDelivery Method

Fill this field if you plan to invoice the shipping based on picking.

many2one

added by Delivery Costs (delivery)

cart_quantityCart Quantityinteger
computed

added by eCommerce (website_sale)

cart_recovery_email_sentCart recovery email already sentboolean

added by eCommerce (website_sale)

client_order_refCustomer Referencechar
closed_task_countClosed Task Countinteger
computed

added by Sales - Project (sale_project)

code_enabled_rule_idsManually Triggered Rulesmany2many

added by Sale Loyalty (sale_loyalty)

commitment_dateDelivery Date

This is the delivery date promised to the customer. If set, the delivery order will be scheduled based on this date rather than product lead times.

datetime
company_idCompanymany2one
required
company_price_includeCompany Price Includeselection

related: company_id.account_price_include

completed_task_percentageCompleted Task Percentagefloat
computed

added by Sales - Project (sale_project)

country_codeCountry codechar

related: company_id.account_fiscal_country_id.code

coupon_point_idsCoupon Pointone2many

inverse: order_id

added by Sale Loyalty (sale_loyalty)

create_dateCreation Datedatetime
read-only
currency_idCurrencymany2one
computed, stored
currency_rateCurrency Ratefloat
computed, stored
customizable_pdf_form_fieldsCustomizable PDF Form Fieldsjson

added by Sales PDF Quotation Builder (sale_pdf_quote_builder)

date_orderOrder Date

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

datetime
required
delivery_countDelivery Ordersinteger
computed

added by Sales and Warehouse Management (sale_stock)

delivery_messageDelivery Messagechar
read-only

added by Delivery Costs (delivery)

delivery_setDelivery Setboolean
computed

added by Delivery Costs (delivery)

delivery_statusDelivery Status

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

selection
computed, stored

Values: pending (Not Delivered), started (Started), partial (Partially Delivered), full (Fully Delivered)

added by Sales and Warehouse Management (sale_stock)

disabled_auto_rewardsDisabled Auto Rewardsmany2many

added by Coupons, Promotions, Gift Card and Loyalty for eCommerce (website_sale_loyalty)

dropship_picking_countDropship Countinteger
computed

added by Drop Shipping (stock_dropshipping)

duplicated_order_idsDuplicated Ordermany2many
computed
effective_dateEffective Date

Completion date of the first delivery order.

datetime
computed, stored

added by Sales and Warehouse Management (sale_stock)

event_booth_countBooth Countinteger
computed

added by Events Booths Sales (event_booth_sale)

event_booth_idsBoothsone2many

inverse: sale_order_id

added by Events Booths Sales (event_booth_sale)

expected_dateExpected Date

Delivery date you can promise to the customer, computed from the minimum lead time of the order lines in case of Service products. In case of shipping, the shipping policy of the order will be taken into account to either use the minimum or maximum lead time of the order lines.

datetime
computed
expense_count# of Expensesinteger
computed

added by Sales Expense (sale_expense)

expense_idsExpensesone2many
read-only

inverse: sale_order_id

added by Sales Expense (sale_expense)

fiscal_position_idFiscal Position

Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices.The default value comes from the customer.

many2one
computed, stored
gift_card_countGift Card Countinteger
computed

added by Sale Loyalty (sale_loyalty)

gridMatrix local storage

Technical local storage of grid. If grid_update, will be loaded on the SO. If not, represents the matrix to open.

char

added by Sale Matrix (sale_product_matrix)

grid_product_tmpl_idGrid Product Tmplmany2one

added by Sale Matrix (sale_product_matrix)

grid_updateGrid Updateboolean

added by Sale Matrix (sale_product_matrix)

has_active_pricelistHas Active Pricelistboolean
computed
has_archived_productsHas Archived Productsboolean
computed
has_authorized_transaction_idsHas Authorized Transactionsboolean
computed
incotermIncoterm

International Commercial Terms are a series of predefined commercial terms used in international transactions.

many2one

added by Sales and Warehouse Management (sale_stock)

incoterm_locationIncoterm Locationchar

added by Sales and Warehouse Management (sale_stock)

invoice_countInvoice Countinteger
computed
invoice_idsInvoicesmany2many
computed
invoice_statusInvoice Statusselection
computed, stored

Values: upselling (Upselling Opportunity), invoiced (Fully Invoiced), to invoice (To Invoice), no (Nothing to Invoice)

is_abandoned_cartAbandoned Cartboolean
computed

added by eCommerce (website_sale)

is_all_serviceService Productboolean
computed

added by Delivery Costs (delivery)

is_expiredIs Expiredboolean
computed
is_pdf_quote_builder_availableIs Pdf Quote Builder Availableboolean
computed

added by Sales PDF Quotation Builder (sale_pdf_quote_builder)

is_product_milestoneIs Product Milestoneboolean
computed

added by Sales - Project (sale_project)

journal_idInvoicing Journal

If set, the SO will invoice in this journal; otherwise the sales journal with the lowest sequence is used.

many2one
computed, stored
json_popoverJSON data for the popover widgetchar
computed

added by Sales and Warehouse Management (sale_stock)

late_availabilityLate Availability

True if any related picking has late availability

boolean
computed

added by Sales and Warehouse Management (sale_stock)

lockedLocked

Locked orders cannot be modified.

boolean
loyalty_dataLoyalty Datajson
computed

added by Sale Loyalty (sale_loyalty)

marginMarginmonetary
computed, stored

added by Margins in Sales Orders (sale_margin)

margin_percentMargin (%)float
computed, stored

added by Margins in Sales Orders (sale_margin)

medium_idMediummany2one
milestone_countMilestone Countinteger
computed

added by Sales - Project (sale_project)

mrp_production_countCount of MO generatedinteger
computed

added by Sales and MRP Management (sale_mrp)

mrp_production_idsManufacturing orders associated with this sales order.many2many
computed

added by Sales and MRP Management (sale_mrp)

nameOrder Referencechar
required
noteTerms and conditionshtml
computed, stored
only_servicesOnly Servicesboolean
computed

added by eCommerce (website_sale)

opportunity_idOpportunitymany2one

added by Opportunity to Quotation (sale_crm)

order_lineOrder Linesone2many

inverse: order_id

originSource Document

Reference of the document that generated this sales order request

char
partner_credit_warningPartner Credit Warningtext
computed
partner_idCustomermany2one
required
partner_invoice_idInvoice Addressmany2one
requiredcomputed, stored
partner_shipping_idDelivery Addressmany2one
requiredcomputed, stored
payment_term_idPayment Termsmany2one
computed, stored
pending_email_template_idPending Email Templatemany2one
read-only
picking_idsTransfersone2many

inverse: sale_id

added by Sales and Warehouse Management (sale_stock)

picking_policyShipping Policy

If you deliver all products at once, the delivery order will be scheduled based on the greatest product lead time. Otherwise, it will be based on the shortest.

selection
required

Values: direct (As soon as possible), one (When all products are ready)

added by Sales and Warehouse Management (sale_stock)

pickup_location_dataPickup Location Datajson

added by Delivery Costs (delivery)

pos_order_countPos Order Countinteger
read-onlycomputed

added by POS - Sales (pos_sale)

pos_order_line_idsOrder lines Transfered to Point of Saleone2many
read-only

inverse: sale_order_origin_id

added by POS - Sales (pos_sale)

preferred_payment_method_line_idPayment Methodmany2one
computed, stored
prepayment_percentPrepayment percentage

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

float
computed, stored
pricelist_idPricelist

If you change the pricelist, only newly added lines will be affected.

many2one
computed, stored
project_account_idProject Accountmany2one

related: project_id.account_id

added by Sales - Project (sale_project)

project_countNumber of Projectsinteger
computed

added by Sales - Project (sale_project)

project_idProject

A task will be created for the project upon sales order confirmation. The analytic distribution of this project will also serve as a reference for newly created sales order items.

many2one

added by Sales - Project (sale_project)

project_idsProjectsmany2many
computed

added by Sales - Project (sale_project)

purchase_order_countNumber of Purchase Order Generatedinteger
computed

added by Sale Purchase (sale_purchase)

quotation_document_idsHeaders/Footersmany2many

added by Sales PDF Quotation Builder (sale_pdf_quote_builder)

recompute_delivery_priceDelivery cost should be recomputedboolean

added by Delivery Costs (delivery)

referencePayment Ref.

The payment communication of this sale order.

char
repair_countRepair Order(s)integer
computed

added by Repairs (repair)

repair_order_idsRepair Orderone2many

inverse: sale_order_id

added by Repairs (repair)

report_gridsPrint Variant Gridsboolean

added by Sale Matrix (sale_product_matrix)

require_paymentOnline payment

Request a online payment from the customer to confirm the order.

boolean
computed, stored
require_signatureOnline signature

Request a online signature from the customer to confirm the order.

boolean
computed, stored
reward_amountReward Amountfloat
computed

added by Sale Loyalty (sale_loyalty)

sale_order_template_idQuotation Templatemany2one
computed, stored

added by Sales (sale_management)

sale_warning_textSale Warning

Internal warning for the partner or the products as set by the user.

text
computed
shipping_weightShipping Weightfloat
computed, stored

added by Delivery Costs (delivery)

shop_warningWarningchar

added by eCommerce (website_sale)

show_create_project_buttonShow Create Project Buttonboolean
computed

added by Sales - Project (sale_project)

show_hours_recorded_buttonShow Hours Recorded Buttonboolean
computed

added by Sales Timesheet (sale_timesheet)

show_json_popoverHas late pickingboolean
computed

added by Sales and Warehouse Management (sale_stock)

show_project_buttonShow Project Buttonboolean
computed

added by Sales - Project (sale_project)

show_update_fposHas Fiscal Position Changedboolean
show_update_pricelistHas Pricelist Changedboolean
signatureSignatureimage
signed_bySigned Bychar
signed_onSigned Ondatetime
source_idSourcemany2one
stateStatusselection
read-only

Values: draft (Quotation), sent (Quotation Sent), sale (Sales Order), cancel (Cancelled)

stock_reference_idsReferencesmany2many

added by Sales and Warehouse Management (sale_stock)

tag_idsTagsmany2many
tasks_countTasksinteger
computed

added by Sales - Project (sale_project)

tasks_idsTasks associated with this salemany2many
computed

added by Sales - Project (sale_project)

tax_calculation_rounding_methodTax Calculation Rounding Methodselection

related: company_id.tax_calculation_rounding_method

tax_country_idTax Countrymany2one
computed
tax_totalsTax Totalsbinary
computed
team_idSales Teammany2one
computed, stored
terms_typeTerms Typeselection

related: company_id.terms_type

timesheet_countTimesheet activitiesfloat
computed

added by Sales Timesheet (sale_timesheet)

timesheet_encode_uom_idTimesheet Encode Uommany2one

related: company_id.timesheet_encode_uom_id

added by Sales Timesheet (sale_timesheet)

timesheet_total_durationTimesheet Total Duration

Total recorded duration, expressed in the encoding UoM, and rounded to the unit

integer
computed

added by Sales Timesheet (sale_timesheet)

transaction_idsTransactionsmany2many
read-only
type_nameType Namechar
computed
user_idSalespersonmany2one
computed, stored
validity_dateExpiration

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

date
computed, stored
visible_projectDisplay projectboolean
read-onlycomputed

added by Sales - Project (sale_project)

warehouse_idWarehousemany2one
computed, stored

added by Sales and Warehouse Management (sale_stock)

website_idWebsite

Website through which this order was placed for eCommerce orders.

many2one
read-only

added by eCommerce (website_sale)

website_order_lineOrder Lines displayed on Websiteone2many
computed

added by eCommerce (website_sale)

access_tokenSecurity Tokenchar

inherited from portal.mixin

access_urlPortal Access URL

Customer Portal URL

char
computed

inherited from portal.mixin

access_warningAccess warningtext
computed

inherited from portal.mixin

activity_calendar_event_idNext Activity Calendar Eventmany2one
computed

inherited from mail.activity.mixin

activity_date_deadlineNext Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

activity_exception_decorationActivity Exception Decoration

Type of the exception activity on record.

selection
computed

Values: warning (Alert), danger (Error)

inherited from mail.activity.mixin

activity_exception_iconIcon

Icon to indicate an exception activity.

char
computed

inherited from mail.activity.mixin

activity_idsActivitiesone2many

inverse: res_id

inherited from mail.activity.mixin

activity_stateActivity State

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

selection
computed

Values: overdue (Overdue), today (Today), planned (Planned)

inherited from mail.activity.mixin

activity_summaryNext Activity Summarychar

related: activity_ids.summary

inherited from mail.activity.mixin

activity_type_iconActivity Type Iconchar

related: activity_ids.icon

inherited from mail.activity.mixin

activity_type_idNext Activity Typemany2one

related: activity_ids.activity_type_id

inherited from mail.activity.mixin

activity_user_idResponsible Usermany2one
read-onlycomputed

inherited from mail.activity.mixin

has_messageHas Messageboolean
computed

inherited from mail.thread

message_attachment_countAttachment Countinteger
computed

inherited from mail.thread

message_follower_idsFollowersone2many

inverse: res_id

inherited from mail.thread

message_has_errorMessage Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_has_error_counterNumber of errors

Number of messages with delivery error

integer
computed

inherited from mail.thread

message_has_sms_errorSMS Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_idsMessagesone2many

inverse: res_id

inherited from mail.thread

message_is_followerIs Followerboolean
computed

inherited from mail.thread

message_needactionAction Needed

If checked, new messages require your attention.

boolean
computed

inherited from mail.thread

message_needaction_counterNumber of Actions

Number of messages requiring action

integer
computed

inherited from mail.thread

message_partner_idsFollowers (Partners)many2many
computed

inherited from mail.thread

my_activity_date_deadlineMy Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

website_message_idsWebsite Messages

Website communication history

one2many

inverse: res_id

inherited from mail.thread

create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

Reading this model through the API

Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.

curl
curl -X POST "https://your-instance.odoo.com/json/2/sale.order/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -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://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}

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())
  • External API access requires Odoo's Custom plan.
  • XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
  • The access rights and record rules of the key's user apply.

Cite this tool

Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.

<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/sale-order">sale.order (Odoo 19.0)</a>

Sources

Data verified on September 23, 2026 · Odoo 19.0 Community

Have an Odoo project, or want to put your ERP to work with AI? Let's talk

Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.