Odoo 19.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 35 autres modules. Il expose 129 champs, dont 120 déclarés directement sur le modèle ; 25 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.line
Libellé
Ligne de commande
Type
Persistant (models.Model)
Table SQL
sale_order_line
Module d'origine
Ventes (sale)
Étendu par
delivery, sale_stock, stock_delivery, sale_management, event_sale, event_booth_sale, repair, sale_purchase, stock_dropshipping, pos_sale, pos_repair, pos_sale_loyalty, sale_margin, sale_mrp, sale_service, sale_project, sale_expense, sale_expense_margin, sale_gelato, sale_gelato_stock, sale_loyalty, sale_stock_margin, sale_pdf_quote_builder, sale_product_matrix, sale_project_stock, 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_stock, website_sale_loyalty
Tri par défaut (_order)
order_id, sequence, id
Hérite de (mixins)
analytic.mixinpos.load.mixin

Champs du modèle

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

129 champs affichés sur 129

Nom techniqueLibelléTypeDétails
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 Créateur de devis PDF (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 Ventes Fidélité (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 au client

float
requiscalculé, stocké
discountRemise (%)float
calculé, stocké
display_qty_widgetAfficher widget qtéboolean
calculé

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

display_typeType d'affichageselection

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

event_booth_category_idCatégorie des standsmany2one

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

event_booth_idsStands confirmésone2many

inverse : sale_order_line_id

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

event_booth_registration_idsInscription confirméeone2many

inverse : sale_order_line_id

ajouté par Ventes de stands d'événement (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 Ventes sur événements (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 Ventes sur événements (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 Ventes sur événements (event_sale)

expense_idDépensemany2one

ajouté par Marge des dépenses commerciales (sale_expense_margin)

expense_idsDépensesone2many
lecture seule

inverse : sale_order_line_id

ajouté par Ventes Dépenses (sale_expense)

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

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

free_qty_todayQté disponible aujourd'huifloat
calculé

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

has_displayed_warning_upsellHas Displayed Warning Upsellboolean

ajouté par Feuille de temps des ventes (sale_timesheet)

invoice_linesLignes de facturemany2many
invoice_statusStatut de la factureselection
calculé, stocké

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

is_configurable_productCe produit est-il configurable ?boolean

related : product_template_id.has_configurable_attributes

is_deliveryEst une livraisonboolean

ajouté par Frais de livraison (delivery)

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

is_multi_slotsAvec créneaux multiplesboolean

related : event_id.is_multi_slots

ajouté par Ventes sur événements (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 PdV – Réparation (pos_repair)

is_reward_lineEst une ligne de récompense de programmeboolean
calculé

ajouté par Ventes Fidélité (sale_loyalty)

is_serviceIs a Serviceboolean
calculé, stocké

ajouté par Ventes - Services (sale_service)

is_storableIs Storableboolean

related : product_id.is_storable

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

linked_line_idLigne de commande liéemany2one
linked_line_idsLignes de commande liéesone2many

inverse : linked_line_id

linked_virtual_idLien virtuelchar
marginMargefloat
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)

move_idsMouvements de stockone2many

inverse : sale_line_id

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

nameDescriptiontext
requiscalculé, 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 Ventes Fidélité (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 PdV - Ventes (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 Matrice de vente (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 Créateur de devis PDF (sale_pdf_quote_builder)

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

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

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

ajouté par Ventes & Achats (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 Ventes & Achats (sale_purchase)

purchase_priceCoûtfloat
calculé, stocké

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

qty_available_todayQté disponible aujourd'huifloat
calculé

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

qty_deliveredQuantité de livraisonfloat
calculé, stocké
qty_delivered_at_dateDélivré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 sale line - Stock Moves: the quantity comes from confirmed pickings

selection
calculé, stocké

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

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

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

qty_to_invoiceQuantité à facturerfloat
calculé, stocké
reached_milestones_idsReached Milestonesone2many

inverse : sale_line_id

ajouté par Ventes - Projet (sale_project)

recompute_delivery_priceRecompute Delivery Priceboolean

related : order_id.recompute_delivery_price

ajouté par Frais de livraison (delivery)

registration_idsInscriptionsone2many

inverse : sale_order_line_id

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

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

ajouté par Feuille de temps des ventes (sale_timesheet)

remaining_hours_availableHeures restantes disponiblesboolean
calculé

ajouté par Feuille de temps des ventes (sale_timesheet)

reward_idRécompensemany2one
lecture seule

ajouté par Ventes Fidélité (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 Ventes Fidélité (sale_loyalty)

route_idsRoutesmany2many

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

sale_line_warn_msgMessage d’avertissement ligne de ventetext
calculé
salesman_idVendeurmany2one

related : order_id.user_id

scheduled_dateDate planifiéedatetime
calculé

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

selected_combo_itemsArticles combinés sélectionnéschar
sequenceSéquenceinteger
service_trackingService Trackingselection

related : product_id.service_tracking

shop_warningAvertissementchar

ajouté par eCommerce (website_sale)

stateStatut de la commandeselection

related : order_id.state

task_idGenerated Taskmany2one

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

translated_product_nameNom de produit traduittext
calculé
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 Expiration du stock produit à la vente (sale_stock_product_expiry)

virtual_available_at_dateVirtuellement disponible à datefloat
calculé

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

virtual_idVirtuelchar
warehouse_idEntrepôtmany2one
calculé, stocké

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

analytic_distributionRépartition Analytiquejson
calculé, stocké

hérité de analytic.mixin

analytic_precisionPrécision analytiqueinteger

hérité de analytic.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 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.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 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.