O que o módulo verifica antes de mais
A condição é uma só: Refresh Token está vazio
O método que renova o token de acesso de uma instância começa por ver se a instância tem valor em Refresh Token. Se estiver vazio, lança Token de atualização em falta para a instância Shopify … (Missing refresh token for Shopify instance …) e a ação pára. As reticências da mensagem são substituídas pelo nome da instância.
Verifica-se antes de falar com o Shopify
É a primeira coisa que o método faz. Só se passar essa verificação é que avança: prepara o pedido com a chave e o segredo da app e com o token de atualização, e envia-o para o endereço de OAuth da loja (/admin/oauth/access_token). Com o campo vazio esse pedido nem sequer chega a ser preparado, pelo que a mensagem nasce no seu Odoo e não no Shopify.
Ao parar, não se guarda nada
O método escreve o seu resultado no final: o novo token de acesso, a data da última renovação e, se o Shopify os devolver, um novo token de atualização e a data de expiração. Como a mensagem interrompe a ação antes de lá chegar, nada disso muda na instância.
A mensagem traz o nome da instância
O final da mensagem é o nome com que o Odoo mostra a instância. Diz-lhe de qual se trata e é essa que tem de abrir para a rever.

Onde aparece e onde não
Uma das vias é carregar em Refresh Access Token
As fichas de instância abrem-se a partir do menu Vendas: lá dentro está Shopify, depois Control Center e, por fim, Instances. O botão Refresh Access Token está na vista da instância e chama uma ação que chega ao método de renovação; se o campo estiver vazio, é aí que aparece a mensagem. O esquema seguinte reúne o menu, o botão, o campo e a mensagem.

Com os valores por defeito, nem o botão nem o campo se veem
O botão Refresh Access Token fica oculto quando o campo Shopify connection vale cloud, que é o valor por defeito, pelo que com os valores por defeito não o vê. O mesmo acontece com o campo Refresh Token, que está na ficha de Shopify Instances, separador OAuth e credenciais, e fica oculto com a mesma condição. O próprio Shopify connection não aparece em nenhuma vista. Se abrir uma instância e não encontrar nem o botão nem o campo, não é uma falha: é o que a ficha mostra nesse caso.
Está nas quatro versões e com tradução
A mensagem está no código publicado do Odoo 17, 18, 19 e 20; o código do método aqui descrito é o do Odoo 20. Com o Odoo em português de Portugal verá Token de atualização em falta para a instância Shopify …; o segundo esquema mostra-a também noutros idiomas.

O que fazer quando a vê
Reveja a instância que a mensagem nomeia
Abra essa instância a partir do menu acima e verifique o campo Refresh Token no separador OAuth e credenciais:
- Se o campo se vê e está vazio, é precisamente a condição que dispara a mensagem.
- Se o campo não se vê, a ficha está a ocultá-lo pela condição acima, e o valor que o decide não aparece em nenhuma vista.
- Quando o campo tiver valor, a verificação é superada e o método segue com o pedido ao Shopify.
O que acontece quando o campo tem valor
O método envia o pedido à loja, com um tempo de espera de pelo menos cinco segundos. Com a resposta guarda o token de acesso e a data de renovação, e também o novo token de atualização e a expiração se o Shopify os incluir. Esta mensagem é, portanto, a primeira saída possível do método: o que acontecer depois da verificação já não tem que ver com um campo vazio na sua instância.
Preço e ajuda
O módulo custa 9 € por versão do Odoo (17, 18, 19 e 20), sem IVA, e precisa da subscrição do FlexigoTech Cloud: plano Conector, 49 €/mês ou 490 €/ano sem IVA, até 3 contas da plataforma. A ligação passa pelo FlexigoTech Cloud, que guarda as credenciais cifradas.
Se está a implementar o Odoo com o Shopify e quer que o ajudemos a rever a instância, a FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida.
Continue a ler
Verificado no código do conector (versão 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigobe_shopify_connector 20.0 (c7078cd8): models/shopify_instance.py
- Código do módulo: flexigobe_shopify_connector 20.0 (c7078cd8): views/shopify_instance_views.xml
- Código do módulo: flexigobe_shopify_connector 20.0 (c7078cd8): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/17.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/18.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/19.0/flexigobe_shopify_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
