Odoo 20.0 Community · Persistent

sale.report: fields, relations and API

The sale.report model ("Sales Analysis Report") is a persistent model declared by the Sales module, then extended by 7 other modules. It exposes 57 fields, 51 of them declared directly on the model. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 20 JSON-2 API call.

Model identity

Technical name
sale.report
Label
Sales Analysis Report
Type
Persistent (models.Model)
SQL table
None (no table)
Origin module
Sales (sale)
Extended by
sale_project, sale_stock, pos_sale, sale_margin, pos_sale_margin, pos_sale_stock, website_sale
Default order (_order)
date desc
Display field (_rec_name)
date

Model fields

51 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.

57 of 57 fields shown

Technical nameLabelTypeDetails
campaign_idCampaignmany2one
read-only
categ_idProduct Categorymany2one
read-only
commercial_partner_idCustomer Entitymany2one
read-only
company_idCompanymany2one
read-only
country_idCustomer Countrymany2one
read-only
currency_idCurrencymany2one
read-only
dateOrder Datedatetime
read-only
discountDiscount %float
read-only
discount_amountDiscount Amountmonetary
read-only
industry_idCustomer Industrymany2one
read-only
invoice_statusOrder Invoice Statusselection
read-only

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

is_abandoned_cartAbandoned Cartboolean
read-only

added by eCommerce (website_sale)

line_invoice_statusInvoice Statusselection
read-only

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

line_nameOrder Line Namechar
read-only
marginMarginmonetary
read-only

added by Margins in Sales Orders (sale_margin)

margin_percentMargin (%)float
read-only

added by Margins in Sales Orders (sale_margin)

medium_idMediummany2one
read-only
nameOrder Referencechar
read-only
nbr# of Linesinteger
read-only
order_referenceOrderreference
partner_idCustomermany2one
read-only
partner_tag_idsCustomer Tagsmany2many
read-only

related: partner_id.category_id

partner_zipCustomer ZIPchar
read-only
price_subtotalUntaxed Totalmonetary
read-only
price_totalTotalmonetary
read-only
price_unitUnit Pricemonetary
read-only
pricelist_idPricelistmany2one
read-only
product_idProduct Variantmany2one
read-only
product_tmpl_idProductmany2one
read-only
product_uom_idUnitmany2one
read-only
product_uom_qtyQty Orderedfloat
read-only
project_idProjectmany2one
read-only

added by Sales - Project (sale_project)

public_categ_idseCommerce Categoriesmany2many

related: product_tmpl_id.public_categ_ids

added by eCommerce (website_sale)

purchase_priceExpected Costmonetary
read-only

added by Margins in Sales Orders (sale_margin)

qty_deliveredQty Deliveredfloat
read-only
qty_invoicedQty Invoicedfloat
read-only
qty_to_deliverQty To Deliverfloat
read-only
qty_to_invoiceQty To Invoicefloat
read-only
source_idSourcemany2one
read-only
stateStatusselection
read-only

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

state_idCustomer Statemany2one
read-only
team_idSales Teammany2one
read-only
untaxed_amount_invoicedUntaxed Amount Invoicedmonetary
read-only
untaxed_amount_to_invoiceUntaxed Amount To Invoicemonetary
read-only
untaxed_delivered_amountUntaxed Amount Deliveredmonetary
read-only
user_idSalespersonmany2one
read-only
utm_referenceUTM Referencereference
volumeVolumefloat
read-only
warehouse_idWarehousemany2one
read-only

added by Sales and Warehouse Management (sale_stock)

website_idWebsitemany2one
read-only

added by eCommerce (website_sale)

weightGross Weightfloat
read-only
create_dateCreated ondatetime
read-onlyautomatic
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

No Many2one or Many2many field of another model points to this model.

Reading this model through the API

Odoo 20 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.report/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["date","state","campaign_id","categ_id","commercial_partner_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.report/search_read",
    headers=headers,
    json={"domain": [], "fields": ["date","state","campaign_id","categ_id","commercial_partner_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-report">sale.report (Odoo 20.0)</a>

Sources

Data verified on September 25, 2026 · Odoo 20.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.