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 188 champs, dont 154 déclarés directement sur le modèle ; 35 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- Libellé
- Commande client
- Type
- Persistant (models.Model)
- Table SQL
sale_order- Module d'origine
- Ventes (
sale) - Étendu par
- sale_management, sale_project, crm_sale_project, delivery, event_sale, event_booth_sale, sale_crm, mass_mailing_sale, sale_stock, stock_delivery, repair, sale_purchase, sale_purchase_stock, stock_dropshipping, partnership, pos_sale, sale_margin, pos_sale_stock, sale_mrp, 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_mrp
- Tri par défaut (_order)
date_order desc, id desc
Champs du modèle
154 champs propres, 29 hérités des mixins et 5 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
188 champs affichés sur 188
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| amount_delivery | Coût de livraison Toutes taxes comprises ou hors taxes en fonction de la configuration du site web. | monetary | calculé ajouté par eCommerce ( |
| amount_invoiced | Déjà facturé | monetary | calculé |
| amount_paid | Montant 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_tax | Taxes | monetary | calculé, stocké |
| amount_to_invoice | Solde non facturé | monetary | calculé |
| amount_total | Total | monetary | calculé, stocké |
| amount_unpaid | Amount Remaining Amount left to pay to avoid double payment or double invoicing. | monetary | calculé, stocké |
| amount_untaxed | Montant hors taxes | monetary | calculé, stocké |
| analytic_account_id | Compte analytique | many2one | |
| applied_coupon_ids | Bons de réduction appliqués manuellement | many2many | ajouté par Sale Loyalty ( |
| assigned_grade_id | Grade assigné | many2one | calculé ajouté par Partnership / Membership ( |
| assigned_website_id | Site Web | many2one→ website | calculé, stocké ajouté par eCommerce ( |
| attendee_count | Nombre de participants | integer | calculé ajouté par Events Sales ( |
| authorized_transaction_ids | Transactions autorisées | many2many | calculé |
| available_quotation_document_ids | Documents de devis disponibles | many2many | calculé ajouté par Sales PDF Quotation Builder ( |
| campaign_id | Campagne | many2one | |
| carrier_id | Mode de livraison Complétez ce champ si vous envisagez de facturer l'expédition en fonction du transfert. | many2one | ajouté par Delivery Costs ( |
| cart_quantity | Quantité du panier | integer | calculé ajouté par eCommerce ( |
| cart_recovery_email_sent | E-mail de récupération du panier déjà envoyé | boolean | ajouté par eCommerce ( |
| client_order_ref | Référence client | char | |
| closed_task_count | Closed Task Count | integer | calculé ajouté par Sales - Project ( |
| code_enabled_rule_ids | Règles déclenchées manuellement | many2many | ajouté par Sale Loyalty ( |
| commitment_date | Livraison promise 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_id | Société | many2one | requis |
| company_price_include | Company Price Include | selection | related : |
| completed_task_percentage | Completed Task Percentage | float | calculé ajouté par Sales - Project ( |
| country_code | Code pays | char | related : |
| coupon_point_ids | Point de réduction | one2many | inverse : ajouté par Sale Loyalty ( |
| create_date | Date de création | datetime | lecture seule |
| currency_id | Devise | many2one | calculé, stocké |
| currency_rate | Taux de change | float | calculé, stocké |
| customizable_pdf_form_fields | Champs de formulaire PDF personnalisables | json | ajouté par Sales PDF Quotation Builder ( |
| date_order | Date de la commande Creation date of draft/sent orders, Confirmation date of confirmed orders. | datetime | requis |
| delivery_count | Bons de livraison | integer | calculé ajouté par Sales and Warehouse Management ( |
| delivery_date | Date de livraison | datetime | calculé |
| delivery_message | Message de livraison | char | lecture seule ajouté par Delivery Costs ( |
| delivery_set | Mode de livraison défini | boolean | calculé ajouté par Delivery Costs ( |
| delivery_status | Statut de livraison Blue: Not Delivered/Started Orange: Partially Delivered Green: Fully Delivered | selection | calculé, stocké Valeurs : |
| delivery_type | Delivery Type | selection | related : ajouté par Click & Collect ( |
| disabled_auto_rewards | Récompenses automatiques désactivées | many2many | ajouté par Coupons, Promotions, Gift Card and Loyalty for eCommerce ( |
| document_tax_mode | Mode de taxe du document | selection | requiscalculé, stocké Valeurs : |
| dropship_picking_count | Nombre de livraisons en dropshipping | integer | calculé ajouté par Drop Shipping ( |
| duplicated_order_ids | Commande dupliquée | many2many | calculé |
| effective_date | Date effective Date d'exécution du premier ordre de livraison. | datetime | calculé, stocké ajouté par Sales and Warehouse Management ( |
| event_booth_count | Nombre de stands | integer | calculé ajouté par Events Booths Sales ( |
| event_booth_ids | Stands | one2many | inverse : ajouté par Events Booths Sales ( |
| expected_date | Date 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épenses | integer | calculé ajouté par Sales Expense ( |
| expense_ids | Dépenses | one2many | lecture seule inverse : ajouté par Sales Expense ( |
| extra_total_fields | Extra Total Fields | json | calculé |
| fiscal_position_id | Position fiscale Les positions fiscales sont utilisées pour adapter les taxes et les comptes à des clients particuliers ou à des commandes clients/factures. La valeur par défaut provient du client. | many2one | calculé, stocké |
| gift_card_count | Nombre de cartes-cadeaux | integer | calculé ajouté par Sale Loyalty ( |
| grid | Stockage 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 Sale Matrix ( |
| grid_product_tmpl_id | Grille des modèles de produits | many2one | ajouté par Sale Matrix ( |
| grid_update | Mise à jour de la grille | boolean | ajouté par Sale Matrix ( |
| has_active_pricelist | A une liste de prix active | boolean | calculé |
| has_archived_products | Contient des produits archivés | boolean | calculé |
| has_authorized_transaction_ids | A des transactions autorisées | boolean | calculé |
| has_overages | Has Overages | boolean | calculé |
| incoterm | Incoterm Les Incoterms sont une série de termes commerciaux prédéfinis utilisés dans les transactions internationales. | many2one | calculé, stocké |
| incoterm_location | Lieu Incoterm | char | calculé, stocké |
| invoice_count | Nombre de factures | integer | calculé |
| invoice_ids | Factures clients | many2many | calculé |
| invoice_overages | Invoice Overages | boolean | |
| invoice_status | Statut de la facture | selection | calculé, stocké Valeurs : |
| invoicing_closed | Clôturé(e) manuellement pour la facturation Si activé, la commande est considérée comme entièrement facturée, indépendamment des lignes. | boolean | |
| is_abandoned_cart | Panier abandonné | boolean | calculé ajouté par eCommerce ( |
| is_all_service | Produit de service | boolean | calculé ajouté par Delivery Costs ( |
| is_expired | A expiré | boolean | calculé |
| is_linked_to_expense_with_attachment | Is Linked To Expense With Attachment | boolean | calculé ajouté par Sales Expense ( |
| is_pdf_quote_builder_available | Le générateur de devis PDF est disponible | boolean | calculé ajouté par Sales PDF Quotation Builder ( |
| is_pickup_required | Is Pickup Required | boolean | related : ajouté par Disponibilité des produits ( |
| is_product_milestone | Is Product Milestone | boolean | calculé ajouté par Sales - Project ( |
| is_rating_email_sent | E-mail de demande d'avis déjà envoyé | boolean | ajouté par eCommerce ( |
| is_unfulfilled | Unfulfilled Orders | boolean | |
| journal_id | Journal 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_popover | Données JSON pour le widget popover | char | calculé ajouté par Sales and Warehouse Management ( |
| late_availability | Disponibilités tardives Vrai si un transfert lié est en retard de disponibilité | boolean | calculé ajouté par Sales and Warehouse Management ( |
| locked | Verrouillé Les commandes verrouillées ne peuvent plus être modifiées. | boolean | |
| margin | Marge | monetary | calculé, stocké ajouté par Margins in Sales Orders ( |
| margin_percent | Marge (%) | float | calculé, stocké ajouté par Margins in Sales Orders ( |
| medium_id | Médium | many2one | |
| milestone_count | Milestone Count | integer | calculé ajouté par Sales - Project ( |
| mrp_production_count | Nombre d'OF générés | integer | calculé ajouté par Sales and MRP Management ( |
| mrp_production_ids | Ordres de fabrication associés à cette commande client. | many2many | calculé ajouté par Sales and MRP Management ( |
| name | Référence commande | char | requis |
| note | Conditions générales | html | calculé, stocké |
| only_services | Services seulement | boolean | calculé ajouté par eCommerce ( |
| opportunity_id | Opportunité | many2one→ crm.lead | ajouté par Opportunity to Quotation ( |
| order_line | Lignes de commande | one2many | inverse : |
| origin | Document d'origine Référence du document qui a généré cette demande de commande client | char | |
| partner_credit_warning | Avertissement du crédit partenaire | text | calculé |
| partner_id | Client | many2one | requis |
| partner_invoice_id | Adresse de facturation | many2one | requiscalculé, stocké |
| partner_shipping_id | Adresse de livraison | many2one | requiscalculé, stocké |
| payment_term_id | Conditions de paiement | many2one | calculé, stocké |
| pending_email_template_id | Modèle d'e-mail en attente | many2one | lecture seule |
| picking_ids | Transferts | one2many | inverse : ajouté par Sales and Warehouse Management ( |
| picking_policy | Politique d'expédition Indique si les marchandises doivent être livrées partiellement ou en une seule fois | selection | requis Valeurs : ajouté par Sales and Warehouse Management ( |
| pos_order_count | Nombre de commandes du PdV | integer | lecture seulecalculé ajouté par POS - Sales ( |
| pos_order_line_ids | Lignes de commandes transférées vers le Point de Vente | one2many | lecture seule inverse : ajouté par POS - Sales ( |
| preferred_payment_method_line_id | Mode de paiement | many2one | calculé, stocké |
| prepayment_amount | Montant d'acompte The amount that must be paid by the customer to confirm the order. | monetary | calculé |
| prepayment_percent | Prepayment Le pourcentage du montant qui doit être payé par le client pour confirmer la commande. | float | calculé, stocké |
| pricelist_id | Liste de prix If you change the pricelist, the prices of all order lines will be updated accordingly. | many2one | calculé, stocké |
| project_account_id | Compte de projet | many2one | related : ajouté par Sales - Project ( |
| project_count | Number of Projects | integer | calculé ajouté par Sales - Project ( |
| project_id | Projet 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 Sales - Project ( |
| project_ids | Projets | many2many | calculé ajouté par Sales - Project ( |
| project_required | Project Required | boolean | calculé ajouté par Sales - Project ( |
| purchase_order_count | Nombre de bons de commande générés | integer | calculé ajouté par Sale Purchase ( |
| quotation_document_ids | En-têtes/Pieds de page | many2many | ajouté par Sales PDF Quotation Builder ( |
| recompute_delivery_price | Les frais de livraison doivent être recalculés | boolean | ajouté par Delivery Costs ( |
| reference | Réf. paiement La communication de paiement de ce bon de commande. | char | |
| repair_count | Ordre(s) de réparation | integer | calculé ajouté par Réparations ( |
| repair_order_ids | Ordre de réparation | one2many | inverse : ajouté par Réparations ( |
| report_grids | Imprimer la grille des variantes | boolean | ajouté par Sale Matrix ( |
| require_signature | Signature en ligne Demander une signature en ligne au client pour confirmer la commande. | boolean | calculé, stocké |
| reward_amount | Montant de la récompense | float | calculé ajouté par Sale Loyalty ( |
| sale_order_template_id | Modèle | many2one | ajouté par Ventes ( |
| sale_warning_text | Avertissement vente Avertissement interne pour le partenaire ou les produits défini par l’utilisateur. | text | calculé |
| shipping_weight | Poids d'expédition | float | calculé, stocké ajouté par Delivery Costs ( |
| show_create_project_button | Show Create Project Button | boolean | calculé ajouté par Sales - Project ( |
| show_hours_recorded_button | Show Hours Recorded Button | boolean | calculé ajouté par Sales Timesheet ( |
| show_json_popover | A un transfert en retard | boolean | calculé ajouté par Sales and Warehouse Management ( |
| show_project_button | Show Project Button | boolean | calculé ajouté par Sales - Project ( |
| show_ship_button | Show Ship Button | boolean | calculé |
| show_sol_numbers | Show Sol Numbers | boolean | related : |
| signature | Signature | image | |
| signed_by | Signé par | char | |
| signed_on | Signé le | datetime | |
| source_id | Source | many2one | |
| state | Statut | selection | lecture seule Valeurs : |
| stock_reference_ids | Références | many2many | ajouté par Sales and Warehouse Management ( |
| tag_ids | Étiquettes | many2many→ crm.tag | |
| tasks_count | Tâches | integer | calculé ajouté par Sales - Project ( |
| tasks_ids | Tasks associated with this sale | many2many | calculé ajouté par Sales - Project ( |
| tax_calculation_rounding_method | Méthode d'arrondi pour le calcul de la taxe | selection | related : |
| tax_country_id | Pays de la taxe | many2one | calculé |
| tax_totals | Taxes totales | json | calculé |
| team_id | Équipe commerciale | many2one→ crm.team | calculé, stocké |
| terms_type | Terms Type | selection | related : |
| timesheet_count | Timesheet activities | float | calculé ajouté par Sales Timesheet ( |
| timesheet_encode_uom_id | Timesheet Encode Uom | many2one→ uom.uom | related : ajouté par Sales Timesheet ( |
| timesheet_total_duration | Duré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 Sales Timesheet ( |
| transaction_count | Nombre de transactions | integer | calculé |
| transaction_ids | Transactions | many2many | lecture seule |
| type_name | Nom du type | char | calculé |
| user_id | Vendeur | many2one | calculé, stocké |
| validity_date | Expiration Validity of the quotation. After this date, you will no longer be able to sign and pay it. | date | calculé, stocké |
| visible_project | Display project | boolean | lecture seulecalculé ajouté par Sales - Project ( |
| warehouse_id | Entrepôt | many2one | calculé, stocké ajouté par Sales and Warehouse Management ( |
| website_id | eCommerce Website Site web via lequel cette commande a été placée pour les commandes eCommerce. | many2one→ website | lecture seule ajouté par eCommerce ( |
| website_order_line | Les lignes de commandes sont affichées sur le site web | one2many | calculé ajouté par eCommerce ( |
| access_token | Jeton de sécurité | char | hérité de portal.mixin |
| access_url | URl d'accès au portail URl du portail client | char | calculé hérité de portal.mixin |
| access_warning | Avertissement d'accès | text | calculé hérité de portal.mixin |
| activity_calendar_event_id | Activité suivante de l'événement du calendrier | many2one | calculé hérité de mail.activity.mixin |
| activity_date_deadline | Date limite de l'activité à venir | date | lecture seulecalculé hérité de mail.activity.mixin |
| activity_exception_decoration | Indicateur d’exception d’activité Type d'activité d'exception enregistrée. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_exception_icon | Icône Icône pour indiquer une activité d'exception. | char | calculé hérité de mail.activity.mixin |
| activity_ids | Activités | one2many | inverse : hérité de mail.activity.mixin |
| activity_plans_ids | Plans d'activité | many2many | calculé hérité de mail.activity.mixin |
| activity_state | Statut de l'activité Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_summary | Résumé de l'activité suivante | char | related : hérité de mail.activity.mixin |
| activity_type_icon | Icône de type d'activité | char | related : hérité de mail.activity.mixin |
| activity_type_id | Type d'activités à venir | many2one | related : hérité de mail.activity.mixin |
| activity_user_id | Utilisateur responsable | many2one | lecture seulecalculé hérité de mail.activity.mixin |
| alerts | Alertes | json | hérité de website.checkout.alert.mixin |
| has_message | A un message | boolean | calculé hérité de mail.thread |
| message_attachment_count | Nombre de pièces jointes | integer | calculé hérité de mail.thread |
| message_follower_ids | Abonnés | one2many | inverse : hérité de mail.thread |
| message_has_error | Erreur d'envoi du message Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_has_error_counter | Nombre d'erreurs Nombre de messages avec des erreurs d'envoi | integer | calculé hérité de mail.thread |
| message_has_sms_error | Erreur d'envoi SMS Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_ids | Messages | one2many | inverse : hérité de mail.thread |
| message_is_follower | Est un abonné | boolean | calculé hérité de mail.thread |
| message_needaction | Nécessite une action Si coché, de nouveaux messages demandent votre attention. | boolean | calculé hérité de mail.thread |
| message_needaction_counter | Nombre d'actions Nombre de messages nécessitant une action | integer | calculé hérité de mail.thread |
| message_partner_ids | Abonné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 | Évaluations | one2many | inverse : hérité de mail.thread |
| utm_reference | Référence UTM | reference | hérité de utm.mixin |
| create_uid | Créé par | many2one | lecture seuleautomatique |
| display_name | Nom affiché | char | lecture seulecalculéautomatique |
| id | ID | integer | lecture seuleautomatique |
| write_date | Dernière mise à jour le | datetime | lecture seuleautomatique |
| write_uid | Dernière mise à jour par | many2one | lecture seuleautomatique |
Relations
Modèles liés depuis ce modèle
- account.analytic.account : analytic_account_id, project_account_id
- account.fiscal.position : fiscal_position_id
- account.incoterms : incoterm
- account.journal : journal_id
- account.move : invoice_ids
- account.payment.method.line : preferred_payment_method_line_id
- account.payment.term : payment_term_id
- crm.lead : opportunity_id
- crm.tag : tag_ids
- crm.team : team_id
- delivery.carrier : carrier_id
- event.booth : event_booth_ids
- hr.expense : expense_ids
- loyalty.card : applied_coupon_ids
- loyalty.reward : disabled_auto_rewards
- loyalty.rule : code_enabled_rule_ids
- mail.template : pending_email_template_id
- mrp.production : mrp_production_ids
- payment.transaction : authorized_transaction_ids, transaction_ids
- pos.order.line : pos_order_line_ids
- product.pricelist : pricelist_id
- product.template : grid_product_tmpl_id
- project.project : project_id, project_ids
- project.task : tasks_ids
- quotation.document : available_quotation_document_ids, quotation_document_ids
- repair.order : repair_order_ids
- res.company : company_id
- res.country : tax_country_id
- res.currency : currency_id
- res.partner : partner_id, partner_invoice_id, partner_shipping_id
- res.partner.grade : assigned_grade_id
- res.users : user_id
- sale.order : duplicated_order_ids
- sale.order.coupon.points : coupon_point_ids
- sale.order.line : order_line, website_order_line
- sale.order.template : sale_order_template_id
- stock.picking : picking_ids
- stock.reference : stock_reference_ids
- stock.warehouse : warehouse_id
- uom.uom : timesheet_encode_uom_id
- utm.campaign : campaign_id
- utm.medium : medium_id
- utm.source : source_id
- website : assigned_website_id, website_id
Champs d'autres modèles qui pointent ici
- account.analytic.line : order_id
- choose.delivery.carrier : order_id
- delivery.note.wizard : so_id
- event.booth : sale_order_id
- event.registration : sale_order_id
- event.sale.report : sale_order_id
- expense.attachment.selection.wizard : sale_order_id
- hr.expense : sale_order_id
- hr.expense.split : sale_order_id
- loyalty.card : order_id
- pay.on.delivery : order_ids
- payment.transaction : sale_order_ids
- pos.order.line : sale_order_origin_id
- project.project : reinvoiced_sale_order_id, sale_order_id
- project.sale.line.employee.map : sale_order_id
- project.task : project_sale_order_id, sale_order_id
- purchase.order.line : sale_order_id
- registration.editor : sale_order_id
- repair.order : sale_order_id
- report.project.task.user : sale_order_id
- sale.advance.payment.inv : sale_order_ids
- sale.loyalty.coupon.wizard : order_id
- sale.loyalty.reward.wizard : order_id
- sale.mass.cancel.orders : sale_order_ids
- sale.order : duplicated_order_ids
- sale.order.coupon.points : order_id
- sale.order.discount : sale_order_id
- sale.order.line : order_id
- stock.lot : sale_order_ids
- stock.picking : sale_id
- stock.reference : sale_ids
- timesheets.analysis.report : order_id
- withdrawal.request : order_id
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 -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","document_tax_mode","partner_id"],"limit":5}'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","document_tax_mode","partner_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 20.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 20 : ORM API
- Documentation Odoo 20 : API externe JSON-2
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.