Odoo 20.0 Community · Persistant

sale.order.line : champs, relations et API

Le modèle sale.order.line (« Ligne de commande ») est un modèle persistant déclaré par le module Ventes, puis enrichi par 37 autres modules. Il expose 144 champs, dont 132 déclarés directement sur le modèle ; 26 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.line
Libellé
Ligne de commande
Type
Persistant (models.Model)
Table SQL
sale_order_line
Module d'origine
Ventes (sale)
Étendu par
sale_management, sale_service, sale_project, delivery, event_sale, event_booth_sale, sale_stock, stock_delivery, repair, sale_purchase, stock_dropshipping, pos_sale, pos_event_sale, pos_repair, pos_sale_loyalty, sale_margin, pos_sale_stock, sale_mrp, sale_expense, sale_edi_ubl, sale_expense_margin, sale_gelato, sale_gelato_stock, sale_loyalty, sale_stock_margin, sale_pdf_quote_builder, sale_product_matrix, sale_purchase_project, sale_stock_product_expiry, sale_timesheet, sale_timesheet_margin, website_sale, website_sale_slides, website_event_booth_sale, website_event_sale, website_sale_collect, website_sale_loyalty
Tri par défaut (_order)
order_id, sequence, id
Hérite de (mixins)
analytic.mixinres.currency.rate.consolidation.mixinproduct.catalog.line.mixinpos.load.mixinwebsite.checkout.alert.mixin

Champs du modèle

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

144 champs affichés sur 144

Nom techniqueLibelléTypeDétails
accrual_move_idsAccrual Entries

Accrual entries generated for this line, so it isn't accrued again while one is still standing (posted, not yet reversed or cancelled).

many2many
allowed_uom_idsUnité de mesure autoriséemany2many
calculé
amount_invoicedMontant facturémonetary
calculé
amount_to_invoiceSolde non facturémonetary
calculé
amount_to_invoice_at_dateMontantfloat
calculé
analytic_line_idsLignes analytiquesone2many

inverse : so_line

available_product_document_idsDocuments produits disponiblesmany2many
calculé

ajouté par Sales PDF Quotation Builder (sale_pdf_quote_builder)

categ_idCategmany2one

related : product_id.categ_id

collapse_compositionReplier la compositionboolean
collapse_pricesReplier les prixboolean
combo_item_idArticle combomany2one
company_idSociétémany2one

related : order_id.company_id

company_price_includeCompany Price Includeselection

related : company_id.account_price_include

coupon_idBon de réductionmany2one
lecture seule

ajouté par Sale Loyalty (sale_loyalty)

currency_idDevisemany2one

related : order_id.currency_id

customer_leadDélai

Nombre de jours entre la confirmation de la commande et l'expédition des produits

integer
requiscalculé, stocké
deferred_revenueProduits constatés d'avanceboolean
discountRemise (%)float
calculé, stocké
display_qty_widgetAfficher widget qtéboolean
calculé
display_typeType d'affichageselection

Valeurs : line_section (Section), line_subsection (Sous-section), line_note (Note)

document_tax_modeMode de taxe du documentselection

related : order_id.document_tax_mode

edi_customer_product_refRéf. produit client EDIchar

ajouté par Import electronic orders with UBL (sale_edi_ubl)

event_booth_category_idCatégorie des standsmany2one

ajouté par Events Booths Sales (event_booth_sale)

event_booth_idsStands confirmésone2many

inverse : sale_order_line_id

ajouté par Events Booths Sales (event_booth_sale)

event_booth_pending_idsStands en attente

Utilisé pour créer une inscription lors de la fourniture du stand d'événement souhaité.

many2many
calculé

ajouté par Events Booths Sales (event_booth_sale)

event_booth_registration_idsInscription confirméeone2many

inverse : sale_order_line_id

ajouté par Events Booths Sales (event_booth_sale)

event_idÉvénement

Choisissez un événement et une inscription pour cet événement sera automatiquement créée

many2one
calculé, stocké

ajouté par Events Sales (event_sale)

event_slot_idCréneau

Choisissez un créneau, un ticket sera automatiquement généré pour celui-ci.

many2one
calculé, stocké

ajouté par Events Sales (event_sale)

event_ticket_idType de tickets

Choisissez un type de ticket et une inscription pour cet événement sera automatiquement créée.

many2one
calculé, stocké

ajouté par Events Sales (event_sale)

expense_idDépensemany2one

ajouté par Sales Expense Margin (sale_expense_margin)

expense_idsDépensesone2many
lecture seule

inverse : sale_order_line_id

ajouté par Sales Expense (sale_expense)

extra_tax_dataDonnées fiscales supplémentairesjson
forecast_expected_dateDate prévuedatetime
calculé

ajouté par Sales and Warehouse Management (sale_stock)

free_qty_todayQté disponible aujourd'huifloat
calculé

ajouté par Sales and Warehouse Management (sale_stock)

has_displayed_warning_upsellHas Displayed Warning Upsellboolean

