O caminho que não precisa do botão
Antes de carregar em qualquer coisa, convém saber que o módulo pode pedir o cancelamento ao Shopify por si só. Na ficha de Instâncias Shopify (Shopify Instances), separador Operações (Operations), grupo Configurações de sincronização (Sync Settings), está a caixa Enviar cancelamentos automaticamente para o Shopify (Auto-push cancellations to Shopify). A ajuda diz: «Quando uma encomenda de venda associada ao Shopify é cancelada no Odoo, cancelá-la também no Shopify.» A caixa vem desativada por defeito.
Com a caixa ativada, ao cancelar uma ordem de venda no Odoo o módulo pede-o ao Shopify se a ordem estiver associada a uma instância, tiver referência de encomenda do Shopify e tiver ficado cancelada. Se esse pedido falhar, o erro fica registado no registo e o cancelamento no Odoo não é desfeito.
O botão Cancelar no Shopify é a via manual: carrega-se nele a partir da ficha da encomenda do Shopify. Quando o botão cancela a ordem de venda do Odoo, fá-lo marcando que esse cancelamento não seja enviado de novo ao Shopify pelo caminho automático.

Quando aparece o botão
Está na ficha de Funil de processamento (Fulfilment Funnel), que se abre a partir de Shopify › Operações › Pedidos (Shopify › Operations › Orders). Para ver esse menu é preciso a permissão Visualizador (Viewer).
A condição da vista só olha para o campo Estado (State): o botão fica oculto quando vale Cancelado (Cancelled) e vê-se com qualquer outro valor. O valor por defeito é Aberto (Open), por isso numa encomenda acabada de chegar vais vê-lo. Os restantes valores são Parcialmente expedido (Partially Fulfilled), Expedido (Fulfilled) e Reembolsado (Refunded). O botão existe no Odoo 17, 18, 19 e 20, com a mesma condição.
Vê-lo não é o mesmo que poder usá-lo: a condição da vista só fala do estado, e o acesso é verificado ao carregar (mais abaixo).

Com o Odoo em português de Portugal, o botão chama-se Cancelar no Shopify.
Um caso: a Tienda Aurora cancela uma encomenda
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
A Tienda Aurora (empresa inventada para este exemplo) vende pelo Shopify e gere as encomendas no Odoo. Um cliente pede para anular uma compra que ainda não saiu. A Marta, do apoio ao cliente, tem acesso de operador do Shopify.
- A Marta abre
Shopify › Operações › Pedidose entra na ficha da encomenda. OEstadoéAbertoe o botão vê-se. - Carrega em
Cancelar no Shopify. O Shopify não devolve nenhum erro com texto. - O
Estadopassa aCancelado, o botão desaparece e a ordem de venda associada é cancelada no Odoo.
No dia seguinte surge outro caso e o Shopify devolve um erro com o seu motivo. A Marta vê Cancelamento de pedido Shopify falhou: …, com o texto que o Shopify devolve depois dos dois pontos. O Estado fica como estava e a ordem de venda não é tocada. O que lhe cabe é ler o motivo.
Um colega que só tem a permissão Visualizador abre a mesma ficha, vê o botão e, ao carregar nele, recebe o aviso de acesso que aparece na tabela abaixo.
O que verifica e o que faz, por ordem
Esta é a ordem do código do Odoo 20. Assim que uma verificação falha, o botão pára e não guarda nada do que ia alterar.
- Verifica que tens acesso de operador ou de gestor do Shopify.
- Verifica que a encomenda não está já cancelada (o botão já fica oculto nesse estado).
- Verifica que o campo
Pedido Shopify(Shopify Order) tem valor. - Pede o cancelamento ao Shopify. Se é preciso avisar o cliente, reembolsar ou repor stock, decide-o a configuração da instância da encomenda: o botão não pergunta nada. Se o Shopify devolver erros com texto, o botão pára aqui.
- Se o passo anterior não parou, escreve
CanceladoemEstado. - Se a encomenda tem um
Pedido de venda(Sale Order) associado e essa ordem não está cancelada, tenta cancelá-la no Odoo. Se esse cancelamento falhar, o erro fica no registo, o botão não mostra nenhuma mensagem por causa disso e a encomenda do Shopify fica emCancelado.

Os campos Pedido Shopify, Pedido de venda e Estado veem-se na ficha e são preenchidos pelo módulo, não pelo utilizador. Pedido Shopify é só de leitura.
Mensagens que pode dar ao carregar
Estas são algumas das mensagens que o botão pode dar:
| Mensagem | Quando aparece | O que fazer |
|---|---|---|
You need Shopify Operator (or Manager) access for this action. | Ao carregar no botão sem acesso de operador nem de gestor do Shopify. | Pede esse acesso ou que carregue outra pessoa que o tenha. |
Nenhum ID de pedido Shopify encontrado. (No Shopify order ID found.) | Ao carregar no botão com Pedido Shopify vazio. | Revê esse campo na ficha: não se escreve à mão, é o módulo que o preenche. |
Cancelamento de pedido Shopify falhou: … (Shopify order cancel failed: …) | Ao carregar no botão, quando o Shopify devolve erros com texto; o texto do Shopify vai no lugar das reticências. | Lê o motivo que o Shopify dá. Nesse caso o botão pára e o estado não muda. |
O que tirar do caso
- Com a caixa automática desativada, cancelar a ordem de venda no Odoo não avisa o Shopify por esse caminho; o botão sim.
- O
EstadoCanceladoescreve-se depois de pedir o cancelamento ao Shopify, a não ser que o Shopify devolva erros com texto: então apareceCancelamento de pedido Shopify falhou: …e não muda nada. - Uma falha ao cancelar a ordem de venda do Odoo não se vê no ecrã: se tiveres dúvidas, verifica a ordem de venda associada depois de carregar.
Como a FlexigoTech ajuda
O módulo está publicado no Odoo Apps para Odoo 17, 18, 19 e 20; tens a ficha do Odoo Apps e a página do módulo. Além do pagamento único do módulo, precisa da subscrição do FlexigoTech Cloud: a ligação ao Shopify passa por esse serviço, que guarda cifradas as credenciais e avisa por e-mail se a sincronização falhar (plano Conector: 49 €/mês ou 490 €/ano sem IVA). A FlexigoTech implementa Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida, caso precises de ajustar o fluxo de cancelamentos à tua loja.
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_seller_connector 20.0 (2950bdc0): views/shopify_order_views.xml
- Código do módulo: flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/shopify_order.py
- Código do módulo: flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/sale_order.py
- Código do módulo: flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/shopify_instance.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
