Antes de registar a primeira transportadora
O arranque joga-se em poucos sítios: a ficha de cada transportadora, o registo de cada pedido e os campos de estado que vais ver nas listas. Estes são os detalhes que convém ter claros antes de mexer em qualquer coisa. Se procuras a visão de conjunto de menus e fluxo, tens-na em como funciona o módulo por dentro.
As credenciais são as da tua conta com cada transportadora
O registo de uma transportadora leva Carrier Name, Carrier Type (um campo de seleção), Enabled e Company. Junto a eles vão as credenciais. O próprio módulo descreve API Key como «API key of the carrier account» e API Secret como «API secret of the carrier account». Account Number é o número de conta próprio de cada transportadora, e o campo dá como exemplos «FedEx account, UPS account, etc.».
A leitura prática: esses três dados são os da tua conta com cada transportadora, por isso tem-nos à mão antes de te sentares a configurar. E como cada registo leva a sua própria Company, se trabalhas com várias empresas na mesma base de dados, confirma a qual fica atribuída cada transportadora.
Custom Endpoint URL é opcional e tem um caso concreto
Entre os campos da transportadora está Custom Endpoint URL. A sua descrição define-o como um URL de API personalizado e opcional para «non-standard carriers». Se a tua transportadora não se enquadra nesse caso, não tens de o preencher.
Enabled e Connection Status veem-se por separado
Enabled é uma caixa; Connection Status é um campo de seleção à parte. São dois dados distintos e convém revê-los por separado. Ao lado tens Last Sync Time, com a data e hora da última sincronização, e Last API Response, com a última resposta da API. Na mesma ficha ficam também Created e Created By, com a data de criação e o utilizador que a fez.

Hazmat Categories, com seis categorias e a sua sobretaxa a zero.Cada pedido fica guardado campo a campo
O módulo guarda um registo com estes campos: Carrier, Request Type, Status, Timestamp, HTTP Status Code, Response Snippet, Error Message, Request Payload e Company. Quando algo não bate certo, é esse o sítio onde olhar:
Request Type: que tipo de pedido era.Request Payload: o que foi enviado.HTTP Status Code: o código HTTP da resposta.Response Snippet: um fragmento da resposta.Error Message: o texto do erro.Timestamp: quando ocorreu.
Com Carrier e Timestamp delimitas depressa de que transportadora e de que momento falas. Para interpretar cada mensagem concreta, tens o guia de erros e avisos do módulo.
Há vários campos de estado e não significam o mesmo
No módulo vais encontrar vários campos chamados status ou state, cada um com o seu próprio conjunto de valores:
statuscomSuccess,FailedeTimeout.statuscomSuccess,ErroreLabel Exists.statuscomDraft,Generated,PrintedeFailed.statuscomActive,DegradedeDown.statuscomDraft,In Progress,Completed,FailedePaused.statuscomDraft,Completed,FailedePartial.statecomOpen,Submitted,Approved,RejectedePaid.statecomDrafteDone.status_filtercomDraft,Ready-to-ShipeAll.
Repara que Failed e Draft aparecem em vários deles. Quando filtrares ou quando alguém da equipa te disser que algo está em Failed, pergunta em que lista o viu antes de procurar a causa.
O campo state mais longo vai de Draft a Cancelled
Um dos campos state do módulo percorre estes valores: Draft, Blocked, Cost Quoted, Ready to Ship, In Transit, Out for Delivery, Delivered, Attempted Delivery, Returned to Sender, Lost, Damaged e Cancelled. Há ainda dois campos, status e current_status, com Pre-Label, In-Transit, Out-for-Delivery, Delivered, Exception e Returned.
Atenção à escrita: num caso é Out for Delivery e no outro Out-for-Delivery; o mesmo com Ready to Ship e o Ready-to-Ship de status_filter. Tem isto em conta ao pesquisar ou ao criar filtros guardados.

Export Intrastat sobre a lista de envios (Shipping › Shipments), com envios da DHL Express em Ready to Ship e Delivered.
Bulk Print Labels com dois envios da DHL Express selecionados; o texto do assistente fala de um PDF único ou de um ZIP.
Create Return (com envio original, transportadora, tipo de serviço, Email Customer e notas de devolução) e ao registo da fatura da transportadora com Record Carrier Invoice.last_health_check_status tem três valores
O campo last_health_check_status assume Success, Failed ou Unknown. Durante a primeira semana, anota qual dos três mostra cada dia e compara-o com Last Sync Time e Last API Response da transportadora.
O que rever durante a primeira semana
Com o que ficou dito, a revisão dos primeiros dias resume-se assim:
- Cada transportadora tem
API Key,API SecreteAccount Numberda sua conta, e aCompanycorreta.
Custom Endpoint URLsó está preenchido onde se aplica o caso de «non-standard carriers».
EnabledeConnection Statusde cada transportadora, vistos por separado.
Last Sync TimeeLast API Response, todos os dias.
- O valor de
last_health_check_status.
- Em cada pedido falhado:
HTTP Status Code,Error Message,Response SnippeteRequest Payload.
- Que registos estão em
Blocked,ExceptionouAttempted Delivery.
O que custa e como a FlexigoTech te ajuda
O módulo custa 9 € sem IVA por versão do Odoo, em pagamento único, para 17, 18, 19 e 20; no Odoo 19 e 20, além disso, precisa da subscrição do FlexigoTech Cloud, cujo plano Conector custa 49 €/mês ou 490 €/ano sem IVA (Pro: 98 €/mês ou 980 €/ano), com até 3 contas da plataforma (Pro: 10). Essa ligação através do FlexigoTech Cloud guarda as credenciais cifradas, vigia a sincronização e avisa por e-mail se falhar; sem subscrição, ou com o serviço suspenso, pára o que a subscrição dá e os dados ficam no teu Odoo.
Tens os detalhes na ficha do Odoo Apps e na página do módulo em flexigotech.com.
Na FlexigoTech implementamos Odoo 17, 18, 19 e 20 e desenvolvemos conectores e integrações à medida. Se precisas de ajuda para registar as tuas transportadoras, rever as primeiras falhas ou adaptar o fluxo de envios à tua operação, conta-nos o teu caso.
Continue a ler
Verificado no código do conector (versão 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier_api_log.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier_config.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier_batch_job.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier_label.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/claim.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/cost_reconciliation.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/rate_lookup.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/shipment.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/tracking.py
- Código do módulo: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): wizards/batch_processing_wizard.py
- apps.odoo.com/apps/modules/20.0/flexigo_advanced_shipping_carrier_integration
- apps.odoo.com/apps/modules/17.0/flexigo_advanced_shipping_carrier_integration
- apps.odoo.com/apps/modules/18.0/flexigo_advanced_shipping_carrier_integration
- apps.odoo.com/apps/modules/19.0/flexigo_advanced_shipping_carrier_integration
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