ajouté par Sales Timesheet (sale_timesheet)

invoice_linesLignes de facturemany2many
invoice_policyPolitique de facturationselection
calculé

Valeurs : order (Quantités commandées), delivery (Quantités livrées)

invoice_statusStatut de la factureselection
calculé, stocké

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

invoice_to_be_issuedInvoice to be Issuedboolean
is_configurable_productCe produit est-il configurable ?boolean

related : product_template_id.has_configurable_attributes

is_deliveryEst une livraisonboolean

ajouté par Delivery Costs (delivery)

is_donationEst un donboolean
calculé

ajouté par eCommerce (website_sale)

is_downpaymentEst un acompte

Les acomptes sont effectués lors de la création de factures à partir d'une commande client. Ils ne sont pas copiés lors de la duplication d'une commande client.

boolean
is_expenseEst une dépense

Est vrai si la ligne de commande vient d'une dépense ou d'une facture fournisseur

boolean
is_mtoEst fabriqué à la commande ?boolean
calculé

ajouté par Sales and Warehouse Management (sale_stock)

is_multi_slotsAvec créneaux multiplesboolean

related : event_id.is_multi_slots

ajouté par Events Sales (event_sale)

is_optionalLigne optionnelleboolean

ajouté par Ventes (sale_management)

is_product_archivedEst un produit archivéboolean
calculé
is_repair_lineEst lié à une réparationboolean
calculé

ajouté par POS - Repair (pos_repair)

is_reward_lineEst une ligne de récompense de programmeboolean
calculé

ajouté par Sale Loyalty (sale_loyalty)

is_serviceIs a Serviceboolean
calculé, stocké

ajouté par Sales - Service (sale_service)

is_storableIs Storableboolean

related : product_id.is_storable

labelLibellétext
calculé
linked_line_idLigne de commande liéemany2one
linked_line_idsLignes de commande liéesone2many

inverse : linked_line_id

linked_virtual_idLien virtuelchar
mandatory_productIs Product Mandatoryboolean
calculé
marginMargefloat
calculé, stocké

ajouté par Margins in Sales Orders (sale_margin)

margin_percentMarge (%)float
calculé, stocké

ajouté par Margins in Sales Orders (sale_margin)

move_idsMouvements de stockone2many

inverse : sale_line_id

ajouté par Sales and Warehouse Management (sale_stock)

nameDescriptiontext
calculé, stocké
name_shortNom courtchar
calculé

ajouté par eCommerce (website_sale)

order_idRéférence commandemany2one
requis
order_partner_idClientmany2one

related : order_id.partner_id

parent_idLigne de section parentemany2one
calculé
points_costCoût des points

Combien de points cette récompense coûte sur la carte de fidélité.

float

ajouté par Sale Loyalty (sale_loyalty)

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

inverse : sale_order_line_id

ajouté par POS - Sales (pos_sale)

price_reduce_taxexclRemise hors taxesmonetary
calculé, stocké
price_reduce_taxincRemise toutes taxes comprisesmonetary
calculé, stocké
price_subtotalSous-totalmonetary
calculé, stocké
price_taxTotal des taxesfloat
calculé, stocké
price_totalTotalmonetary
calculé, stocké
price_unitPrix unitairefloat
requiscalculé, stocké
pricelist_item_idÉlément de la liste de prixmany2one
calculé
product_add_modeProduct Add Modeselection

related : product_template_id.product_add_mode

ajouté par Sale Matrix (sale_product_matrix)

product_custom_attribute_value_idsValeurs personnaliséesone2many
calculé, stocké

inverse : sale_order_line_id

product_document_idsDocuments produits

Les documents produits pour cette ligne de commande qui seront fusionnés dans le devis PDF.

many2many

ajouté par Sales PDF Quotation Builder (sale_pdf_quote_builder)

product_idProduitmany2one
product_no_variant_attribute_value_idsValeur supplémentairemany2many
calculé, stocké
product_qtyQté de produitsfloat
calculé

ajouté par Delivery Costs (delivery)

product_template_attribute_value_idsValeur caratéristique du modèle produitmany2many

related : product_id.product_template_attribute_value_ids

product_template_idModèle de produitmany2one
calculé
product_typeType de produitselection

related : product_id.type

product_uom_idUnitémany2one
calculé, stocké
product_uom_qtyQuantitéfloat
requiscalculé, stocké
product_uom_readonlyUdM du produit en lecture seuleboolean
calculé
product_updatablePeut modifier le produitboolean
calculé
project_idGenerated Projectmany2one

ajouté par Sales - Project (sale_project)

purchase_line_countNombre d'articles d'achat générésinteger
calculé

ajouté par Sale Purchase (sale_purchase)

purchase_line_idsLignes d'achat générées

Ligne d'achat générée par cet article de vente lors de la confirmation de la commande, ou quand la quantité a été augmentée.

one2many
lecture seule

inverse : sale_line_id

ajouté par Sale Purchase (sale_purchase)

