Primeiro, o caminho que não passa pelo botão
Para pedidos e produtos, o Odoo não precisa que carregue em nada: há tarefas agendadas que chamam as mesmas ações que o Run. O que se segue descreve o código do Odoo 20.0; o botão existe nas versões 17, 18, 19 e 20.
- Reveja a tarefa agendada
Shopify Sync Orders: instala-se desativada e, depois de ativa, executa-se a cada cinco minutos. - Reveja
Shopify Sync Products: também se instala desativada e executa-se a cada hora. - Tenha presente como trabalha a de pedidos: só a pode executar um administrador e percorre as instâncias ativas que têm a sincronização de pedidos ativada e um token de acesso. Se uma instância falhar, deixa o erro no registo do servidor e continua com as restantes.
- Use o
Runquando quiser lançá-lo manualmente: trabalha sobre a instância que escolher, sem essas condições de seleção, pode lançar também stock e webhooks, e se algo falhar o erro é-lhe mostrado.

Antes de carregar: o ecrã e as suas caixas
O botão Run está no ecrã Sincronização manual Shopify (Shopify Manual Sync) e vê-se sempre, sem qualquer condição. O que decide o que faz são os campos dessa ficha.
- Escolha a instância da loja no campo
Instance. - Deixe marcada
Sincronizar pedidosse quiser trazer pedidos: vem marcada por defeito. - Marque
Push Stockapenas se quiser lançar também essa ação: vem desmarcada. - Marque
Register Webhooksapenas se for necessário: vem desmarcada e só a veem os utilizadores com permissão de Sales Administrator ou de Settings administrator. - Certifique-se de que fica pelo menos uma ação marcada, ou o botão pára de imediato.

Run e, ao lado, mensagens que o podem travar.Ao carregar: o que faz, por ordem
O botão percorre as suas ações uma a seguir à outra. Se uma parar com um erro, as seguintes não se executam, e se tudo correr bem a janela fecha-se.
- Seleção. Primeiro verifica se há alguma ação marcada. Se não, pára com o aviso que verá mais abaixo.
- Pedidos (se
Sincronizar pedidosestiver marcada). Procura no Shopify pedidos de qualquer estado, com o filtro de data da instância quando existe. - Primeira importação. Se essa pesquisa não encontrar nada e a instância ainda não tiver nenhum pedido do Shopify importado, volta a ler todo o histórico sem filtro de data. Uma loja que já tem pedidos não repete essa leitura.
- O que muda na instância. Se trouxe pedidos, guarda a data e hora da última sincronização de pedidos, repõe a zero o contador de erros seguidos e esvazia o último erro de sincronização.
- Produtos (quando essa ação está escolhida). Lê os produtos do Shopify por páginas, com o tamanho de página da instância, e processa cada produto recebido. Termina quando não há mais páginas ou se atinge o máximo de páginas da instância, e então guarda a data da última sincronização de produtos.
- Stock (se
Push Stockestiver marcada). Lança a ação de stock da instância. - Webhooks (se
Register Webhooksestiver marcada). Verifica a permissão, o URL e os tópicos, e depois ajusta as subscrições da loja (detalhe na secção seguinte).
O que faz o passo dos webhooks
- O módulo verifica se quem carrega é Sales Administrator ou Settings administrator. As vistas apenas ocultam a caixa: a verificação faz-se também na execução.
- Descarta sempre o tópico de pedidos atualizados e retira os tópicos de pedidos ou de produtos que não estejam ativados na instância.
- Lê as subscrições que já existem no Shopify e apaga as que apontam para outro URL, as de um tópico que já não é necessário e as duplicadas. Se uma eliminação falhar, regista-o no registo do servidor e continua.
- Cria no Shopify as subscrições em falta, uma por tópico, e salta as que já existem com esse URL.
Se algo falhar: que mensagem, porquê e o que fazer
Selecione pelo menos uma ação.(Select at least one action.): não havia nenhuma ação marcada. Marque uma e volte a carregar.

Only a Sales Administrator or a Settings administrator can register the store's webhooks.: quem carrega não tem nenhuma dessas permissões. Que o faça um utilizador que a tenha.O URL webhook não está disponível. Verifique o URL base do Odoo e o token webhook.(Webhook URL is not available. Check Odoo base URL and webhook token.): reveja esses dados, como pede a própria mensagem.Configure pelo menos um tópico webhook.(Please configure at least one webhook topic.): configure um tópico de webhook na instância. Também pode surgir se, depois de retirar os tópicos de pedidos ou de produtos não ativados, não restar nenhum.Sincronização de pedido Shopify falhou para …: …(Shopify order sync failed for …: …): depois de «para» vem o domínio da loja e depois dos dois pontos o erro recebido. Leia o erro que aparece a seguir aos dois pontos e corrija a causa antes de repetir.
Custo e ajuda
O módulo custa 9 € por versão do Odoo, para 17, 18, 19 e 20, sem IVA, e precisa da subscrição do FlexigoTech Cloud: o plano Conector é de 49 €/mês ou 490 €/ano, sem IVA.
Se está a implementar o Odoo e quer deixar a sincronização do Shopify afinada, a FlexigoTech implementa o Odoo 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): wizard/shopify_sync_wizard_views.xml
- Código do módulo: flexigobe_shopify_connector 20.0 (c7078cd8): wizard/shopify_sync_wizard.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
