Onde está o botão e quando se vê
O botão Atualizar do Shopify (Refresh from Shopify) está no ecrã Pedidos Shopify (Shopify Orders). Para lá chegar, abre Vendas (Sales), depois Shopify, depois Operations e por fim Orders. A condição da sua vista diz que se vê sempre, e existe no Odoo 17, 18, 19 e 20.

O rótulo muda com o idioma do Odoo. Com o Odoo em castelhano é Atualizar do Shopify; em alemão, Von Shopify aktualisieren; em francês, Actualiser depuis Shopify; em italiano, Aggiorna da Shopify; e em português, Atualizar do Shopify.


Primeiro, o que o conector faz sem que carregues em nada
O caminho normal é automático. A tarefa agendada Shopify Process Webhooks (a cada minuto, ativa ao instalar) chega até ao processamento dos avisos de webhook do Shopify. Quando o aviso é de uma encomenda e a caixa Webhook Sync Orders está marcada, o módulo toma o identificador da encomenda do próprio aviso e lança a mesma sincronização de encomendas que o botão lança.
Essa caixa está na ficha de Shopify Instances, separador Webhooks, e vem marcada por defeito. Mesmo no mesmo separador está Webhook Sync Products, que vem desmarcada por defeito e diz respeito a artigos, não a encomendas.
Por isso o botão é a exceção: serve para voltar a trazer uma encomenda à mão. Além disso, o código do botão não olha para a caixa Webhook Sync Orders: chama diretamente a sincronização com a instância e a encomenda que tem à frente.
Um caso ilustrativo: a encomenda que não bate certo
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
Imagina a Cerámicas Ribera, uma loja inventada para este exemplo que vende no Shopify e gere o resto no Odoo. Uma pessoa da administração abre uma encomenda no Odoo e duvida de que reflita o que o Shopify tem agora. Assim a percorre:
- Entra na ficha de
Shopify Instances, separadorWebhooks, e vê seWebhook Sync Ordersestá marcada. Se estiver, os avisos de encomenda já lançam essa sincronização por si; o que ela procura é uma segunda leitura à mão. - Abre
Vendas,Shopify,OperationseOrders, e entra na encomenda. Repara no campoInstancee no campoPedido Shopify(Shopify Order), porque são os dois dados com que o botão trabalha. - Carrega em
Atualizar do Shopify. - O módulo volta a pedir essa encomenda ao Shopify e, se o Shopify a devolver, entrega-a a outro passo do módulo e conta-a como sincronizada.
- Volta a ver a encomenda no Odoo e compara-a com o Shopify.
O que aprender com o caso: primeiro olha-se para o caminho automático e as suas caixas, e depois usa-se o botão sobre uma encomenda concreta, com a sua instância e o seu identificador do Shopify à frente.
O que o botão faz por dentro, por ordem
- Percorre as encomendas sobre as quais se lança a ação.
- De cada encomenda toma a sua instância (
Instance) e o identificador dePedido Shopify, e entrega-os à sincronização de encomendas dessa instância. - Essa sincronização prepara o identificador da encomenda para o consultar; se não obtiver nenhum, salta essa encomenda e segue para a seguinte.
- Pergunta ao Shopify pela encomenda.
- Se o Shopify não devolver nada, salta essa encomenda e segue.
- Se devolver dados, entrega-os a outro passo do módulo e soma um à contagem de sincronizadas.
- O botão termina devolvendo verdadeiro; não usa essa contagem.
O que pode correr mal e o que verificar
Nos passos terceiro e quinto o código passa à encomenda seguinte sem entregar nada. Se carregares no botão e não vires alterações, compara com o Shopify: pode ser que o Shopify não tenha devolvido nada para essa encomenda ou que não se tenha obtido um identificador válido.
Pela via automática, se a sincronização falhar, o evento do webhook fica marcado como falhado com o texto do erro e entra na fila de novas tentativas. Ao ultrapassar o limite de tentativas passa a esgotado e deixa de ser tentado sozinho; então o módulo deixa uma nota na instância com o aviso O webhook do Shopify … (evento …) voltou a falhar após … tentativas e não será mais tentado automaticamente: …. Depois de corrigir a causa, clique em Tentar novamente no evento. (Shopify webhook … (event …) failed again after … retries and will not be retried any more: …. Once the cause is fixed, press Retry on the event.)
Quanto custa e como te ajuda a FlexigoTech
O módulo custa 9 € por versão do Odoo, para 17, 18, 19 e 20, pagamento único sem IVA (ficha do Odoo Apps), e precisa da subscrição do FlexigoTech Cloud: o plano Conector custa 49 €/mês ou 490 €/ano sem IVA.
A FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. Se quiseres rever como chegam ao Odoo as encomendas da tua loja, também ajudamos com isso.
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): views/shopify_order_views.xml
- Código do módulo: flexigobe_shopify_connector 20.0 (c7078cd8): models/shopify_order.py
- Código do módulo: flexigobe_shopify_connector 20.0 (c7078cd8): models/shopify_instance.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/precios.html
- flexigotech.com/en/services.html
