{"id":101212,"date":"2026-10-17T13:00:38","date_gmt":"2026-10-17T13:00:38","guid":{"rendered":"https:\/\/skyplanner.ai\/?page_id=101212"},"modified":"2026-10-17T13:00:38","modified_gmt":"2026-10-17T13:00:38","slug":"guide-dintegration","status":"publish","type":"page","link":"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/","title":{"rendered":"Guide d\u2019int\u00e9gration d\u2019Odoo \u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production"},"content":{"rendered":"\n<div class=\"wp-block-group sp-industry-page sp-industry sp-page sp-erp-page\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<section class=\"wp-block-group fx-hero\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-hero__grid\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-hero__copy sp-min0\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"fx-eyebrow ind-crumbs\"><span><a href=\"\/fr\/integrations\/\">Int\u00e9grations<\/a> \/ <a href=\"\/fr\/integrations\/erp\/\">ERP<\/a> \/ Odoo<\/span><\/p>\n\n\n<h1 class=\"wp-block-heading fx-hero__title\">Guide d\u2019int\u00e9gration d\u2019Odoo <span class=\"hl\">\u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production<\/span><\/h1>\n\n\n<p class=\"fx-hero__sub\">Ce guide explique aux partenaires Odoo, aux d\u00e9veloppeurs et aux responsables informatiques comment relier Odoo Manufacturing \u00e0 SkyPlanner APS. Pour comprendre l\u2019int\u00e9r\u00eat de cette int\u00e9gration et ce que fait d\u00e9j\u00e0 le bouton Plan d\u2019Odoo, consultez la <a href=\"\/fr\/integrations\/erp\/odoo\/\">page sur l\u2019ordonnancement de la production avec Odoo<\/a> et l\u2019article <a href=\"\/fr\/integrations\/erp\/odoo\/ordonnancement-production\/\">Odoo propose-t-il un ordonnancement de production qui respecte la capacit\u00e9 r\u00e9elle des machines et du personnel ?<\/a>.<\/p>\n\n\n<div class=\"wp-block-buttons fx-hero__actions is-layout-flex wp-block-buttons-is-layout-flex\">\n\n<div class=\"wp-block-button sp-btn sp-btn--green sp-btn--lg\"><a class=\"wp-block-button__link wp-element-button\" href=\"\/fr\/essai\/\">Commencer l\u2019essai gratuit<\/a><\/div>\n\n\n<div class=\"wp-block-button sp-btn sp-btn--outline sp-btn--lg\"><a class=\"wp-block-button__link wp-element-button\" href=\"\/fr\/contacter-les-ventes\/\">R\u00e9server une d\u00e9mo<\/a><\/div>\n\n<\/div>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group fx-hero__media sp-min0\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"fx-shot\"><div class=\"fx-shot__bar\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><span>skyplanner.ai \u00b7 Ordonnancement de la production<\/span><\/div><img fetchpriority=\"high\" decoding=\"async\" loading=\"eager\" width=\"1024\" height=\"685\" src=\"\/wp-content\/themes\/generatepress-child\/assets\/img\/features-v2\/20-d7d44cbc-5430-4f97-99f5-fca4632862ef.png\" alt=\"Diagramme de Gantt de SkyPlanner APS montrant les op\u00e9rations ordonnanc\u00e9es par poste de travail, avec une liste des commandes en dessous.\"><\/figure>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section ind-sec--intro\" id=\"overview\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group ind-prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p>Odoo reste le syst\u00e8me de r\u00e9f\u00e9rence pour les produits, les nomenclatures, les op\u00e9rations, les ordres de production, les stocks et le calcul des co\u00fbts. SkyPlanner \u00e9labore le planning \u00e0 partir de ces donn\u00e9es gr\u00e2ce \u00e0 son moteur Arcturus. Les \u00e9changes avec Odoo se font dans les deux sens :<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li>Les ordres de production, les ordres de fabrication, les op\u00e9rations des nomenclatures, les postes de charge et les commandes fournisseurs sont import\u00e9s.<\/li>\n\n\n<li>Les dates de d\u00e9but et de fin pr\u00e9vues ainsi que les postes de charge sont r\u00e9\u00e9crits dans <code>mrp.workorder<\/code>.<\/li>\n\n\n<li>L\u2019avancement et les temps saisis sont renvoy\u00e9s vers Odoo sous forme de Time Logs.<\/li>\n\n\n<li>Les webhooks SkyPlanner transmettent les modifications du planning d\u00e8s qu\u2019elles surviennent.<\/li>\n\n<\/ul>\n\n\n<p>Lors de la mise en place, l\u2019\u00e9quipe SkyPlanner configure l\u2019int\u00e9gration via l\u2019API externe standard d\u2019Odoo en fonction de votre version, de votre h\u00e9bergement et de vos personnalisations. Elle en assure ensuite le support apr\u00e8s la mise en production. Ce guide s\u2019adresse aux partenaires et aux d\u00e9veloppeurs qui souhaitent participer au projet ou d\u00e9velopper eux-m\u00eames une int\u00e9gration \u00e0 partir de l\u2019API REST document\u00e9e de SkyPlanner (<a href=\"https:\/\/integration.skyplanner.app\/api\/swagger\">r\u00e9f\u00e9rence de l\u2019API<\/a>). La gestion des produits, des mati\u00e8res et des commandes fournisseurs est d\u00e9crite dans la <a href=\"\/fr\/docs\/tutoriel-dintegration\/\">documentation publique de SkyPlanner<\/a>.<\/p>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section ind-sec--alt\" id=\"step-zero-check-the-odoo-plan-and-hosting\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head ind-head--prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Avant de commencer : v\u00e9rifier l\u2019offre Odoo et l\u2019h\u00e9bergement<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group ind-prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p>Commencez par identifier l\u2019environnement Odoo du client. C\u2019est lui qui d\u00e9termine la marche \u00e0 suivre.<\/p>\n\n\n<figure class=\"wp-block-table ind-table ind-table--wide\"><table><thead><tr><th>Configuration<\/th><th>API externe<\/th><th>Modules personnalis\u00e9s<\/th><th>Solution \u00e0 retenir<\/th><\/tr><\/thead><tbody><tr><td>Odoo Online, One App Free ou Standard<\/td><td>Non<\/td><td>Non<\/td><td>CSV\/XLSX, ou passage \u00e0 l\u2019offre Custom<\/td><\/tr><tr><td>Odoo Online, offre Custom<\/td><td>Oui<\/td><td>Non<\/td><td>API externe<\/td><\/tr><tr><td>Odoo.sh (offre Custom)<\/td><td>Oui<\/td><td>Oui<\/td><td>API externe, module facultatif<\/td><\/tr><tr><td>Sur site, Community ou Enterprise<\/td><td>Oui<\/td><td>Oui<\/td><td>API externe, module facultatif<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<p>La <a href=\"https:\/\/www.odoo.com\/documentation\/19.0\/developer\/reference\/external_api.html\">documentation de l\u2019API Odoo<\/a> pr\u00e9cise que l\u2019acc\u00e8s \u00e0 l\u2019API externe est \u00ab\u00a0only available on Custom Odoo pricing plans\u00a0\u00bb (disponible uniquement avec les offres Odoo Custom), et non avec One App Free ou Standard. La <a href=\"https:\/\/www.odoo.com\/pricing-plan\">page des tarifs<\/a> indique que l\u2019offre Standard est h\u00e9berg\u00e9e sur Odoo Online \u00ab\u00a0without custom modules\u00a0\u00bb (sans modules personnalis\u00e9s). V\u00e9rifiez ces points d\u00e8s les premiers \u00e9changes, pas au milieu du d\u00e9veloppement.<\/p>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section\" id=\"odoo-s-integration-options\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head ind-head--prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Les possibilit\u00e9s d\u2019int\u00e9gration d\u2019Odoo<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group ind-prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-table ind-table ind-table--wide\"><table><thead><tr><th>Option<\/th><th>Versions<\/th><th>Authentification<\/th><th>R\u00f4le dans l\u2019int\u00e9gration de l\u2019ordonnancement<\/th><\/tr><\/thead><tbody><tr><td>API externe JSON-2 : <code>POST \/json\/2\/&lt;model&gt;\/&lt;method&gt;<\/code><\/td><td>Nouveaut\u00e9 de la version 19.0<\/td><td>Cl\u00e9 API dans <code>Authorization: bearer &lt;key&gt;<\/code>, en-t\u00eate facultatif <code>X-Odoo-Database<\/code><\/td><td>Choix par d\u00e9faut pour les nouvelles int\u00e9grations : <code>search_read<\/code> pour la lecture, <code>write<\/code> pour la r\u00e9\u00e9criture des dates<\/td><\/tr><tr><td>XML-RPC \/ JSON-RPC externes : <code>\/xmlrpc\/2<\/code>, <code>\/jsonrpc<\/code>, services <code>common<\/code>, <code>object<\/code><\/td><td>Jusqu\u2019\u00e0 la version 19.0 ; suppression pr\u00e9vue<\/td><td><code>common.authenticate<\/code> avec identifiant et mot de passe ou cl\u00e9 API, puis <code>execute_kw<\/code><\/td><td>N\u00e9cessaire pour les clients utilisant les versions 16.0 \u00e0 18.0<\/td><\/tr><tr><td>Contr\u00f4leurs personnalis\u00e9s dans un module<\/td><td>Toutes<\/td><td>D\u00e9finie par route, par exemple <code>auth='bearer'<\/code><\/td><td>Donn\u00e9es regroup\u00e9es : un ordre de production et ses ordres de fabrication en un seul appel<\/td><\/tr><tr><td>R\u00e8gles d\u2019automatisation : \u00ab Send Webhook Notification \u00bb (envoyer une notification webhook)<\/td><td>Document\u00e9 \u00e0 partir de la version 17.0<\/td><td>Requ\u00eate POST sortante vers une URL<\/td><td>Envoi \u00e0 la cr\u00e9ation ou \u00e0 la modification des ordres de production et des ordres de fabrication<\/td><\/tr><tr><td>Import d\u2019enregistrements (CSV, XLSX) et export<\/td><td>Toutes<\/td><td>Session utilisateur<\/td><td>Donn\u00e9es d\u2019essai et chargements ponctuels de donn\u00e9es de base<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<p>Anticipez cette suppression d\u00e8s maintenant. Odoo a <a href=\"https:\/\/www.odoo.com\/documentation\/19.0\/developer\/reference\/external_rpc_api.html\">pr\u00e9vu de supprimer XML-RPC et JSON-RPC<\/a> dans Odoo 22 (automne 2028) et Odoo Online 21.1 (hiver 2027). Pour la version 19.0, d\u00e9veloppez sur JSON-2. Pour les bases plus anciennes, isolez les appels RPC derri\u00e8re un adaptateur unique : la mont\u00e9e de version ne n\u00e9cessitera ainsi qu\u2019une seule modification. Les contr\u00f4leurs personnalis\u00e9s utilisant <code>@route(type='jsonrpc')<\/code> ne sont pas concern\u00e9s par cette suppression.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Authentification<\/h3>\n\n\n<p>Cr\u00e9ez un utilisateur d\u00e9di\u00e9 \u00e0 l\u2019int\u00e9gration, avec des droits de lecture sur Manufacturing et Inventory et des droits d\u2019\u00e9criture sur les ordres de fabrication. G\u00e9n\u00e9rez sa cl\u00e9 dans Preferences &gt; Account Security &gt; New API Key. En version 19.0, les cl\u00e9s sont valides pendant trois mois au maximum. Le middleware doit donc g\u00e9rer leur rotation et d\u00e9clencher une alerte en cas d\u2019\u00e9chec d\u2019authentification. Sans ces m\u00e9canismes, une cl\u00e9 expir\u00e9e interrompt la synchronisation sans que personne ne le remarque. C\u00f4t\u00e9 SkyPlanner, l\u2019API REST utilise JWT : le middleware conserve donc les deux jeux d\u2019identifiants.<\/p>\n\n\n<p>Chaque appel JSON-2 s\u2019ex\u00e9cute dans sa propre transaction SQL. Une \u00e9criture r\u00e9partie sur plusieurs appels n\u2019est donc pas atomique. Effectuez les \u00e9critures ordre de fabrication par ordre de fabrication et journalisez chaque r\u00e9sultat.<\/p>\n\n\n<h3 class=\"wp-block-heading\">\u00c9v\u00e9nements<\/h3>\n\n\n<p>Odoo transmet les modifications au moyen de <a href=\"https:\/\/www.odoo.com\/documentation\/19.0\/applications\/studio\/automated_actions.html\">r\u00e8gles d\u2019automatisation<\/a>. Une r\u00e8gle sur <code>mrp.production<\/code> ou <code>mrp.workorder<\/code>, avec le d\u00e9clencheur On create and edit (\u00e0 la cr\u00e9ation et \u00e0 la modification) et l\u2019action \u00ab Send Webhook Notification \u00bb (envoyer une notification webhook), envoie une requ\u00eate POST contenant les champs s\u00e9lectionn\u00e9s vers une URL. Cr\u00e9ez cette r\u00e8gle dans Studio ou, en mode d\u00e9veloppeur, depuis le formulaire Automation Rules (r\u00e8gles d\u2019automatisation). Compl\u00e9tez-la par une interrogation p\u00e9riodique avec <code>search_read<\/code> sur <code>write_date<\/code> pour r\u00e9cup\u00e9rer les imports et les modifications que la r\u00e8gle n\u2019a pas capt\u00e9s. Dans l\u2019autre sens, les webhooks SkyPlanner transmettent les changements de planning et d\u2019\u00e9tat d\u00e8s qu\u2019ils se produisent.<\/p>\n\n\n<p>Les noms de champs varient selon les versions. En 19.0, chaque base r\u00e9pertorie ses mod\u00e8les, champs et m\u00e9thodes \u00e0 l\u2019adresse <code>\/doc<\/code> ; sur les versions ant\u00e9rieures, appelez <code>fields_get<\/code>. \u00c9tablissez les correspondances \u00e0 partir de ces informations, pas de m\u00e9moire.<\/p>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section ind-sec--alt\" id=\"data-mapping-odoo-to-skyplanner\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head ind-head--prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Correspondance des donn\u00e9es : d\u2019Odoo vers SkyPlanner<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group ind-prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"wp-block-table ind-table ind-table--wide\"><table><thead><tr><th>Mod\u00e8le Odoo<\/th><th>Objet SkyPlanner<\/th><th>Sens<\/th><th>Fr\u00e9quence<\/th><\/tr><\/thead><tbody><tr><td><code>product.product<\/code> \/ <code>product.template<\/code> (<code>default_code<\/code>, <code>uom_id<\/code>, <code>qty_available<\/code>)<\/td><td>Produit ou mati\u00e8re<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Chargement initial, puis chaque jour ou \u00e0 chaque modification<\/td><\/tr><tr><td><code>mrp.bom<\/code> (<code>product_tmpl_id<\/code>, <code>product_qty<\/code>, <code>produce_delay<\/code>), <code>mrp.bom.line<\/code> (<code>product_id<\/code>, <code>product_qty<\/code>, <code>operation_id<\/code>), <code>mrp.bom.byproduct<\/code><\/td><td>Produit \u00e0 plusieurs niveaux, besoins en mati\u00e8res par \u00e9tape<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>\u00c0 chaque modification<\/td><\/tr><tr><td><code>mrp.routing.workcenter<\/code> (onglet Operations : <code>workcenter_id<\/code>, <code>sequence<\/code>, <code>time_mode<\/code>, <code>time_cycle_manual<\/code>, <code>blocked_by_operation_ids<\/code>)<\/td><td>\u00c9tapes de fabrication avec leur s\u00e9quence et leur temps d\u2019ex\u00e9cution<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>\u00c0 chaque modification<\/td><\/tr><tr><td><code>mrp.workcenter<\/code> (<code>resource_calendar_id<\/code>, <code>time_efficiency<\/code>, <code>time_start<\/code>, <code>time_stop<\/code>, <code>alternative_workcenter_ids<\/code>)<\/td><td>Poste de travail, efficacit\u00e9, r\u00e9glage et nettoyage, postes de travail de remplacement<\/td><td>Odoo \u2192 SkyPlanner, puis gestion dans SkyPlanner<\/td><td>Chargement initial<\/td><\/tr><tr><td><code>mrp.workcenter.capacity<\/code> (<code>capacity<\/code>)<\/td><td>Pi\u00e8ces par cycle, temps de r\u00e9glage et de nettoyage propres \u00e0 chaque produit<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Chargement initial<\/td><\/tr><tr><td><code>resource.calendar<\/code>, <code>resource.calendar.attendance<\/code>, <code>resource.calendar.leaves<\/code><\/td><td>Horaires d\u2019\u00e9quipe et absences<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Chargement initial, puis \u00e0 chaque modification des absences<\/td><\/tr><tr><td><code>mrp.production<\/code> (<code>product_id<\/code>, <code>product_qty<\/code>, <code>date_deadline<\/code>, <code>priority<\/code>, <code>state<\/code>, <code>workorder_ids<\/code>)<\/td><td>Ordre avec date d\u2019\u00e9ch\u00e9ance et priorit\u00e9<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Webhook \u00e0 la confirmation, compl\u00e9t\u00e9 par une interrogation p\u00e9riodique<\/td><\/tr><tr><td><code>mrp.workorder<\/code> (<code>operation_id<\/code>, <code>workcenter_id<\/code>, <code>duration_expected<\/code>, <code>state<\/code>)<\/td><td>Op\u00e9ration sur un poste de travail<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Webhook, compl\u00e9t\u00e9 par une interrogation p\u00e9riodique<\/td><\/tr><tr><td><code>stock.quant<\/code>, <code>stock.move<\/code> (mouvements de composants)<\/td><td>Stock disponible et besoins en mati\u00e8res pour un ordonnancement tenant compte des disponibilit\u00e9s mati\u00e8re<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>\u00c0 intervalles r\u00e9guliers, par exemple toutes les 15 \u00e0 60 minutes<\/td><\/tr><tr><td><code>purchase.order<\/code> (<code>partner_id<\/code>, <code>state<\/code>), <code>purchase.order.line<\/code> (<code>product_id<\/code>, <code>product_qty<\/code>, <code>date_planned<\/code>, <code>qty_received<\/code>)<\/td><td>Commandes fournisseurs et mati\u00e8res attendues, disponibles \u00e0 la date de livraison pr\u00e9vue<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Webhook \u00e0 la confirmation ou \u00e0 la modification d\u2019une commande fournisseur, compl\u00e9t\u00e9 par la m\u00eame interrogation p\u00e9riodique<\/td><\/tr><tr><td>D\u00e9but et fin pr\u00e9vus, poste de travail<\/td><td><code>mrp.workorder.date_start<\/code>, <code>date_finished<\/code>, <code>workcenter_id<\/code><\/td><td>SkyPlanner \u2192 Odoo<\/td><td>\u00c0 chaque modification du planning, via un webhook SkyPlanner<\/td><\/tr><tr><td>Mobile Confirmations, relev\u00e9s de temps<\/td><td><code>mrp.workcenter.productivity<\/code> (Time Logs : <code>workcenter_id<\/code>, <code>workorder_id<\/code>, <code>date_start<\/code>, <code>date_end<\/code>, <code>loss_id<\/code>)<\/td><td>SkyPlanner \u2192 Odoo<\/td><td>\u00c0 chaque confirmation<\/td><\/tr><tr><td>Quantit\u00e9 produite, op\u00e9ration termin\u00e9e<\/td><td><code>qty_producing<\/code> sur l\u2019ordre de fabrication, puis <code>button_finish<\/code> ; <code>button_mark_done<\/code> sur l\u2019ordre de production<\/td><td>SkyPlanner \u2192 Odoo, ou saisie dans Odoo Shop Floor<\/td><td>\u00c0 chaque confirmation<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section\" id=\"integration-patterns\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head ind-head--prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Sch\u00e9mas d\u2019int\u00e9gration<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group fx-pain ind-cards\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<article class=\"wp-block-group fx-pain__card\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"fx-pain__t\">Les donn\u00e9es de base d\u2019abord.<\/p>\n\n\n<p class=\"fx-pain__b\">Chargez les postes de charge et les calendriers, puis les produits, les nomenclatures et les op\u00e9rations, qui font r\u00e9f\u00e9rence aux postes de charge. Pendant l\u2019essai de 30 jours, ces m\u00eames listes sont import\u00e9es \u00e0 partir d\u2019exports CSV. L\u2019<a href=\"https:\/\/www.odoo.com\/documentation\/19.0\/applications\/essentials\/export_import_data.html\">outil d\u2019import et d\u2019export<\/a> d\u2019Odoo fonctionne dans toutes les vues de liste.<\/p>\n\n<\/div><\/article>\n\n\n<article class=\"wp-block-group fx-pain__card\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"fx-pain__t\">Synchronisation des ordres.<\/p>\n\n\n<p class=\"fx-pain__b\">Importez les ordres de production \u00e0 l\u2019\u00e9tat <code>confirmed<\/code> et <code>progress<\/code> avec leurs ordres de fabrication. Excluez les ordres de production en brouillon ou traitez-les comme une demande provisoire. Les sous-ensembles disposant de leur propre nomenclature peuvent \u00eatre transmis sous forme d\u2019ordres de production enfants distincts ; Odoo planifie chaque ordre de production s\u00e9par\u00e9ment. Faites-les correspondre aux sous-produits SkyPlanner pour que les sous-ensembles soient termin\u00e9s avant le d\u00e9marrage de l\u2019ordre parent.<\/p>\n\n<\/div><\/article>\n\n\n<article class=\"wp-block-group fx-pain__card\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p class=\"fx-pain__t\">R\u00e9\u00e9criture du planning dans Odoo.<\/p>\n\n\n<p class=\"fx-pain__b\">Lorsque le planning change, un webhook SkyPlanner d\u00e9clenche l\u2019int\u00e9gration, qui appelle la m\u00e9thode ORM <code>write<\/code> sur chaque <code>mrp.workorder<\/code> concern\u00e9. Sur Odoo 19.0, cela repr\u00e9sente une requ\u00eate JSON-2 par ordre de fabrication :<\/p>\n\n<\/div><\/article>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group ind-prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p>\u00ab\u00a0<code> POST \/json\/2\/mrp.workorder\/write Authorization: bearer &lt;api-key&gt; {\"ids\": [4711], \"vals\": {\"date_start\": \"2026-11-03 06:00:00\", \"date_finished\": \"2026-11-03 09:30:00\", \"workcenter_id\": 7}} <\/code>\u00ab\u00a0<\/p>\n\n\n<p>JSON-2 re\u00e7oit chaque argument de m\u00e9thode par son nom, ainsi que <code>ids<\/code> et <code>context<\/code> : l\u2019argument de <code>write(vals)<\/code> est donc transmis sous la cl\u00e9 <code>vals<\/code>. Sur les versions 16.0 \u00e0 18.0, le m\u00eame appel passe par <code>execute_kw(db, uid, key, 'mrp.workorder', 'write', [[4711], vals])<\/code> via XML-RPC ou JSON-RPC. En 16.0, les cl\u00e9s sont <code>date_planned_start<\/code> et <code>date_planned_finished<\/code>. Les dates et heures sont transmises en UTC. Quelques r\u00e8gles permettent de fiabiliser l\u2019\u00e9criture :<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li>Envoyez les deux dates dans le m\u00eame appel.<\/li>\n\n\n<li>N\u2019ajoutez <code>workcenter_id<\/code> que si le moteur a choisi une machine de remplacement.<\/li>\n\n\n<li>Modifiez uniquement les champs d\u2019ordonnancement, jamais les quantit\u00e9s ni les nomenclatures.<\/li>\n\n<\/ul>\n\n\n<p>L\u2019\u00e9criture des dates d\u00e9place la r\u00e9servation du poste de charge dans Odoo. Les vues de planification d\u2019Odoo affichent ainsi le planning de SkyPlanner.<\/p>\n\n\n<p><strong>Remont\u00e9e des donn\u00e9es de l\u2019atelier vers Odoo.<\/strong> Les op\u00e9rateurs enregistrent leur travail dans SkyPlanner Mobile Confirmations. Pour chaque confirmation, l\u2019int\u00e9gration appelle <code>create<\/code> sur <code>mrp.workcenter.productivity<\/code> (JSON-2 : <code>POST \/json\/2\/mrp.workcenter.productivity\/create<\/code> avec <code>vals_list<\/code>). Elle renseigne <code>workorder_id<\/code>, <code>workcenter_id<\/code>, <code>date_start<\/code>, <code>date_end<\/code> et un <code>loss_id<\/code> de type Productive. Les temps et les co\u00fbts de main-d\u2019\u0153uvre sont alors enregistr\u00e9s dans Odoo.<\/p>\n\n\n<p>Lorsqu\u2019une op\u00e9ration est termin\u00e9e, l\u2019int\u00e9gration renseigne la quantit\u00e9 produite et appelle <code>button_finish<\/code> sur l\u2019ordre de fabrication. Une fois le dernier ordre de fabrication termin\u00e9, l\u2019ordre de production est pr\u00eat pour l\u2019appel \u00e0 <code>button_mark_done<\/code>. Chaque confirmation n\u2019est enregistr\u00e9e qu\u2019une fois, et l\u2019identifiant de son enregistrement Odoo est conserv\u00e9 avec le relev\u00e9 de temps SkyPlanner. Ainsi, une nouvelle tentative d\u2019envoi du webhook ne cr\u00e9e jamais de second Time Log.<\/p>\n\n\n<p>Dans les usines qui utilisent l\u2019application Enterprise Shop Floor, le flux est invers\u00e9 : SkyPlanner lit l\u2019\u00e9tat des ordres de fabrication et <code>qty_produced<\/code>, puis Autopilot recalcule automatiquement le planning lorsque la production \u00e9volue.<\/p>\n\n\n<p><strong>Syst\u00e8me ma\u00eetre.<\/strong> Consignez les r\u00e8gles par \u00e9crit avant la mise en production :<\/p>\n\n\n<figure class=\"wp-block-table ind-table\"><table><thead><tr><th>Donn\u00e9es<\/th><th>Syst\u00e8me ma\u00eetre<\/th><\/tr><\/thead><tbody><tr><td>Produits, nomenclatures, op\u00e9rations, quantit\u00e9s, \u00e9tat des ordres de production<\/td><td>Odoo<\/td><\/tr><tr><td>S\u00e9quencement des ordres de fabrication, heures de d\u00e9but et de fin, choix du poste de charge<\/td><td>SkyPlanner<\/td><\/tr><tr><td>Matrice des temps de changement de s\u00e9rie, besoins en outils et en op\u00e9rateurs, ressources alternatives<\/td><td>SkyPlanner<\/td><\/tr><tr><td>Calendriers des postes de charge et Time Off<\/td><td>Un seul syst\u00e8me, choisi lors du cadrage<\/td><\/tr><tr><td>Time Logs, stocks et calcul des co\u00fbts<\/td><td>Odoo, aliment\u00e9 par les confirmations de SkyPlanner<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<p>Les planificateurs ne doivent plus utiliser les boutons Plan et Unplan d\u2019Odoo pour les ordres de production ordonnanc\u00e9s par SkyPlanner. Sinon, Odoo r\u00e9serve ses propres cr\u00e9neaux \u00e0 la place des dates d\u00e9finies par SkyPlanner.<\/p>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section ind-sec--alt\" id=\"typical-project-steps\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head ind-head--prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Les \u00e9tapes habituelles du projet<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group ind-prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p>La mise en \u0153uvre s\u2019ach\u00e8ve g\u00e9n\u00e9ralement en quelques semaines apr\u00e8s le d\u00e9but de l\u2019accompagnement. Au pr\u00e9alable, l\u2019essai gratuit de 30 jours s\u2019appuie sur des exports CSV de vos propres donn\u00e9es Odoo. Le projet comprend ensuite :<\/p>\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Correspondance des donn\u00e9es de base :<\/strong> mod\u00e8les et champs Odoo par version (v\u00e9rifiez <code>\/doc<\/code> ou <code>fields_get<\/code>), unit\u00e9s de mesure et syst\u00e8me charg\u00e9 de g\u00e9rer les calendriers et Time Off.<\/li>\n\n\n<li><strong>Fiabilisation des donn\u00e9es :<\/strong> calendriers des postes de charge, Setup Time et Cleanup Time, et passage des dur\u00e9es de Computed \u00e0 Fixed pour les op\u00e9rations des nomenclatures.<\/li>\n\n\n<li><strong>Chargement initial :<\/strong> produits, postes de charge et leurs calendriers, nomenclatures et leurs op\u00e9rations.<\/li>\n\n\n<li><strong>Synchronisation des ordres et des commandes fournisseurs :<\/strong> ordres de production confirm\u00e9s et en cours avec leurs ordres de fabrication, ainsi que les lignes <code>purchase.order<\/code> avec leurs dates de r\u00e9ception pr\u00e9vues.<\/li>\n\n\n<li><strong>R\u00e9\u00e9criture du planning :<\/strong> dates et postes de charge sur <code>mrp.workorder<\/code>, avec rotation des cl\u00e9s API c\u00f4t\u00e9 Odoo.<\/li>\n\n\n<li><strong>Confirmations de l\u2019atelier :<\/strong> retour des Time Logs et des cl\u00f4tures d\u2019ordres de fabrication vers Odoo.<\/li>\n\n\n<li><strong>Tests en parall\u00e8le du planning actuel,<\/strong> puis mise en production.<\/li>\n\n<\/ol>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section\" id=\"odoo-pitfalls\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head ind-head--prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Les pi\u00e8ges \u00e0 \u00e9viter dans Odoo<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group ind-prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Champs de date renomm\u00e9s.<\/strong> Jusqu\u2019\u00e0 la version 16.0, <code>date_planned_start<\/code> et <code>date_planned_finished<\/code> contenaient les dates pr\u00e9vues, et <code>date_start<\/code>\/<code>date_finished<\/code> les dates r\u00e9elles. \u00c0 partir de la version 17.0, <code>date_start<\/code> et <code>date_finished<\/code> correspondent aux dates pr\u00e9vues. Une correspondance reprise d\u2019un projet en 16.0 interpr\u00e8te les dates r\u00e9elles comme des dates pr\u00e9vues sur 17+, sans signaler d\u2019erreur.<\/li>\n\n\n<li><strong>Les dates des ordres de fabrication correspondent \u00e0 des r\u00e9servations.<\/strong> En 19.0, <code>date_start<\/code> et <code>date_finished<\/code> sur <code>mrp.workorder<\/code> sont calcul\u00e9s \u00e0 partir d\u2019un enregistrement <code>resource.calendar.leaves<\/code> (<code>leave_id<\/code>) dans le calendrier du poste de charge. \u00c9crire les dates sur l\u2019ordre de fabrication met \u00e0 jour cette r\u00e9servation. N\u2019\u00e9crivez jamais directement dans la table des absences.<\/li>\n\n\n<li><strong>Les ordres de fabrication d\u00e9marr\u00e9s bloquent la d\u00e9planification.<\/strong> Odoo refuse de d\u00e9planifier un ordre de production lorsque \u00ab Some work orders have already started \u00bb (certains ordres de fabrication ont d\u00e9j\u00e0 d\u00e9marr\u00e9). Lors de la r\u00e9\u00e9criture, ignorez les ordres de fabrication \u00e0 l\u2019\u00e9tat <code>progress<\/code> ou <code>done<\/code> et ne d\u00e9placez que ceux qui n\u2019ont pas d\u00e9marr\u00e9.<\/li>\n\n\n<li><strong>Des dur\u00e9es qui \u00e9voluent.<\/strong> Les op\u00e9rations r\u00e9gl\u00e9es sur Computed tirent leur dur\u00e9e des derniers ordres de fabrication (10 par d\u00e9faut), avec application du coefficient Time Efficiency. R\u00e9glez-les sur Fixed pour l\u2019essai, ou acceptez que les donn\u00e9es d\u2019entr\u00e9e \u00e9voluent. Les op\u00e9rations sont d\u00e9finies dans chaque nomenclature, sans r\u00e9f\u00e9rentiel commun de gammes de fabrication : chaque nomenclature doit donc \u00eatre fiabilis\u00e9e s\u00e9par\u00e9ment.<\/li>\n\n\n<li><strong>Des calendriers mal configur\u00e9s.<\/strong> Chaque poste de charge doit disposer d\u2019un calendrier d\u2019horaires de travail. Le planificateur d\u2019Odoo recherche un cr\u00e9neau jusqu\u2019\u00e0 700 jours \u00e0 l\u2019avance, puis s\u2019arr\u00eate avec le message \u00ab\u00a0Impossible to plan the workorder\u00a0\u00bb (impossible de planifier l\u2019ordre de fabrication). Corrigez les calendriers avant le premier chargement.<\/li>\n\n\n<li><strong>Unit\u00e9s de mesure.<\/strong> <code>mrp.bom.line<\/code> poss\u00e8de son propre <code>product_uom_id<\/code>, qui peut diff\u00e9rer de l\u2019unit\u00e9 de stock du produit. Effectuez la conversion avant de v\u00e9rifier la disponibilit\u00e9 des mati\u00e8res.<\/li>\n\n<\/ul>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section ind-sec--alt\" id=\"who-configures-the-odoo-integration\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head ind-head--prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Qui configure l\u2019int\u00e9gration avec Odoo ?<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group ind-prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p>Chaque usine utilise Odoo \u00e0 sa mani\u00e8re : op\u00e9rations des nomenclatures, calendriers des postes de charge, postes de charge alternatifs et modules personnalis\u00e9s. L\u2019expertise de l\u2019\u00e9quipe SkyPlanner consiste \u00e0 d\u00e9finir les bonnes correspondances pour cette configuration.<\/p>\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>L\u2019\u00e9quipe SkyPlanner configure l\u2019int\u00e9gration<\/strong> en fonction de votre environnement Odoo lors de la mise en place, puis en assure le support apr\u00e8s la mise en production. L\u2019int\u00e9gration repose sur l\u2019API REST et les webhooks de SkyPlanner, ainsi que sur l\u2019API JSON-2 ou RPC d\u2019Odoo. C\u2019est la voie retenue par d\u00e9faut.<\/li>\n\n\n<li><strong>Votre partenaire Odoo peut participer.<\/strong> Il conna\u00eet votre configuration et vos modules personnalis\u00e9s et peut d\u00e9velopper l\u2019int\u00e9gration \u00e0 partir de la m\u00eame API REST document\u00e9e. Celle-ci permet de lire et d\u2019\u00e9crire les ordres, les produits, les mati\u00e8res, les \u00e9tapes de fabrication et les relev\u00e9s de temps. Elle utilise l\u2019authentification JWT et dispose d\u2019une documentation Swagger\/OpenAPI.<\/li>\n\n\n<li><strong>Vos propres d\u00e9veloppeurs<\/strong> peuvent faire de m\u00eame, g\u00e9n\u00e9ralement au moyen d\u2019un middleware l\u00e9ger aux c\u00f4t\u00e9s d\u2019Odoo, ou d\u2019un module sur Odoo.sh ou sur site. Une cl\u00e9 API suffit pour commencer (<a href=\"\/fr\/docs\/tutoriel-dintegration\/\">tutoriel d\u2019int\u00e9gration<\/a>), et l\u2019\u00e9quipe SkyPlanner vous accompagne si n\u00e9cessaire.<\/li>\n\n<\/ol>\n\n\n<p>Ce m\u00eame mod\u00e8le fonctionne en production avec d\u2019autres ERP. Chez <a href=\"\/fr\/customers\/laboratory-allied\/\">Laboratory &amp; Allied<\/a>, l\u2019\u00e9quipe informatique interne a r\u00e9alis\u00e9 l\u2019int\u00e9gration avec SAP Business One en grande partie de mani\u00e8re autonome, avec l\u2019aide de SkyPlanner. De son c\u00f4t\u00e9, <a href=\"\/fr\/customers\/utu\/\">UTU<\/a> utilise SkyPlanner aux c\u00f4t\u00e9s de son ERP NetSuite.<\/p>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section\" id=\"why-the-integration-pays-off\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head ind-head--prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Ce que l\u2019int\u00e9gration apporte au quotidien<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group ind-prose\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<p>C\u2019est la r\u00e9\u00e9criture des donn\u00e9es dans Odoo qui donne \u00e0 l\u2019int\u00e9gration sa valeur au quotidien. Une fois ce flux en place :<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Les ordres de fabrication Odoo disposent de dates concr\u00e8tes.<\/strong> Le moteur Arcturus AI ordonnance tous les ordres de production ouverts en quelques secondes. Les dates et les postes de travail qu\u2019il choisit sont enregistr\u00e9s dans <code>mrp.workorder<\/code> et affich\u00e9s dans les vues de planification d\u2019Odoo.<\/li>\n\n\n<li><strong>Plus de r\u00e9ordonnancement manuel.<\/strong> Autopilot recalcule automatiquement le planning lorsque la production change, et le webhook transmet les nouvelles dates \u00e0 Odoo.<\/li>\n\n\n<li><strong>L\u2019atelier assure le retour d\u2019information.<\/strong> Les op\u00e9rateurs enregistrent leur travail sur t\u00e9l\u00e9phone ou tablette avec Mobile Confirmations, Production Timer et Quick Log Mode. Les Time Logs sont transmis \u00e0 Odoo pour la gestion des stocks et le calcul des co\u00fbts. L\u2019ordonnancement et l\u2019ex\u00e9cution sont r\u00e9unis dans un seul outil, aussi bien avec Community qu\u2019avec Enterprise.<\/li>\n\n\n<li><strong>Le planning int\u00e8gre des contraintes qu\u2019Odoo ne g\u00e8re pas.<\/strong> Une matrice des temps de changement de s\u00e9rie d\u00e9finit, pour chaque paire de produits, les temps de transition selon leur ordre de passage. Les outils sont des ressources \u00e0 capacit\u00e9 finie partag\u00e9es entre les machines, et une op\u00e9ration peut mobiliser plusieurs op\u00e9rateurs simultan\u00e9ment. Le moteur se tourne vers des machines ou du personnel de remplacement lorsque la ressource principale est indisponible. Les dates r\u00e9\u00e9crites dans <code>mrp.workorder<\/code> respectent toutes ces contraintes.<\/li>\n\n\n<li><strong>Les arriv\u00e9es de mati\u00e8res guident le planning.<\/strong> Le stock disponible et les commandes fournisseurs ouvertes dans Odoo alimentent l\u2019ordonnancement en fonction des mati\u00e8res. Les composants command\u00e9s sont consid\u00e9r\u00e9s comme disponibles \u00e0 la date de livraison de la commande fournisseur, et le stock est mis \u00e0 jour lorsque celle-ci passe au statut Delivered. Pour chaque op\u00e9ration, la disponibilit\u00e9 des mati\u00e8res est v\u00e9rifi\u00e9e en tenant compte du stock en entrep\u00f4t et des livraisons attendues.<\/li>\n\n<\/ul>\n\n\n<p>Vous pouvez \u00e9valuer le planning avant tout travail d\u2019int\u00e9gration. Lancez l\u2019<a href=\"\/fr\/essai\/\">essai gratuit de 30 jours<\/a> \u00e0 partir d\u2019exports CSV et retrouvez vos propres ordres de fabrication Odoo sur le diagramme de Gantt, avec jusqu\u2019\u00e0 20 postes de travail et sans carte bancaire. Les tarifs commencent \u00e0 199 \u20ac par mois, avec 5 postes de travail inclus, une facturation mensuelle et une r\u00e9siliation possible \u00e0 tout moment. L\u2019int\u00e9gration fait l\u2019objet d\u2019un devis pr\u00e9alable adapt\u00e9 \u00e0 vos processus et \u00e0 vos besoins, pr\u00e9sent\u00e9 avec votre abonnement : vous connaissez ainsi le co\u00fbt total avant de commencer. D\u00e9couvrez les <a href=\"\/fr\/fonctionnalites\/\">fonctionnalit\u00e9s<\/a> et nos <a href=\"\/fr\/temoignages-clients\/\">clients<\/a>, ou <a href=\"\/fr\/contacter-les-ventes\/\">r\u00e9servez une d\u00e9mo<\/a>.<\/p>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section ind-sec--alt\" id=\"customers\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head fx-head--center\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Les avis des industriels sur SkyPlanner<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group ind-custs\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<article class=\"wp-block-group ind-cust ind-cust--photo\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"ind-cust__photo\"><img src=\"\/wp-content\/themes\/generatepress-child\/assets\/img\/customers-v1\/22-d7d6bcdf-ecf7-48d2-9750-66253ccf9aa7-crop.jpg\" alt=\"Kalle Kalliom\u00e4ki, sp\u00e9cialiste de la cha\u00eene logistique chez UTU, dans l\u2019atelier de fabrication de tableaux \u00e9lectriques \u00e0 Ulvila\" loading=\"lazy\" decoding=\"async\"><\/figure><div class=\"ind-cust__top\"><img class=\"ind-cust__logo\" src=\"\/wp-content\/themes\/generatepress-child\/assets\/img\/customers-v1\/23-beca6df2-3fa2-4315-80e8-7c38a9e3d2e1.png\" alt=\"UTU\" width=\"69\" height=\"59\" loading=\"lazy\" decoding=\"async\"><p class=\"ind-cust__metric\"><b>2 h<\/b><span>gagn\u00e9es chaque semaine<\/span><\/p><\/div>\n\n\n<p class=\"ind-cust__quote\">\u00ab Gr\u00e2ce \u00e0 SkyPlanner, notre planification de la production est pass\u00e9e des feuilles de calcul Excel \u00e0 l\u2019optimisation en temps r\u00e9el. \u00bb<\/p>\n\n\n<p class=\"ind-cust__who\"><b>Kalle Kalliom\u00e4ki, sp\u00e9cialiste de la cha\u00eene logistique<\/b><br>UTU \u00b7 Tableaux \u00e9lectriques et appareillage de commutation<\/p>\n\n\n<p class=\"ind-cust__result\">La planification de la production permet de gagner 2 heures de travail chaque semaine, et une nouvelle file d\u2019op\u00e9rations est transmise \u00e0 la ligne en quelques secondes.<\/p>\n\n\n<p class=\"ind-cust__go\"><a href=\"\/fr\/customers\/utu\/\">Lire le t\u00e9moignage d\u2019UTU<\/a><svg class=\"ind-cust__arrow\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M4 10h11M11 5l5 5-5 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/p>\n\n<\/div><\/article>\n\n\n<article class=\"wp-block-group ind-cust ind-cust--photo\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"ind-cust__photo\"><img src=\"\/wp-content\/themes\/generatepress-child\/assets\/img\/customers-v1\/08-35ce8dff-f7d0-4cf3-9e71-0fe7e7ff88d3.jpg\" alt=\"Op\u00e9rateurs en tenue de salle blanche sur une ligne de remplissage de flacons dans l\u2019usine pharmaceutique de Laboratory &amp; Allied \u00e0 Nairobi\" loading=\"lazy\" decoding=\"async\"><\/figure><div class=\"ind-cust__top\"><img class=\"ind-cust__logo\" src=\"\/wp-content\/themes\/generatepress-child\/assets\/img\/customers-v1\/09-8c2deb57-ac1c-468b-ad64-fafb9debd7eb.png\" alt=\"Laboratory &amp; Allied\" width=\"71\" height=\"44\" loading=\"lazy\" decoding=\"async\"><p class=\"ind-cust__metric\"><b>+90%<\/b><span>d\u2019efficacit\u00e9 en production<\/span><\/p><\/div>\n\n\n<p class=\"ind-cust__quote\">\u00ab L\u2019efficacit\u00e9 en production a augment\u00e9 de 90%. \u00bb<\/p>\n\n\n<p class=\"ind-cust__who\"><b>Abdul Rucyinga, responsable informatique<\/b><br>Laboratory &amp; Allied \u00b7 Industrie pharmaceutique<\/p>\n\n\n<p class=\"ind-cust__result\">L\u2019efficacit\u00e9 en production a augment\u00e9 de 90%. Il faut moins de 30 minutes pour \u00e9tablir un planning optimis\u00e9 sur trois mois pour l\u2019ensemble des postes de charge.<\/p>\n\n\n<p class=\"ind-cust__go\"><a href=\"\/fr\/customers\/laboratory-allied\/\">Lire le t\u00e9moignage de Laboratory &amp; Allied<\/a><svg class=\"ind-cust__arrow\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M4 10h11M11 5l5 5-5 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/p>\n\n<\/div><\/article>\n\n\n<article class=\"wp-block-group ind-cust ind-cust--photo\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"ind-cust__photo\"><img src=\"\/wp-content\/themes\/generatepress-child\/assets\/img\/customers-v1\/25-73c14230-f628-43c7-9890-005acea9125f.jpg\" alt=\"Hannu Ryyn\u00e4nen, directeur g\u00e9n\u00e9ral de Mamec, dans l\u2019atelier de production de l\u2019entreprise \u00e0 Lohja\" loading=\"lazy\" decoding=\"async\"><\/figure><div class=\"ind-cust__top\"><img class=\"ind-cust__logo\" src=\"\/wp-content\/themes\/generatepress-child\/assets\/img\/customers-v1\/26-733d2728-780d-4b41-b834-e23619dad50c.png\" alt=\"Mamec\" width=\"106\" height=\"20\" loading=\"lazy\" decoding=\"async\"><p class=\"ind-cust__metric\"><b>1 000 et plus<\/b><span>ordres de fabrication ordonnanc\u00e9s automatiquement<\/span><\/p><\/div>\n\n\n<p class=\"ind-cust__quote\">\u00ab Nous ma\u00eetrisons la production autrement, et notre connaissance des capacit\u00e9s est d\u00e9sormais d\u2019un tout autre niveau. \u00bb<\/p>\n\n\n<p class=\"ind-cust__who\"><b>Hannu Ryyn\u00e4nen, directeur g\u00e9n\u00e9ral<\/b><br>Mamec \u00b7 M\u00e9langeurs industriels, pompes et sous-traitance de haute technologie<\/p>\n\n\n<p class=\"ind-cust__result\">Des milliers d\u2019ordres de fabrication sont ordonnanc\u00e9s automatiquement, et toute l\u2019entreprise dispose d\u2019une vue en temps r\u00e9el de la production.<\/p>\n\n\n<p class=\"ind-cust__go\"><a href=\"\/fr\/customers\/mamec\/\">Lire le t\u00e9moignage de Mamec<\/a><svg class=\"ind-cust__arrow\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M4 10h11M11 5l5 5-5 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/p>\n\n<\/div><\/article>\n\n\n<article class=\"wp-block-group ind-cust ind-cust--photo\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<figure class=\"ind-cust__photo\"><img src=\"\/wp-content\/themes\/generatepress-child\/assets\/img\/customers-v1\/02-3a675468-ac30-4369-b781-b03bbf3f9d21.jpg\" alt=\"Vue a\u00e9rienne de l\u2019usine Piristeel de fabrication d\u2019\u00e9quipements de s\u00e9curit\u00e9 pour toitures \u00e0 Kauhava\" loading=\"lazy\" decoding=\"async\"><\/figure><div class=\"ind-cust__top\"><img class=\"ind-cust__logo\" src=\"\/wp-content\/themes\/generatepress-child\/assets\/img\/customers-v1\/07-cec60b32-3b28-48a8-9520-1f12fd8061ee.png\" alt=\"Piristeel\" width=\"96\" height=\"46\" loading=\"lazy\" decoding=\"async\"><p class=\"ind-cust__metric\"><b>99,2%<\/b><span>de respect des d\u00e9lais de livraison<\/span><\/p><\/div>\n\n\n<p class=\"ind-cust__quote\">\u00ab SkyPlanner nous a donn\u00e9 la visibilit\u00e9 n\u00e9cessaire pour rep\u00e9rer les goulots d\u2019\u00e9tranglement et a clarifi\u00e9 le pilotage de la production. \u00bb<\/p>\n\n\n<p class=\"ind-cust__who\"><b>Toni Tuori, responsable de production<\/b><br>Piristeel \u00b7 \u00c9quipements de s\u00e9curit\u00e9 pour toitures et syst\u00e8mes d\u2019\u00e9vacuation des eaux pluviales<\/p>\n\n\n<p class=\"ind-cust__result\">Le taux de respect des d\u00e9lais de livraison a atteint 99,2% cette ann\u00e9e, et l\u2019ordonnancement permet de gagner jusqu\u2019\u00e0 quatre heures de travail par jour.<\/p>\n\n\n<p class=\"ind-cust__go\"><a href=\"\/fr\/customers\/piristeel\/\">Lire le t\u00e9moignage de Piristeel<\/a><svg class=\"ind-cust__arrow\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M4 10h11M11 5l5 5-5 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/p>\n\n<\/div><\/article>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n\n<section class=\"wp-block-group sp-section\" id=\"faq\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group sp-container\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<div class=\"wp-block-group fx-head fx-head--center\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<h2 class=\"wp-block-heading\">Questions fr\u00e9quentes<\/h2>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group sp-faq fx-faq\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>L\u2019int\u00e9gration fonctionne-t-elle avec Odoo Online ?<\/summary>\n<p class=\"sp-faq__a\">Oui, avec l\u2019offre Custom, via l\u2019API externe. Les offres One App Free et Standard ne donnent pas acc\u00e8s \u00e0 l\u2019API externe, et Standard ne permet pas d\u2019utiliser de modules personnalis\u00e9s. Avec ces offres, les \u00e9changes se limitent donc \u00e0 l\u2019import et \u00e0 l\u2019export de fichiers CSV\/XLSX.<\/p>\n<\/details>\n\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>Faut-il utiliser JSON-2 ou XML-RPC ?<\/summary>\n<p class=\"sp-faq__a\">Utilisez JSON-2 avec Odoo 19.0 et les versions ult\u00e9rieures. XML-RPC et JSON-RPC restent n\u00e9cessaires pour les versions 16.0 \u00e0 18.0, mais leur suppression est pr\u00e9vue dans Odoo 22.<\/p>\n<\/details>\n\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>Comment le planning est-il renvoy\u00e9 dans Odoo ?<\/summary>\n<p class=\"sp-faq__a\">Par la m\u00e9thode ORM <code>write<\/code> sur chaque <code>mrp.workorder<\/code> : <code>POST \/json\/2\/mrp.workorder\/write<\/code> avec <code>ids<\/code> et <code>vals<\/code> en 19.0, ou <code>execute_kw<\/code> avec <code>write<\/code> via XML-RPC ou JSON-RPC sur les versions 16.0 \u00e0 18.0. Les valeurs transmises sont <code>date_start<\/code>, <code>date_finished<\/code> (<code>date_planned_start<\/code> et <code>date_planned_finished<\/code> en 16.0) et, s\u2019il a chang\u00e9, <code>workcenter_id<\/code>. Odoo d\u00e9place en cons\u00e9quence la r\u00e9servation du poste de charge : ses vues de planification affichent ainsi les dates de SkyPlanner.<\/p>\n<\/details>\n\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>Comment les confirmations des op\u00e9rateurs sont-elles transmises \u00e0 Odoo ?<\/summary>\n<p class=\"sp-faq__a\">Sous forme de Time Logs : l\u2019int\u00e9gration cr\u00e9e des enregistrements <code>mrp.workcenter.productivity<\/code> rattach\u00e9s \u00e0 l\u2019ordre de fabrication, avec un d\u00e9but, une fin et un motif de perte Productive, puis appelle <code>button_finish<\/code> lorsque l\u2019op\u00e9ration est termin\u00e9e. Chaque confirmation n\u2019est enregistr\u00e9e qu\u2019une fois : les nouvelles tentatives ne comptabilisent donc pas le temps en double.<\/p>\n<\/details>\n\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>Qui assure la maintenance de l\u2019int\u00e9gration apr\u00e8s la mise en service ?<\/summary>\n<p class=\"sp-faq__a\">L\u2019\u00e9quipe SkyPlanner configure l\u2019int\u00e9gration pendant la phase de d\u00e9marrage et en assure le support apr\u00e8s la mise en service, y compris les adaptations n\u00e9cessaires lorsque votre configuration Odoo \u00e9volue. Si votre partenaire ou vos d\u00e9veloppeurs r\u00e9alisent l\u2019int\u00e9gration, ils s\u2019appuient sur l\u2019API REST document\u00e9e et sur la <a href=\"\/fr\/docs\/tutoriel-dintegration\/\">documentation SkyPlanner<\/a>. L\u2019\u00e9quipe les accompagne au besoin.<\/p>\n<\/details>\n\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>Que deviennent les ordres de fabrication d\u00e9j\u00e0 commenc\u00e9s ?<\/summary>\n<p class=\"sp-faq__a\">Ne les modifiez pas lors du renvoi des donn\u00e9es dans Odoo. Odoo bloque la d\u00e9planification d\u2019un MO d\u00e8s qu\u2019un ordre de fabrication est en cours ou termin\u00e9. SkyPlanner lit leur \u00e9tat et leur avancement, puis ordonnance le travail restant en tenant compte de ces ordres.<\/p>\n<\/details>\n\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>Combien de temps prend l\u2019int\u00e9gration avec Odoo ?<\/summary>\n<p class=\"sp-faq__a\">La mise en \u0153uvre est normalement achev\u00e9e en quelques semaines apr\u00e8s le d\u00e9but de l\u2019accompagnement. Commencez par l\u2019essai de 30 jours \u00e0 partir d\u2019exports CSV : vous validez ainsi le planning avec vos propres donn\u00e9es Odoo avant le d\u00e9but des travaux sur l\u2019API.<\/p>\n<\/details>\n\n<\/div><\/div>\n\n<\/div><\/div>\n\n<\/div><\/section>\n\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Int\u00e9grations \/ ERP \/ Odoo Guide d\u2019int\u00e9gration d\u2019Odoo \u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production Ce guide explique aux partenaires Odoo, aux d\u00e9veloppeurs et aux responsables informatiques comment relier Odoo Manufacturing \u00e0 SkyPlanner APS. Pour comprendre l\u2019int\u00e9r\u00eat de cette int\u00e9gration et ce que fait d\u00e9j\u00e0 le bouton Plan d\u2019Odoo, consultez la page sur l\u2019ordonnancement &#8230; <a title=\"Guide d\u2019int\u00e9gration d\u2019Odoo \u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production\" class=\"read-more\" href=\"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/\" aria-label=\"Read more about Guide d\u2019int\u00e9gration d\u2019Odoo \u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production\">Lire plus<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":100825,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-101212","page","type-page","status-publish"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.3 (Yoast SEO v28.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Guide d\u2019int\u00e9gration Odoo : ordonnancement APS | SkyPlanner<\/title>\n<meta name=\"description\" content=\"Reliez SkyPlanner APS \u00e0 Odoo Manufacturing : API JSON-2\/XML-RPC, correspondance mrp.workorder, retour des dates, webhooks et pi\u00e8ges propres \u00e0 Odoo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guide d\u2019int\u00e9gration d\u2019Odoo \u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production\" \/>\n<meta property=\"og:description\" content=\"Reliez SkyPlanner APS \u00e0 Odoo Manufacturing : API JSON-2\/XML-RPC, correspondance mrp.workorder, retour des dates, webhooks et pi\u00e8ges propres \u00e0 Odoo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/\" \/>\n<meta property=\"og:site_name\" content=\"SkyPlanner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/integrations\\\/erp\\\/odoo\\\/guide-dintegration\\\/\",\"url\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/integrations\\\/erp\\\/odoo\\\/guide-dintegration\\\/\",\"name\":\"Guide d\u2019int\u00e9gration Odoo : ordonnancement APS | SkyPlanner\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/#website\"},\"datePublished\":\"2026-10-17T13:00:38+00:00\",\"description\":\"Reliez SkyPlanner APS \u00e0 Odoo Manufacturing : API JSON-2\\\/XML-RPC, correspondance mrp.workorder, retour des dates, webhooks et pi\u00e8ges propres \u00e0 Odoo.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/integrations\\\/erp\\\/odoo\\\/guide-dintegration\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/integrations\\\/erp\\\/odoo\\\/guide-dintegration\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/integrations\\\/erp\\\/odoo\\\/guide-dintegration\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Int\u00e9grations des logiciels ERP et MES avec SkyPlanner\",\"item\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/integrations\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SkyPlanner APS pour votre ERP\",\"item\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/integrations\\\/erp\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"SkyPlanner APS pour Odoo : ordonnancement de production et int\u00e9gration\",\"item\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/integrations\\\/erp\\\/odoo\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Guide d\u2019int\u00e9gration d\u2019Odoo \u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/\",\"name\":\"SkyPlanner\",\"description\":\"AI-powered production scheduling and planning software\",\"publisher\":{\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/#organization\",\"name\":\"Skycode Oy\",\"url\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/skyplanner.ai\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/Skyplanner-logo-2.svg\",\"contentUrl\":\"https:\\\/\\\/skyplanner.ai\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/Skyplanner-logo-2.svg\",\"width\":223,\"height\":43,\"caption\":\"SkyPlanner APS\"},\"image\":{\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"legalName\":\"Skycode Oy\",\"alternateName\":[\"Skycode\",\"SkyPlanner\",\"SkyPlanner APS\"],\"description\":\"Skycode Oy is the Finnish software company that develops and publishes SkyPlanner APS, AI production scheduling and advanced planning and scheduling (APS) software for manufacturers worldwide. Founded in 1997 as a sole proprietorship and incorporated as Skycode Oy in 2008.\",\"foundingDate\":\"1997\",\"taxID\":\"2204947-0\",\"vatID\":\"FI22049470\",\"telephone\":\"+358407000002\",\"email\":\"support@skyplanner.ai\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Rantakatu 2 G 11\",\"postalCode\":\"65100\",\"addressLocality\":\"Vaasa\",\"addressCountry\":\"FI\"},\"brand\":{\"@type\":\"Brand\",\"name\":\"SkyPlanner\"},\"knowsAbout\":[\"Production Scheduling\",\"Advanced Planning and Scheduling\",\"Manufacturing AI\",\"Finite Capacity Scheduling\",\"ERP Integration\",\"MES Integration\"],\"areaServed\":\"Worldwide\",\"contactPoint\":[{\"@type\":\"ContactPoint\",\"contactType\":\"sales\",\"url\":\"https:\\\/\\\/skyplanner.ai\\\/contact-sales\\\/\",\"areaServed\":\"Worldwide\"},{\"@type\":\"ContactPoint\",\"contactType\":\"customer support\",\"email\":\"support@skyplanner.ai\",\"telephone\":\"+358407000002\",\"areaServed\":\"Worldwide\"}],\"sameAs\":[\"https:\\\/\\\/www.wikidata.org\\\/wiki\\\/Q141672132\",\"https:\\\/\\\/skycode.fi\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/skycodeoy\\\/\",\"https:\\\/\\\/www.finder.fi\\\/IT-konsultointi+IT-palvelut\\\/Skycode+Oy\\\/Vaasa\\\/yhteystiedot\\\/1934882\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Guide d\u2019int\u00e9gration Odoo : ordonnancement APS | SkyPlanner","description":"Reliez SkyPlanner APS \u00e0 Odoo Manufacturing : API JSON-2\/XML-RPC, correspondance mrp.workorder, retour des dates, webhooks et pi\u00e8ges propres \u00e0 Odoo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/","og_locale":"fr_FR","og_type":"article","og_title":"Guide d\u2019int\u00e9gration d\u2019Odoo \u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production","og_description":"Reliez SkyPlanner APS \u00e0 Odoo Manufacturing : API JSON-2\/XML-RPC, correspondance mrp.workorder, retour des dates, webhooks et pi\u00e8ges propres \u00e0 Odoo.","og_url":"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/","og_site_name":"SkyPlanner","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/","url":"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/","name":"Guide d\u2019int\u00e9gration Odoo : ordonnancement APS | SkyPlanner","isPartOf":{"@id":"https:\/\/skyplanner.ai\/fr\/#website"},"datePublished":"2026-10-17T13:00:38+00:00","description":"Reliez SkyPlanner APS \u00e0 Odoo Manufacturing : API JSON-2\/XML-RPC, correspondance mrp.workorder, retour des dates, webhooks et pi\u00e8ges propres \u00e0 Odoo.","breadcrumb":{"@id":"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/guide-dintegration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/skyplanner.ai\/fr\/"},{"@type":"ListItem","position":2,"name":"Int\u00e9grations des logiciels ERP et MES avec SkyPlanner","item":"https:\/\/skyplanner.ai\/fr\/integrations\/"},{"@type":"ListItem","position":3,"name":"SkyPlanner APS pour votre ERP","item":"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/"},{"@type":"ListItem","position":4,"name":"SkyPlanner APS pour Odoo : ordonnancement de production et int\u00e9gration","item":"https:\/\/skyplanner.ai\/fr\/integrations\/erp\/odoo\/"},{"@type":"ListItem","position":5,"name":"Guide d\u2019int\u00e9gration d\u2019Odoo \u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production"}]},{"@type":"WebSite","@id":"https:\/\/skyplanner.ai\/fr\/#website","url":"https:\/\/skyplanner.ai\/fr\/","name":"SkyPlanner","description":"AI-powered production scheduling and planning software","publisher":{"@id":"https:\/\/skyplanner.ai\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/skyplanner.ai\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/skyplanner.ai\/fr\/#organization","name":"Skycode Oy","url":"https:\/\/skyplanner.ai\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/skyplanner.ai\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/skyplanner.ai\/wp-content\/uploads\/2022\/05\/Skyplanner-logo-2.svg","contentUrl":"https:\/\/skyplanner.ai\/wp-content\/uploads\/2022\/05\/Skyplanner-logo-2.svg","width":223,"height":43,"caption":"SkyPlanner APS"},"image":{"@id":"https:\/\/skyplanner.ai\/fr\/#\/schema\/logo\/image\/"},"legalName":"Skycode Oy","alternateName":["Skycode","SkyPlanner","SkyPlanner APS"],"description":"Skycode Oy is the Finnish software company that develops and publishes SkyPlanner APS, AI production scheduling and advanced planning and scheduling (APS) software for manufacturers worldwide. Founded in 1997 as a sole proprietorship and incorporated as Skycode Oy in 2008.","foundingDate":"1997","taxID":"2204947-0","vatID":"FI22049470","telephone":"+358407000002","email":"support@skyplanner.ai","address":{"@type":"PostalAddress","streetAddress":"Rantakatu 2 G 11","postalCode":"65100","addressLocality":"Vaasa","addressCountry":"FI"},"brand":{"@type":"Brand","name":"SkyPlanner"},"knowsAbout":["Production Scheduling","Advanced Planning and Scheduling","Manufacturing AI","Finite Capacity Scheduling","ERP Integration","MES Integration"],"areaServed":"Worldwide","contactPoint":[{"@type":"ContactPoint","contactType":"sales","url":"https:\/\/skyplanner.ai\/contact-sales\/","areaServed":"Worldwide"},{"@type":"ContactPoint","contactType":"customer support","email":"support@skyplanner.ai","telephone":"+358407000002","areaServed":"Worldwide"}],"sameAs":["https:\/\/www.wikidata.org\/wiki\/Q141672132","https:\/\/skycode.fi\/","https:\/\/www.linkedin.com\/company\/skycodeoy\/","https:\/\/www.finder.fi\/IT-konsultointi+IT-palvelut\/Skycode+Oy\/Vaasa\/yhteystiedot\/1934882"]}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"betterdocs-category-thumb":false},"uagb_author_info":{"display_name":"Jussi M\u00e4ntyl\u00e4","author_link":"https:\/\/skyplanner.ai\/fr\/author\/jussi\/"},"uagb_comment_info":0,"uagb_excerpt":"Int\u00e9grations \/ ERP \/ Odoo Guide d\u2019int\u00e9gration d\u2019Odoo \u00e0 SkyPlanner APS pour l\u2019ordonnancement de la production Ce guide explique aux partenaires Odoo, aux d\u00e9veloppeurs et aux responsables informatiques comment relier Odoo Manufacturing \u00e0 SkyPlanner APS. Pour comprendre l\u2019int\u00e9r\u00eat de cette int\u00e9gration et ce que fait d\u00e9j\u00e0 le bouton Plan d\u2019Odoo, consultez la page sur l\u2019ordonnancement\u2026","_links":{"self":[{"href":"https:\/\/skyplanner.ai\/fr\/wp-json\/wp\/v2\/pages\/101212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skyplanner.ai\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/skyplanner.ai\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/fr\/wp-json\/wp\/v2\/comments?post=101212"}],"version-history":[{"count":0,"href":"https:\/\/skyplanner.ai\/fr\/wp-json\/wp\/v2\/pages\/101212\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/fr\/wp-json\/wp\/v2\/pages\/100825"}],"wp:attachment":[{"href":"https:\/\/skyplanner.ai\/fr\/wp-json\/wp\/v2\/media?parent=101212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}