purchase_priceCoût unitairefloat
calculé, stocké

ajouté par Margins in Sales Orders (sale_margin)

qty_available_todayQté disponible aujourd'huifloat
calculé
qty_deliveredQuantité de livraisonfloat
calculé, stocké
qty_delivered_at_dateLivréfloat
calculé
qty_delivered_methodMéthode de mise à jour des quantités livrées

According to product configuration, the delivered quantity can be automatically computed by mechanism: - Manual: the quantity is set manually on the line - Analytic From expenses: the quantity is the quantity sum from posted expenses - Timesheet: the quantity is the sum of hours recorded on tasks linked to this line - Stock Moves: the quantity comes from confirmed pickings

selection
calculé, stocké

Valeurs : manual (Manuelle), analytic (Analytique des dépenses)

qty_delivered_percentDelivered (%)float
calculé
qty_invoicedQuantité facturéefloat
calculé, stocké
qty_invoiced_at_dateFacturéfloat
calculé
qty_invoiced_postedQuantité facturée (comptabilisée)float
calculé
qty_overageQty Overagefloat
calculé
qty_to_deliverQté à livrerfloat
calculé

ajouté par Sales and Warehouse Management (sale_stock)

qty_to_invoiceQuantité à facturerfloat
calculé, stocké
reached_milestones_idsReached Milestonesone2many

inverse : sale_line_id

ajouté par Sales - Project (sale_project)

recompute_delivery_priceRecompute Delivery Priceboolean

related : order_id.recompute_delivery_price

ajouté par Delivery Costs (delivery)

registration_idsInscriptionsone2many

inverse : sale_order_line_id

ajouté par Events Sales (event_sale)

remaining_hoursTemps restant sur les bons de commandefloat
calculé, stocké

ajouté par Sales Timesheet (sale_timesheet)

remaining_hours_availableHeures restantes disponiblesboolean
calculé

ajouté par Sales Timesheet (sale_timesheet)

repair_service_line_idRepair Service Linemany2one

ajouté par Réparations (repair)

reward_idRécompensemany2one
lecture seule

ajouté par Sale Loyalty (sale_loyalty)

reward_identifier_codeCode d'identification de la récompense

Champ technique utilisé pour relier plusieurs lignes de récompense d'une même récompense entre elles.

char

ajouté par Sale Loyalty (sale_loyalty)

route_idsRoutesmany2many

ajouté par Sales and Warehouse Management (sale_stock)

sale_line_warn_msgMessage d’avertissement ligne de ventetext
calculé
salesman_idVendeurmany2one

related : order_id.user_id

scheduled_dateDate de livraisondatetime
calculé
section_qtySection Quantityfloat
calculé, stocké
section_uom_idSection Unit of Measuremany2one
calculé, stocké
selected_combo_itemsArticles combinés sélectionnéschar
sequenceSéquenceinteger
service_trackingService Trackingselection

related : product_id.service_tracking

stateStatut de la commandeselection

related : order_id.state

task_idGenerated Taskmany2one

ajouté par Sales - Project (sale_project)

tax_calculation_rounding_methodMéthode d'arrondi pour le calcul des taxesselection
lecture seule

related : company_id.tax_calculation_rounding_method

tax_country_idPays de la taxemany2one

related : order_id.tax_country_id

tax_idsTaxesmany2many
calculé, stocké
technical_price_unitPrix unitaire techniquefloat
timesheet_idsFeuilles de tempsone2many

inverse : so_line

ajouté par Sales Timesheet (sale_timesheet)

untaxed_amount_invoicedMontant hors taxes facturémonetary
calculé, stocké
untaxed_amount_to_invoiceMontant hors taxes à facturermonetary
calculé, stocké
use_expiration_dateUtiliser la date d'expirationboolean

related : product_id.use_expiration_date

ajouté par Sale Stock Product Expiry (sale_stock_product_expiry)

virtual_available_at_dateDisponible virtuellement à la datefloat
calculé
virtual_idVirtuelchar
warehouse_idEntrepôtmany2one
calculé, stocké

ajouté par Sales and Warehouse Management (sale_stock)

alertsAlertesjson

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

analytic_distributionRépartition Analytiquejson
calculé, stocké

hérité de analytic.mixin

analytic_precisionPrécision analytiqueinteger

hérité de analytic.mixin

consolidation_currency_idDevise de consolidationmany2one
calculé

hérité de res.currency.rate.consolidation.mixin

consolidation_rateTauxfloat
calculé

hérité de res.currency.rate.consolidation.mixin

distribution_analytic_account_idsCompte analytique de répartitionmany2many
calculé

hérité de analytic.mixin

create_dateCréé ledatetime
lecture seuleautomatique
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.line/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: votre-base" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["name","customer_lead","order_id","price_unit","product_uom_qty"],"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.line/search_read",
    headers=headers,
    json={"domain": [], "fields": ["name","customer_lead","order_id","price_unit","product_uom_qty"], "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-line">sale.order.line (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.