{"id":101219,"date":"2026-10-17T13:00:38","date_gmt":"2026-10-17T13:00:38","guid":{"rendered":"https:\/\/skyplanner.ai\/?page_id=101219"},"modified":"2026-10-17T13:00:38","modified_gmt":"2026-10-17T13:00:38","slug":"guia-de-integracao","status":"publish","type":"page","link":"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/","title":{"rendered":"Guia de integra\u00e7\u00e3o do Odoo com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o"},"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=\"\/pt-pt\/integracoes\/\">Integra\u00e7\u00f5es<\/a> \/ <a href=\"\/pt-pt\/integracoes\/erp\/\">ERP<\/a> \/ Odoo<\/span><\/p>\n\n\n<h1 class=\"wp-block-heading fx-hero__title\">Guia de integra\u00e7\u00e3o do Odoo <span class=\"hl\">com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o<\/span><\/h1>\n\n\n<p class=\"fx-hero__sub\">Este guia mostra aos parceiros Odoo, programadores e respons\u00e1veis de TI como ligar o Odoo Manufacturing ao SkyPlanner APS. Para conhecer as vantagens para o neg\u00f3cio e o que o bot\u00e3o Plan do Odoo j\u00e1 faz, consulte a <a href=\"\/pt-pt\/integracoes\/erp\/odoo\/\">p\u00e1gina de programa\u00e7\u00e3o da produ\u00e7\u00e3o com o Odoo<\/a> e <a href=\"\/pt-pt\/integracoes\/erp\/odoo\/programacao-producao\/\">O Odoo permite programar a produ\u00e7\u00e3o respeitando a capacidade real das m\u00e1quinas e do pessoal?<\/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=\"\/pt-pt\/avaliacao\/\">Iniciar teste gratuito<\/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=\"\/pt-pt\/vendas-de-contacto\/\">Marcar uma demonstra\u00e7\u00e3o<\/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 Programa\u00e7\u00e3o da produ\u00e7\u00e3o<\/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=\"Diagrama de Gantt do SkyPlanner APS com tarefas programadas por centro de trabalho e uma lista de ordens em baixo.\"><\/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>O Odoo continua a ser o sistema de refer\u00eancia para produtos, listas de materiais, opera\u00e7\u00f5es, ordens de produ\u00e7\u00e3o, exist\u00eancias e c\u00e1lculo de custos. O SkyPlanner usa estes dados para criar a programa\u00e7\u00e3o com o seu motor Arcturus. A integra\u00e7\u00e3o com o Odoo funciona nos dois sentidos:<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li>S\u00e3o importadas ordens de produ\u00e7\u00e3o, ordens de fabrico, opera\u00e7\u00f5es das listas de materiais, centros de trabalho e encomendas a fornecedores.<\/li>\n\n\n<li>O in\u00edcio e o fim previstos e os centros de trabalho s\u00e3o gravados no Odoo em <code>mrp.workorder<\/code>.<\/li>\n\n\n<li>O progresso e os tempos registados s\u00e3o devolvidos ao Odoo como Time Logs.<\/li>\n\n\n<li>Os webhooks do SkyPlanner enviam as altera\u00e7\u00f5es \u00e0 programa\u00e7\u00e3o assim que ocorrem.<\/li>\n\n<\/ul>\n\n\n<p>Durante a implementa\u00e7\u00e3o inicial, a equipa SkyPlanner configura a integra\u00e7\u00e3o atrav\u00e9s da API externa padr\u00e3o do Odoo, adaptando-a \u00e0 sua vers\u00e3o, alojamento e personaliza\u00e7\u00f5es. Ap\u00f3s a entrada em produ\u00e7\u00e3o, continua a prestar suporte. Este guia destina-se a parceiros e programadores que queiram participar ou desenvolver a sua pr\u00f3pria integra\u00e7\u00e3o com a API REST documentada do SkyPlanner (<a href=\"https:\/\/integration.skyplanner.app\/api\/swagger\">refer\u00eancia da API<\/a>). O tratamento de produtos, materiais e encomendas a fornecedores est\u00e1 descrito na <a href=\"\/pt-pt\/docs\/tutorial-de-integracao\/\">documenta\u00e7\u00e3o p\u00fablica do 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\">Passo zero: verificar o plano e o alojamento do 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>Comece por identificar a instala\u00e7\u00e3o Odoo que o cliente utiliza. \u00c9 isso que determina a abordagem.<\/p>\n\n\n<figure class=\"wp-block-table ind-table ind-table--wide\"><table><thead><tr><th>Configura\u00e7\u00e3o<\/th><th>API externa<\/th><th>M\u00f3dulos personalizados<\/th><th>Abordagem pr\u00e1tica<\/th><\/tr><\/thead><tbody><tr><td>Odoo Online, One App Free ou Standard<\/td><td>N\u00e3o<\/td><td>N\u00e3o<\/td><td>CSV\/XLSX ou mudan\u00e7a para o plano Custom<\/td><\/tr><tr><td>Odoo Online, plano Custom<\/td><td>Sim<\/td><td>N\u00e3o<\/td><td>API externa<\/td><\/tr><tr><td>Odoo.sh (plano Custom)<\/td><td>Sim<\/td><td>Sim<\/td><td>API externa, m\u00f3dulo opcional<\/td><\/tr><tr><td>Instala\u00e7\u00e3o local, Community ou Enterprise<\/td><td>Sim<\/td><td>Sim<\/td><td>API externa, m\u00f3dulo opcional<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<p>A <a href=\"https:\/\/www.odoo.com\/documentation\/19.0\/developer\/reference\/external_api.html\">documenta\u00e7\u00e3o da API do Odoo<\/a> indica que o acesso \u00e0 API externa est\u00e1 &#8220;only available on Custom Odoo pricing plans&#8221; (dispon\u00edvel apenas nos planos Custom do Odoo), n\u00e3o nos planos One App Free ou Standard. A <a href=\"https:\/\/www.odoo.com\/pricing-plan\">p\u00e1gina de pre\u00e7os<\/a> descreve o Standard como alojado no Odoo Online &#8220;without custom modules&#8221; (sem m\u00f3dulos personalizados). Esclare\u00e7a este ponto no levantamento inicial, n\u00e3o a meio do desenvolvimento.<\/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\">Op\u00e7\u00f5es de integra\u00e7\u00e3o do 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<figure class=\"wp-block-table ind-table ind-table--wide\"><table><thead><tr><th>Op\u00e7\u00e3o<\/th><th>Vers\u00f5es<\/th><th>Autentica\u00e7\u00e3o<\/th><th>Fun\u00e7\u00e3o na integra\u00e7\u00e3o com a programa\u00e7\u00e3o da produ\u00e7\u00e3o<\/th><\/tr><\/thead><tbody><tr><td>API externa JSON-2: <code>POST \/json\/2\/&lt;model&gt;\/&lt;method&gt;<\/code><\/td><td>Introduzida na vers\u00e3o 19.0<\/td><td>Chave de API em <code>Authorization: bearer &lt;key&gt;<\/code>, cabe\u00e7alho opcional <code>X-Odoo-Database<\/code><\/td><td>Op\u00e7\u00e3o predefinida para novas implementa\u00e7\u00f5es: <code>search_read<\/code> para leitura, <code>write<\/code> para gravar as datas no Odoo<\/td><\/tr><tr><td>XML-RPC \/ JSON-RPC externos: <code>\/xmlrpc\/2<\/code>, <code>\/jsonrpc<\/code>, servi\u00e7os <code>common<\/code>, <code>object<\/code><\/td><td>At\u00e9 \u00e0 vers\u00e3o 19.0; remo\u00e7\u00e3o prevista<\/td><td><code>common.authenticate<\/code> com nome de utilizador e palavra-passe ou chave de API, seguido de <code>execute_kw<\/code><\/td><td>Necess\u00e1rio para clientes nas vers\u00f5es 16.0 a 18.0<\/td><\/tr><tr><td>Controladores personalizados num m\u00f3dulo<\/td><td>Todas<\/td><td>Por rota, por exemplo, <code>auth='bearer'<\/code><\/td><td>Dados combinados: uma ordem de produ\u00e7\u00e3o com as respetivas ordens de fabrico numa \u00fanica chamada<\/td><\/tr><tr><td>Regras de automatiza\u00e7\u00e3o: &#8220;Send Webhook Notification&#8221; (enviar notifica\u00e7\u00e3o por webhook)<\/td><td>Na documenta\u00e7\u00e3o desde a vers\u00e3o 17.0<\/td><td>Envio de POST para um URL<\/td><td>Envio ao criar ou editar ordens de produ\u00e7\u00e3o e ordens de fabrico<\/td><\/tr><tr><td>Importa\u00e7\u00e3o de registos (CSV, XLSX) e exporta\u00e7\u00e3o<\/td><td>Todas<\/td><td>Sess\u00e3o do utilizador<\/td><td>Dados para o per\u00edodo de teste e carregamentos pontuais de dados mestre<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<p>Prepare-se desde j\u00e1 para a remo\u00e7\u00e3o. A Odoo <a href=\"https:\/\/www.odoo.com\/documentation\/19.0\/developer\/reference\/external_rpc_api.html\">prev\u00ea remover XML-RPC e JSON-RPC<\/a> no Odoo 22 (outono de 2028) e no Odoo Online 21.1 (inverno de 2027). Desenvolva sobre JSON-2 para a vers\u00e3o 19.0 e isole o acesso por RPC num \u00fanico adaptador para bases de dados mais antigas. Assim, uma atualiza\u00e7\u00e3o exige apenas uma altera\u00e7\u00e3o. Os controladores personalizados com <code>@route(type='jsonrpc')<\/code> n\u00e3o s\u00e3o afetados pela remo\u00e7\u00e3o.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Autentica\u00e7\u00e3o<\/h3>\n\n\n<p>Crie um utilizador dedicado \u00e0 integra\u00e7\u00e3o, com acesso de leitura a Manufacturing e Inventory e de escrita \u00e0s ordens de fabrico. Gere a respetiva chave em Preferences &gt; Account Security &gt; New API Key. Na vers\u00e3o 19.0, as chaves t\u00eam uma validade m\u00e1xima de tr\u00eas meses, pelo que o middleware tem de assegurar a rota\u00e7\u00e3o de chaves e emitir um alerta em caso de falha de autentica\u00e7\u00e3o. Sem estas medidas, uma chave expirada interrompe a sincroniza\u00e7\u00e3o sem que ningu\u00e9m se aperceba. Do lado do SkyPlanner, a API REST usa JWT, pelo que o middleware guarda ambas as credenciais.<\/p>\n\n\n<p>Cada chamada JSON-2 \u00e9 executada na sua pr\u00f3pria transa\u00e7\u00e3o SQL. Por isso, uma escrita repartida por v\u00e1rias chamadas n\u00e3o \u00e9 at\u00f3mica. Fa\u00e7a a escrita por ordem de fabrico e registe cada resultado.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Eventos<\/h3>\n\n\n<p>O Odoo envia altera\u00e7\u00f5es atrav\u00e9s de <a href=\"https:\/\/www.odoo.com\/documentation\/19.0\/applications\/studio\/automated_actions.html\">regras de automatiza\u00e7\u00e3o<\/a>. Uma regra em <code>mrp.production<\/code> ou <code>mrp.workorder<\/code>, com o acionador On create and edit e a a\u00e7\u00e3o &#8220;Send Webhook Notification&#8221; (enviar notifica\u00e7\u00e3o por webhook), envia um POST com os campos selecionados para um URL. Crie a regra no Studio ou, em modo de programador, no formul\u00e1rio Automation Rules. Combine-a com uma consulta peri\u00f3dica <code>search_read<\/code> sobre <code>write_date<\/code> para detetar importa\u00e7\u00f5es e tudo o que tenha escapado \u00e0 regra. No sentido inverso, os webhooks do SkyPlanner enviam as altera\u00e7\u00f5es \u00e0 programa\u00e7\u00e3o e ao estado \u00e0 medida que ocorrem.<\/p>\n\n\n<p>Os nomes dos campos variam entre vers\u00f5es. Na vers\u00e3o 19.0, cada base de dados apresenta os seus modelos, campos e m\u00e9todos em <code>\/doc<\/code>; nas vers\u00f5es anteriores, utilize <code>fields_get<\/code>. Fa\u00e7a o mapeamento com base nessa informa\u00e7\u00e3o, n\u00e3o de mem\u00f3ria.<\/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\">Mapeamento de dados: do Odoo para o 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>Modelo do Odoo<\/th><th>Objeto do SkyPlanner<\/th><th>Sentido<\/th><th>Frequ\u00eancia<\/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>Produto ou material<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Carregamento inicial, depois diariamente ou quando h\u00e1 altera\u00e7\u00f5es<\/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>Produto multin\u00edvel, necessidades de materiais por etapa<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Quando h\u00e1 altera\u00e7\u00f5es<\/td><\/tr><tr><td><code>mrp.routing.workcenter<\/code> (separador 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>Etapas do processo com sequ\u00eancia e tempo de execu\u00e7\u00e3o<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Quando h\u00e1 altera\u00e7\u00f5es<\/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>Centro de trabalho, efici\u00eancia, prepara\u00e7\u00e3o e limpeza, centros de trabalho alternativos<\/td><td>Odoo \u2192 SkyPlanner, com manuten\u00e7\u00e3o posterior no SkyPlanner<\/td><td>Carregamento inicial<\/td><\/tr><tr><td><code>mrp.workcenter.capacity<\/code> (<code>capacity<\/code>)<\/td><td>Pe\u00e7as por ciclo, tempos de prepara\u00e7\u00e3o e limpeza espec\u00edficos de cada produto<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Carregamento inicial<\/td><\/tr><tr><td><code>resource.calendar<\/code>, <code>resource.calendar.attendance<\/code>, <code>resource.calendar.leaves<\/code><\/td><td>Turnos e aus\u00eancias<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Carregamento inicial; aus\u00eancias quando h\u00e1 altera\u00e7\u00f5es<\/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>Ordem com prazo e prioridade<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Webhook na confirma\u00e7\u00e3o, complementado por consulta peri\u00f3dica<\/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>Tarefa num centro de trabalho<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Webhook, complementado por consulta peri\u00f3dica<\/td><\/tr><tr><td><code>stock.quant<\/code>, <code>stock.move<\/code> (movimentos de componentes)<\/td><td>Exist\u00eancias e necessidades de materiais para programa\u00e7\u00e3o em fun\u00e7\u00e3o dos materiais<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Periodicamente, por exemplo, com intervalos de 15 a 60 minutos<\/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>Encomendas de compra e materiais a receber, dispon\u00edveis na data de entrega prevista<\/td><td>Odoo \u2192 SkyPlanner<\/td><td>Webhook na confirma\u00e7\u00e3o ou edi\u00e7\u00e3o da encomenda de compra, complementado pela mesma consulta peri\u00f3dica<\/td><\/tr><tr><td>In\u00edcio e fim previstos e centro de trabalho<\/td><td><code>mrp.workorder.date_start<\/code>, <code>date_finished<\/code>, <code>workcenter_id<\/code><\/td><td>SkyPlanner \u2192 Odoo<\/td><td>Quando a programa\u00e7\u00e3o muda, atrav\u00e9s de um webhook do SkyPlanner<\/td><\/tr><tr><td>Mobile Confirmations, registos de tempos<\/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>A cada confirma\u00e7\u00e3o<\/td><\/tr><tr><td>Quantidade produzida, opera\u00e7\u00e3o conclu\u00edda<\/td><td><code>qty_producing<\/code> na ordem de fabrico, seguido de <code>button_finish<\/code>; <code>button_mark_done<\/code> na ordem de produ\u00e7\u00e3o<\/td><td>SkyPlanner \u2192 Odoo, ou registo no Odoo Shop Floor<\/td><td>A cada confirma\u00e7\u00e3o<\/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\">Padr\u00f5es de integra\u00e7\u00e3o<\/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\">Primeiro, os dados mestre.<\/p>\n\n\n<p class=\"fx-pain__b\">Carregue os centros de trabalho e os calend\u00e1rios. Depois, carregue os produtos, as listas de materiais e as opera\u00e7\u00f5es, que fazem refer\u00eancia aos centros de trabalho. Durante o per\u00edodo experimental de 30 dias, estas mesmas listas s\u00e3o importadas a partir de exporta\u00e7\u00f5es CSV. A <a href=\"https:\/\/www.odoo.com\/documentation\/19.0\/applications\/essentials\/export_import_data.html\">ferramenta de importa\u00e7\u00e3o e exporta\u00e7\u00e3o<\/a> do Odoo funciona em qualquer vista de lista.<\/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\">Sincroniza\u00e7\u00e3o de ordens.<\/p>\n\n\n<p class=\"fx-pain__b\">Importe as ordens de produ\u00e7\u00e3o nos estados <code>confirmed<\/code> e <code>progress<\/code> com as respetivas ordens de fabrico. Exclua as ordens de produ\u00e7\u00e3o em rascunho ou trate-as como procura provis\u00f3ria. Os subconjuntos com lista de materiais pr\u00f3pria podem chegar como ordens de produ\u00e7\u00e3o filhas separadas, e o Odoo planeia cada ordem de produ\u00e7\u00e3o de forma independente. Mapeie-os para subprodutos do SkyPlanner, para que os subconjuntos fiquem conclu\u00eddos antes de se iniciar a produ\u00e7\u00e3o do produto pai.<\/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\">Escrita da programa\u00e7\u00e3o no Odoo.<\/p>\n\n\n<p class=\"fx-pain__b\">Quando a programa\u00e7\u00e3o muda, um webhook do SkyPlanner aciona a integra\u00e7\u00e3o, que chama o m\u00e9todo <code>write<\/code> do ORM em cada <code>mrp.workorder<\/code> afetado. No Odoo 19.0, isto corresponde a um pedido JSON-2 por ordem de fabrico:<\/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>&#8220;<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>&#8220;<\/p>\n\n\n<p>O JSON-2 recebe cada argumento do m\u00e9todo pelo nome, al\u00e9m de <code>ids<\/code> e <code>context<\/code>, pelo que <code>write(vals)<\/code> passa a usar a chave <code>vals<\/code>. Nas vers\u00f5es 16.0 a 18.0, a mesma chamada \u00e9 executada como <code>execute_kw(db, uid, key, 'mrp.workorder', 'write', [[4711], vals])<\/code> por XML-RPC ou JSON-RPC e, na vers\u00e3o 16.0, as chaves s\u00e3o <code>date_planned_start<\/code> e <code>date_planned_finished<\/code>. As datas e horas s\u00e3o enviadas em UTC. Algumas regras garantem uma grava\u00e7\u00e3o correta:<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li>Envie ambas as datas na mesma chamada.<\/li>\n\n\n<li>Inclua <code>workcenter_id<\/code> apenas quando o motor tiver escolhido uma m\u00e1quina alternativa.<\/li>\n\n\n<li>Escreva apenas nos campos de programa\u00e7\u00e3o, nunca nas quantidades ou nas listas de materiais.<\/li>\n\n<\/ul>\n\n\n<p>A escrita das datas desloca a reserva do centro de trabalho no pr\u00f3prio Odoo. Assim, as vistas de planeamento do Odoo apresentam o plano do SkyPlanner.<\/p>\n\n\n<p><strong>Do ch\u00e3o de f\u00e1brica de volta ao Odoo.<\/strong> Os operadores registam o trabalho no SkyPlanner Mobile Confirmations. Para cada confirma\u00e7\u00e3o, a integra\u00e7\u00e3o chama <code>create<\/code> em <code>mrp.workcenter.productivity<\/code> (JSON-2: <code>POST \/json\/2\/mrp.workcenter.productivity\/create<\/code> com <code>vals_list<\/code>). Preenche <code>workorder_id<\/code>, <code>workcenter_id<\/code>, <code>date_start<\/code>, <code>date_end<\/code> e um <code>loss_id<\/code> do tipo Productive, e o tempo de m\u00e3o de obra e os respetivos custos s\u00e3o registados no Odoo.<\/p>\n\n\n<p>Quando uma opera\u00e7\u00e3o fica conclu\u00edda, a integra\u00e7\u00e3o define a quantidade produzida e chama <code>button_finish<\/code> na ordem de fabrico. A \u00faltima ordem de fabrico deixa a ordem de produ\u00e7\u00e3o pronta para <code>button_mark_done<\/code>. Cada confirma\u00e7\u00e3o \u00e9 registada uma \u00fanica vez e o identificador do respetivo registo no Odoo fica guardado com o registo de tempos do SkyPlanner. Assim, a repeti\u00e7\u00e3o de um webhook nunca cria um segundo Time Log.<\/p>\n\n\n<p>Nas f\u00e1bricas que utilizam a aplica\u00e7\u00e3o Enterprise Shop Floor, o fluxo \u00e9 inverso: o SkyPlanner l\u00ea o estado da ordem de fabrico e <code>qty_produced<\/code>, e o Autopilot refaz automaticamente a programa\u00e7\u00e3o quando a produ\u00e7\u00e3o muda.<\/p>\n\n\n<p><strong>Responsabilidade pelos dados.<\/strong> Documente as regras antes da entrada em produ\u00e7\u00e3o:<\/p>\n\n\n<figure class=\"wp-block-table ind-table\"><table><thead><tr><th>Dados<\/th><th>Sistema respons\u00e1vel<\/th><\/tr><\/thead><tbody><tr><td>Produtos, listas de materiais, opera\u00e7\u00f5es, quantidades, estado da ordem de produ\u00e7\u00e3o<\/td><td>Odoo<\/td><\/tr><tr><td>Sequ\u00eancia das ordens de fabrico, horas de in\u00edcio e fim, escolha do centro de trabalho<\/td><td>SkyPlanner<\/td><\/tr><tr><td>Matriz de tempos de prepara\u00e7\u00e3o e mudan\u00e7a, requisitos de ferramentas e operadores, recursos alternativos<\/td><td>SkyPlanner<\/td><\/tr><tr><td>Calend\u00e1rios dos centros de trabalho e Time Off<\/td><td>Um \u00fanico sistema, escolhido na defini\u00e7\u00e3o do \u00e2mbito<\/td><\/tr><tr><td>Time Logs, exist\u00eancias e c\u00e1lculo de custos<\/td><td>Odoo, alimentado pelas confirma\u00e7\u00f5es do SkyPlanner<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<p>Os respons\u00e1veis pelo planeamento deixam de usar os bot\u00f5es Plan e Unplan do Odoo nas ordens de produ\u00e7\u00e3o programadas pelo SkyPlanner. Caso contr\u00e1rio, o Odoo faz as suas pr\u00f3prias reservas, sobrepondo-as \u00e0s datas do 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\">Etapas habituais do projeto<\/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>A implementa\u00e7\u00e3o fica normalmente conclu\u00edda em poucas semanas ap\u00f3s o in\u00edcio do processo de integra\u00e7\u00e3o. Antes disso, o per\u00edodo experimental gratuito de 30 dias usa exporta\u00e7\u00f5es CSV dos seus pr\u00f3prios dados do Odoo. O projeto em si inclui:<\/p>\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Mapeamento dos dados mestre:<\/strong> modelos e campos do Odoo por vers\u00e3o (consulte <code>\/doc<\/code> ou <code>fields_get<\/code>), unidades de medida e defini\u00e7\u00e3o do sistema que mant\u00e9m os calend\u00e1rios e o Time Off.<\/li>\n\n\n<li><strong>Revis\u00e3o dos dados:<\/strong> calend\u00e1rios dos centros de trabalho, Setup Time e Cleanup Time, e dura\u00e7\u00f5es em modo Fixed em vez de Computed nas opera\u00e7\u00f5es das listas de materiais.<\/li>\n\n\n<li><strong>Carregamento inicial:<\/strong> produtos, centros de trabalho com os respetivos calend\u00e1rios, listas de materiais e respetivas opera\u00e7\u00f5es.<\/li>\n\n\n<li><strong>Sincroniza\u00e7\u00e3o de ordens e encomendas de compra:<\/strong> ordens de produ\u00e7\u00e3o confirmadas e em curso com as respetivas ordens de fabrico, al\u00e9m das linhas de <code>purchase.order<\/code> com as datas de chegada previstas.<\/li>\n\n\n<li><strong>Grava\u00e7\u00e3o da programa\u00e7\u00e3o no Odoo:<\/strong> datas e centros de trabalho em <code>mrp.workorder<\/code>, com rota\u00e7\u00e3o das chaves de API no Odoo.<\/li>\n\n\n<li><strong>Confirma\u00e7\u00f5es do ch\u00e3o de f\u00e1brica:<\/strong> envio de Time Logs e de conclus\u00f5es de ordens de fabrico para o Odoo.<\/li>\n\n\n<li><strong>Testes em paralelo com o plano atual,<\/strong> seguidos da entrada em produ\u00e7\u00e3o.<\/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\">Armadilhas a evitar no 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>Campos de data com novos nomes.<\/strong> At\u00e9 \u00e0 vers\u00e3o 16.0, <code>date_planned_start<\/code> e <code>date_planned_finished<\/code> continham as datas previstas e <code>date_start<\/code>\/<code>date_finished<\/code> as datas reais. A partir da vers\u00e3o 17.0, <code>date_start<\/code> e <code>date_finished<\/code> s\u00e3o as datas previstas. Um mapeamento copiado de um projeto na vers\u00e3o 16.0 l\u00ea silenciosamente as datas reais como previstas nas vers\u00f5es 17+.<\/li>\n\n\n<li><strong>As datas das ordens de fabrico s\u00e3o reservas de capacidade.<\/strong> Na vers\u00e3o 19.0, <code>date_start<\/code> e <code>date_finished<\/code> em <code>mrp.workorder<\/code> s\u00e3o calculados a partir de um registo de <code>resource.calendar.leaves<\/code> (<code>leave_id<\/code>) no calend\u00e1rio do centro de trabalho. Gravar as datas na ordem de fabrico atualiza essa reserva. Nunca grave diretamente na tabela de aus\u00eancias.<\/li>\n\n\n<li><strong>As ordens de fabrico j\u00e1 iniciadas impedem a a\u00e7\u00e3o Unplan.<\/strong> O Odoo recusa anular o planeamento de uma ordem de produ\u00e7\u00e3o quando &#8220;Some work orders have already started&#8221; (algumas ordens de fabrico j\u00e1 foram iniciadas). Ao gravar os dados no Odoo, ignore as ordens de fabrico em <code>progress<\/code> ou <code>done<\/code> e desloque apenas as que ainda n\u00e3o come\u00e7aram.<\/li>\n\n\n<li><strong>As dura\u00e7\u00f5es variam.<\/strong> As opera\u00e7\u00f5es em modo Computed obt\u00eam a dura\u00e7\u00e3o a partir das \u00faltimas ordens de fabrico (10 por predefini\u00e7\u00e3o), ajustada pelo par\u00e2metro Time Efficiency. Para o per\u00edodo experimental, mude para Fixed ou aceite que os dados de entrada variem. As opera\u00e7\u00f5es pertencem a cada lista de materiais, sem dados mestre partilhados de gamas operat\u00f3rias. Por isso, cada lista de materiais precisa da sua pr\u00f3pria revis\u00e3o.<\/li>\n\n\n<li><strong>Calend\u00e1rios com erros.<\/strong> Cada centro de trabalho precisa de um calend\u00e1rio de hor\u00e1rios de trabalho. O sistema de planeamento do pr\u00f3prio Odoo procura disponibilidade at\u00e9 700 dias no futuro e depois para com a mensagem &#8220;Impossible to plan the workorder&#8221; (imposs\u00edvel programar a ordem de fabrico). Corrija os calend\u00e1rios antes do primeiro carregamento.<\/li>\n\n\n<li><strong>Unidades de medida.<\/strong> <code>mrp.bom.line<\/code> tem o seu pr\u00f3prio <code>product_uom_id<\/code>, que pode diferir da unidade de stock do produto. Fa\u00e7a a convers\u00e3o antes de verificar a disponibilidade dos materiais.<\/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\">Quem configura a integra\u00e7\u00e3o com o 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>Cada f\u00e1brica utiliza o Odoo \u00e0 sua maneira: opera\u00e7\u00f5es nas listas de materiais, calend\u00e1rios dos centros de trabalho, centros de trabalho alternativos e m\u00f3dulos personalizados pr\u00f3prios. A equipa SkyPlanner traz a experi\u00eancia necess\u00e1ria para fazer o mapeamento correto dessa configura\u00e7\u00e3o.<\/p>\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>A equipa SkyPlanner configura a integra\u00e7\u00e3o<\/strong> de acordo com a sua instala\u00e7\u00e3o Odoo durante a implementa\u00e7\u00e3o inicial e presta suporte ap\u00f3s a entrada em produ\u00e7\u00e3o. A integra\u00e7\u00e3o usa a API REST e os webhooks do SkyPlanner e a API JSON-2 ou RPC do Odoo. Esta \u00e9 a abordagem padr\u00e3o.<\/li>\n\n\n<li><strong>O seu parceiro Odoo pode participar.<\/strong> O parceiro conhece a sua configura\u00e7\u00e3o e os m\u00f3dulos personalizados e pode desenvolver a integra\u00e7\u00e3o com a mesma API REST documentada. Esta permite ler e escrever ordens, produtos, materiais, etapas de processo e registos de tempos, com autentica\u00e7\u00e3o JWT e documenta\u00e7\u00e3o Swagger\/OpenAPI.<\/li>\n\n\n<li><strong>Os seus pr\u00f3prios programadores<\/strong> podem fazer o mesmo, normalmente atrav\u00e9s de um pequeno middleware que funciona a par do Odoo, ou de um m\u00f3dulo no Odoo.sh ou numa instala\u00e7\u00e3o local. Basta uma chave de API para come\u00e7ar (<a href=\"\/pt-pt\/docs\/tutorial-de-integracao\/\">tutorial de integra\u00e7\u00e3o<\/a>), e a equipa SkyPlanner ajuda sempre que necess\u00e1rio.<\/li>\n\n<\/ol>\n\n\n<p>Este modelo j\u00e1 est\u00e1 em produ\u00e7\u00e3o com outros ERP. Na <a href=\"\/pt-pt\/customers\/laboratory-allied\/\">Laboratory &amp; Allied<\/a>, a equipa interna de TI desenvolveu a integra\u00e7\u00e3o com o SAP Business One em grande parte de forma aut\u00f3noma, com a ajuda do SkyPlanner. A <a href=\"\/pt-pt\/customers\/utu\/\">UTU<\/a> utiliza o SkyPlanner a par do seu 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\">Porque compensa integrar<\/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>\u00c9 o envio dos dados atualizados para o Odoo que torna a integra\u00e7\u00e3o \u00fatil no dia a dia. Quando esse envio est\u00e1 a funcionar:<\/p>\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>As ordens de fabrico do Odoo passam a ter datas realistas.<\/strong> O motor Arcturus AI sequencia todas as ordens de produ\u00e7\u00e3o em aberto em segundos. As datas e os centros de trabalho que escolhe s\u00e3o gravados em <code>mrp.workorder<\/code>, onde ficam vis\u00edveis nas vistas de planeamento do Odoo.<\/li>\n\n\n<li><strong>Deixa de ser preciso replanear \u00e0 m\u00e3o.<\/strong> O Autopilot reprograma automaticamente quando a produ\u00e7\u00e3o muda, e o webhook envia as novas datas para o Odoo.<\/li>\n\n\n<li><strong>O ch\u00e3o de f\u00e1brica fecha o ciclo.<\/strong> Os operadores registam o trabalho no telem\u00f3vel ou tablet com Mobile Confirmations, Production Timer e Quick Log Mode. Os Time Logs s\u00e3o enviados para o Odoo para atualizar as exist\u00eancias e calcular os custos. A programa\u00e7\u00e3o e a execu\u00e7\u00e3o funcionam numa \u00fanica ferramenta, tanto em Community como em Enterprise.<\/li>\n\n\n<li><strong>A programa\u00e7\u00e3o respeita restri\u00e7\u00f5es que o Odoo n\u00e3o contempla.<\/strong> Uma matriz de tempos de prepara\u00e7\u00e3o define as mudan\u00e7as entre cada par de produtos em fun\u00e7\u00e3o da sequ\u00eancia. As ferramentas s\u00e3o recursos de capacidade finita partilhados entre m\u00e1quinas, e uma tarefa pode ocupar v\u00e1rios operadores em simult\u00e2neo. O motor recorre a m\u00e1quinas ou pessoas alternativas quando o recurso principal n\u00e3o est\u00e1 dispon\u00edvel. As datas gravadas em <code>mrp.workorder<\/code> respeitam todas estas restri\u00e7\u00f5es.<\/li>\n\n\n<li><strong>O plano segue a chegada dos materiais.<\/strong> As exist\u00eancias dispon\u00edveis e as encomendas a fornecedores em aberto no Odoo alimentam a programa\u00e7\u00e3o em fun\u00e7\u00e3o dos materiais. Os componentes encomendados s\u00e3o considerados dispon\u00edveis na data de entrega da encomenda, e as exist\u00eancias s\u00e3o atualizadas quando esta \u00e9 marcada como Delivered. Para cada tarefa, verifica-se o que existe em armaz\u00e9m e o que est\u00e1 a caminho.<\/li>\n\n<\/ul>\n\n\n<p>Pode avaliar a programa\u00e7\u00e3o antes de qualquer trabalho de integra\u00e7\u00e3o. Inicie o <a href=\"\/pt-pt\/avaliacao\/\">per\u00edodo experimental gratuito de 30 dias<\/a> com exporta\u00e7\u00f5es CSV e veja as suas pr\u00f3prias ordens de fabrico do Odoo no Gantt, com at\u00e9 20 postos de trabalho e sem cart\u00e3o de cr\u00e9dito. Os pre\u00e7os come\u00e7am nos 199 \u20ac por m\u00eas, com 5 postos de trabalho inclu\u00eddos, fatura\u00e7\u00e3o mensal e cancelamento a qualquer momento. O or\u00e7amento da integra\u00e7\u00e3o \u00e9 apresentado antecipadamente, juntamente com o seu plano, de acordo com o seu processo e as suas necessidades. Assim, conhece o custo total antes de come\u00e7ar. Consulte as <a href=\"\/pt-pt\/funcionalidades\/\">funcionalidades<\/a> e os <a href=\"\/pt-pt\/historias-de-clientes\/\">clientes<\/a> ou <a href=\"\/pt-pt\/vendas-de-contacto\/\">agende uma demonstra\u00e7\u00e3o<\/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\">Opini\u00f5es de fabricantes sobre o 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, especialista em cadeia de abastecimento da UTU, na \u00e1rea de produ\u00e7\u00e3o de quadros el\u00e9tricos em 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>poupadas por semana<\/span><\/p><\/div>\n\n\n<p class=\"ind-cust__quote\">\u201cCom o SkyPlanner, pass\u00e1mos do planeamento da produ\u00e7\u00e3o em folhas de c\u00e1lculo Excel para a otimiza\u00e7\u00e3o da produ\u00e7\u00e3o em tempo real.\u201d<\/p>\n\n\n<p class=\"ind-cust__who\"><b>Kalle Kalliom\u00e4ki, especialista em cadeia de abastecimento<\/b><br>UTU \u00b7 Quadros el\u00e9tricos e aparelhagem de comuta\u00e7\u00e3o<\/p>\n\n\n<p class=\"ind-cust__result\">O planeamento da produ\u00e7\u00e3o poupa 2 horas de trabalho por semana, e uma nova fila de tarefas chega \u00e0 linha em segundos.<\/p>\n\n\n<p class=\"ind-cust__go\"><a href=\"\/pt-pt\/customers\/utu\/\">Ler o testemunho da UTU<\/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=\"Operadores com fatos para salas limpas numa linha de enchimento de frascos na f\u00e1brica farmac\u00eautica da Laboratory &amp; Allied, em 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>de efici\u00eancia na produ\u00e7\u00e3o<\/span><\/p><\/div>\n\n\n<p class=\"ind-cust__quote\">\u201cA efici\u00eancia na produ\u00e7\u00e3o aumentou 90%.\u201d<\/p>\n\n\n<p class=\"ind-cust__who\"><b>Abdul Rucyinga, Respons\u00e1vel de TI<\/b><br>Laboratory &amp; Allied \u00b7 Ind\u00fastria farmac\u00eautica<\/p>\n\n\n<p class=\"ind-cust__result\">A efici\u00eancia na produ\u00e7\u00e3o aumentou 90%, e criar um plano otimizado de tr\u00eas meses para todos os postos de trabalho demora menos de 30 minutos.<\/p>\n\n\n<p class=\"ind-cust__go\"><a href=\"\/pt-pt\/customers\/laboratory-allied\/\">Ler o testemunho da 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, CEO da Mamec, nas instala\u00e7\u00f5es de produ\u00e7\u00e3o da empresa em 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.000s<\/b><span>de ordens de fabrico programadas automaticamente<\/span><\/p><\/div>\n\n\n<p class=\"ind-cust__quote\">\u201cTemos agora um controlo diferente sobre a produ\u00e7\u00e3o e a nossa compreens\u00e3o da capacidade est\u00e1 a um n\u00edvel completamente diferente.\u201d<\/p>\n\n\n<p class=\"ind-cust__who\"><b>Hannu Ryyn\u00e4nen, CEO<\/b><br>Mamec \u00b7 Misturadores industriais, bombas e fabrico por contrato de alta tecnologia<\/p>\n\n\n<p class=\"ind-cust__result\">Milhares de ordens de fabrico s\u00e3o programadas automaticamente, e toda a organiza\u00e7\u00e3o tem uma vis\u00e3o da produ\u00e7\u00e3o em tempo real.<\/p>\n\n\n<p class=\"ind-cust__go\"><a href=\"\/pt-pt\/customers\/mamec\/\">Ler o testemunho da 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=\"Vista a\u00e9rea da f\u00e1brica de sistemas de seguran\u00e7a para coberturas da Piristeel, em 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 fiabilidade das entregas<\/span><\/p><\/div>\n\n\n<p class=\"ind-cust__quote\">\u201cO SkyPlanner deu-nos visibilidade para identificar os estrangulamentos e tornou a gest\u00e3o da produ\u00e7\u00e3o mais clara.\u201d<\/p>\n\n\n<p class=\"ind-cust__who\"><b>Toni Tuori, Respons\u00e1vel de Produ\u00e7\u00e3o<\/b><br>Piristeel \u00b7 Sistemas de seguran\u00e7a para coberturas e de drenagem de \u00e1guas pluviais<\/p>\n\n\n<p class=\"ind-cust__result\">A fiabilidade das entregas atingiu 99,2% este ano, e a programa\u00e7\u00e3o permite poupar at\u00e9 quatro horas de trabalho por dia.<\/p>\n\n\n<p class=\"ind-cust__go\"><a href=\"\/pt-pt\/customers\/piristeel\/\">Ler o testemunho da 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\">Perguntas frequentes<\/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>A integra\u00e7\u00e3o funciona no Odoo Online?<\/summary>\n<p class=\"sp-faq__a\">No plano Custom, sim, atrav\u00e9s da API externa. Os planos One App Free e Standard n\u00e3o t\u00eam acesso \u00e0 API externa, e o Standard n\u00e3o permite m\u00f3dulos personalizados. Por isso, estes planos est\u00e3o limitados \u00e0 importa\u00e7\u00e3o e exporta\u00e7\u00e3o de ficheiros 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>Devemos usar JSON-2 ou XML-RPC?<\/summary>\n<p class=\"sp-faq__a\">JSON-2 no Odoo 19.0 e vers\u00f5es posteriores. As vers\u00f5es 16.0 a 18.0 ainda precisam de XML-RPC e JSON-RPC, mas a remo\u00e7\u00e3o de ambos est\u00e1 prevista para o 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>Como \u00e9 enviada a programa\u00e7\u00e3o de volta para o Odoo?<\/summary>\n<p class=\"sp-faq__a\">Atrav\u00e9s do m\u00e9todo <code>write<\/code> do ORM em cada <code>mrp.workorder<\/code>: <code>POST \/json\/2\/mrp.workorder\/write<\/code> com <code>ids<\/code> e <code>vals<\/code> na vers\u00e3o 19.0, ou <code>execute_kw<\/code> com <code>write<\/code> por XML-RPC ou JSON-RPC nas vers\u00f5es 16.0 a 18.0. Os valores s\u00e3o <code>date_start<\/code>, <code>date_finished<\/code> (<code>date_planned_start<\/code> e <code>date_planned_finished<\/code> na vers\u00e3o 16.0) e, se tiver mudado, <code>workcenter_id<\/code>. O Odoo desloca tamb\u00e9m a reserva do centro de trabalho, pelo que as suas vistas de planeamento mostram as datas do 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>Como chegam ao Odoo as confirma\u00e7\u00f5es dos operadores?<\/summary>\n<p class=\"sp-faq__a\">Como Time Logs: a integra\u00e7\u00e3o cria registos de <code>mrp.workcenter.productivity<\/code> associados \u00e0 ordem de fabrico, com in\u00edcio, fim e um motivo de perda do tipo Productive, e chama <code>button_finish<\/code> quando a opera\u00e7\u00e3o fica conclu\u00edda. Cada confirma\u00e7\u00e3o \u00e9 registada uma \u00fanica vez, pelo que as novas tentativas n\u00e3o duplicam os tempos.<\/p>\n<\/details>\n\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>Quem mant\u00e9m a integra\u00e7\u00e3o ap\u00f3s a entrada em produ\u00e7\u00e3o?<\/summary>\n<p class=\"sp-faq__a\">A equipa SkyPlanner configura a integra\u00e7\u00e3o durante a implementa\u00e7\u00e3o inicial e presta suporte ap\u00f3s a entrada em produ\u00e7\u00e3o, incluindo as adapta\u00e7\u00f5es necess\u00e1rias quando a configura\u00e7\u00e3o do Odoo muda. Se a integra\u00e7\u00e3o for desenvolvida pelo seu parceiro ou pelos seus programadores, estes usam a API REST documentada e a <a href=\"\/pt-pt\/docs\/tutorial-de-integracao\/\">documenta\u00e7\u00e3o do SkyPlanner<\/a>, com o apoio da equipa sempre que necess\u00e1rio.<\/p>\n<\/details>\n\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>O que acontece \u00e0s ordens de fabrico que j\u00e1 foram iniciadas?<\/summary>\n<p class=\"sp-faq__a\">N\u00e3o as altere ao escrever os dados de volta no Odoo. O Odoo impede a anula\u00e7\u00e3o do planeamento de uma MO assim que uma ordem de fabrico est\u00e1 em curso ou conclu\u00edda. O SkyPlanner l\u00ea o estado e o progresso dessas ordens e programa o trabalho restante tendo-as em conta.<\/p>\n<\/details>\n\n\n<details class=\"wp-block-details sp-faq__item is-layout-flow wp-block-details-is-layout-flow\"><summary>Quanto tempo demora a integra\u00e7\u00e3o com o Odoo?<\/summary>\n<p class=\"sp-faq__a\">A implementa\u00e7\u00e3o fica normalmente conclu\u00edda em poucas semanas ap\u00f3s o in\u00edcio do processo. Comece pela avalia\u00e7\u00e3o de 30 dias com dados exportados em CSV, para validar a programa\u00e7\u00e3o com os seus pr\u00f3prios dados do Odoo antes de iniciar o trabalho com a API.<\/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>Integra\u00e7\u00f5es \/ ERP \/ Odoo Guia de integra\u00e7\u00e3o do Odoo com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o Este guia mostra aos parceiros Odoo, programadores e respons\u00e1veis de TI como ligar o Odoo Manufacturing ao SkyPlanner APS. Para conhecer as vantagens para o neg\u00f3cio e o que o bot\u00e3o Plan do Odoo j\u00e1 faz, consulte &#8230; <a title=\"Guia de integra\u00e7\u00e3o do Odoo com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o\" class=\"read-more\" href=\"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/\" aria-label=\"Leia mais sobre Guia de integra\u00e7\u00e3o do Odoo com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o\">Ler mais<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":100832,"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-101219","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>Guia de integra\u00e7\u00e3o Odoo para programa\u00e7\u00e3o APS | SkyPlanner<\/title>\n<meta name=\"description\" content=\"Ligue SkyPlanner APS ao Odoo Manufacturing: APIs JSON-2\/XML-RPC, mapeamento mrp.workorder, devolu\u00e7\u00e3o de datas, webhooks e riscos espec\u00edficos do 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\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guia de integra\u00e7\u00e3o do Odoo com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o\" \/>\n<meta property=\"og:description\" content=\"Ligue SkyPlanner APS ao Odoo Manufacturing: APIs JSON-2\/XML-RPC, mapeamento mrp.workorder, devolu\u00e7\u00e3o de datas, webhooks e riscos espec\u00edficos do Odoo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/\" \/>\n<meta property=\"og:site_name\" content=\"SkyPlanner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"20 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/integracoes\\\/erp\\\/odoo\\\/guia-de-integracao\\\/\",\"url\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/integracoes\\\/erp\\\/odoo\\\/guia-de-integracao\\\/\",\"name\":\"Guia de integra\u00e7\u00e3o Odoo para programa\u00e7\u00e3o APS | SkyPlanner\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/#website\"},\"datePublished\":\"2026-10-17T13:00:38+00:00\",\"description\":\"Ligue SkyPlanner APS ao Odoo Manufacturing: APIs JSON-2\\\/XML-RPC, mapeamento mrp.workorder, devolu\u00e7\u00e3o de datas, webhooks e riscos espec\u00edficos do Odoo.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/integracoes\\\/erp\\\/odoo\\\/guia-de-integracao\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/integracoes\\\/erp\\\/odoo\\\/guia-de-integracao\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/integracoes\\\/erp\\\/odoo\\\/guia-de-integracao\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integra\u00e7\u00f5es de software ERP e MES com o SkyPlanner\",\"item\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/integracoes\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SkyPlanner APS para o seu ERP\",\"item\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/integracoes\\\/erp\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"SkyPlanner APS para Odoo: programa\u00e7\u00e3o da produ\u00e7\u00e3o e integra\u00e7\u00e3o\",\"item\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/integracoes\\\/erp\\\/odoo\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Guia de integra\u00e7\u00e3o do Odoo com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/#website\",\"url\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/\",\"name\":\"SkyPlanner\",\"description\":\"AI-powered production scheduling and planning software\",\"publisher\":{\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/#organization\",\"name\":\"Skycode Oy\",\"url\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/skyplanner.ai\\\/pt-pt\\\/#\\\/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\\\/pt-pt\\\/#\\\/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":"Guia de integra\u00e7\u00e3o Odoo para programa\u00e7\u00e3o APS | SkyPlanner","description":"Ligue SkyPlanner APS ao Odoo Manufacturing: APIs JSON-2\/XML-RPC, mapeamento mrp.workorder, devolu\u00e7\u00e3o de datas, webhooks e riscos espec\u00edficos do 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\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/","og_locale":"pt_PT","og_type":"article","og_title":"Guia de integra\u00e7\u00e3o do Odoo com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o","og_description":"Ligue SkyPlanner APS ao Odoo Manufacturing: APIs JSON-2\/XML-RPC, mapeamento mrp.workorder, devolu\u00e7\u00e3o de datas, webhooks e riscos espec\u00edficos do Odoo.","og_url":"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/","og_site_name":"SkyPlanner","twitter_card":"summary_large_image","twitter_misc":{"Tempo estimado de leitura":"20 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/","url":"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/","name":"Guia de integra\u00e7\u00e3o Odoo para programa\u00e7\u00e3o APS | SkyPlanner","isPartOf":{"@id":"https:\/\/skyplanner.ai\/pt-pt\/#website"},"datePublished":"2026-10-17T13:00:38+00:00","description":"Ligue SkyPlanner APS ao Odoo Manufacturing: APIs JSON-2\/XML-RPC, mapeamento mrp.workorder, devolu\u00e7\u00e3o de datas, webhooks e riscos espec\u00edficos do Odoo.","breadcrumb":{"@id":"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/guia-de-integracao\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/skyplanner.ai\/pt-pt\/"},{"@type":"ListItem","position":2,"name":"Integra\u00e7\u00f5es de software ERP e MES com o SkyPlanner","item":"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/"},{"@type":"ListItem","position":3,"name":"SkyPlanner APS para o seu ERP","item":"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/"},{"@type":"ListItem","position":4,"name":"SkyPlanner APS para Odoo: programa\u00e7\u00e3o da produ\u00e7\u00e3o e integra\u00e7\u00e3o","item":"https:\/\/skyplanner.ai\/pt-pt\/integracoes\/erp\/odoo\/"},{"@type":"ListItem","position":5,"name":"Guia de integra\u00e7\u00e3o do Odoo com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o"}]},{"@type":"WebSite","@id":"https:\/\/skyplanner.ai\/pt-pt\/#website","url":"https:\/\/skyplanner.ai\/pt-pt\/","name":"SkyPlanner","description":"AI-powered production scheduling and planning software","publisher":{"@id":"https:\/\/skyplanner.ai\/pt-pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/skyplanner.ai\/pt-pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/skyplanner.ai\/pt-pt\/#organization","name":"Skycode Oy","url":"https:\/\/skyplanner.ai\/pt-pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/skyplanner.ai\/pt-pt\/#\/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\/pt-pt\/#\/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\/pt-pt\/author\/jussi\/"},"uagb_comment_info":0,"uagb_excerpt":"Integra\u00e7\u00f5es \/ ERP \/ Odoo Guia de integra\u00e7\u00e3o do Odoo com o SkyPlanner APS para programa\u00e7\u00e3o da produ\u00e7\u00e3o Este guia mostra aos parceiros Odoo, programadores e respons\u00e1veis de TI como ligar o Odoo Manufacturing ao SkyPlanner APS. Para conhecer as vantagens para o neg\u00f3cio e o que o bot\u00e3o Plan do Odoo j\u00e1 faz, consulte&hellip;","_links":{"self":[{"href":"https:\/\/skyplanner.ai\/pt-pt\/wp-json\/wp\/v2\/pages\/101219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skyplanner.ai\/pt-pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/skyplanner.ai\/pt-pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/pt-pt\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/pt-pt\/wp-json\/wp\/v2\/comments?post=101219"}],"version-history":[{"count":0,"href":"https:\/\/skyplanner.ai\/pt-pt\/wp-json\/wp\/v2\/pages\/101219\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/skyplanner.ai\/pt-pt\/wp-json\/wp\/v2\/pages\/100832"}],"wp:attachment":[{"href":"https:\/\/skyplanner.ai\/pt-pt\/wp-json\/wp\/v2\/media?parent=101219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}