Antes da primeira passagem
Vem desativada ao instalar
A tarefa Sincronizar encomendas Shopify corre a cada 5 minutos, mas instala-se desativada: até alguém a ativar não há passagens. Existe nas versões 17, 18, 19 e 20. No Odoo 17.0 está configurada para se repetir sem fim.

O nome da tarefa depende do idioma do seu Odoo: com o Odoo em espanhol é Sincronizar pedidos de Shopify; em alemão, Shopify-Bestellungen synchronisieren; em francês, Synchroniser les commandes Shopify; em italiano, Sincronizza ordini Shopify; em português, Sincronizar encomendas Shopify.

Só um administrador a executa
A primeira coisa que o método verifica é que quem o executa seja administrador do sistema. Se não for, para com Only an administrator can run this scheduled action. e nem chega a olhar para nenhuma loja.
Nem todas as lojas entram no percurso
A tarefa só atende as lojas que estão ativas, têm a sincronização de encomendas ativada e guardam um token de acesso ou o segredo da API da app. O código explica o último requisito: uma loja com credenciais de cliente pode não ter token guardado até a sua primeira chamada o gerar, pelo que basta que tenha credenciais. O que decide quem entra é esse filtro.
As fichas das lojas abrem-se a partir de Shopify › Configuração › Lojas (Shopify › Configuration › Stores). Cada troço do menu pede uma permissão: Configuração (Configuration) pede Operador (Operator) e Shopify pede Visualizador (Viewer). Se não tiver uma delas, não vê esse troço.

O que acontece em cada passagem
Uma loja tranquila não percorre todo o seu histórico
A primeira pesquisa une os termos de importação da loja com um filtro de data. Se não encontrar nada, o código só repete a pesquisa sem o filtro de data quando a loja nunca importou encomendas. Se já tinha importado alguma, a passagem termina aí: o código trata esse resultado como o estado normal de uma loja sem movimento, e repetir a pesquisa sem filtro percorreria o histórico desde a encomenda mais antiga em cada passagem.
Zero encomendas não é um erro, mas deixa uma mensagem
Se a passagem não traz nenhuma encomenda (nem sequer após a pesquisa sem filtro, quando a loja nunca tinha importado nada), o código não a trata como uma falha e deixa uma mensagem na ficha da loja: A sincronização de encomendas Shopify devolveu 0 encomendas para …. Verifique se esta aplicação está ligada à loja esperada e adicione o scope read_all_orders se precisar de encomendas com mais de 60 dias. Em vez das reticências vai o domínio da loja. Nesse caso a data da última sincronização não muda.
Se há dias que não vê encomendas, leia essa mensagem: pede-lhe que verifique se a app está ligada à loja correta e, se precisar de encomendas com mais de 60 dias, que adicione o scope read_all_orders.
Se for cortada pelo limite de páginas, a data não recua
Quando a passagem importa encomendas, guarda a data da última sincronização, repõe a zero o contador de erros seguidos e apaga o último erro. Se parou pelo limite de páginas, guarda a data da última encomenda importada em vez da hora atual, desde que seja posterior à última sincronização guardada (ou que não existisse nenhuma); se não for, guarda a hora atual. Assim a data não recua: o código evita-o para que uma passagem cortada que começou pelo início do histórico não obrigue a percorrê-lo de novo enquanto as encomendas de hoje esperam.
Nesse caso a tarefa deixa ainda uma mensagem na ficha da loja a avisar de que ficam encomendas pendentes e a partir de que data continuará a passagem seguinte.
Uma loja atrás da outra e, quando falha a sério, deixa rasto
A tarefa percorre as lojas uma a uma e chama a sincronização de cada uma dentro de um bloco que apanha os erros. Se ocorrer um erro inesperado, a loja soma um ao seu contador de erros seguidos e guarda o último erro. O erro sobe até à tarefa, que o regista no registo do servidor com o nome da loja e segue para a seguinte: a falha de uma loja não trava as outras.
Há duas exceções. Se o FlexigoTech Cloud tiver pausado a sincronização, o código descarta o registo dessa passagem para que não fique como falhada. E um aviso próprio do módulo, dos que o Odoo mostra num diálogo de erro, não soma ao contador de erros seguidos.
Se parece não fazer nada
- Verifique que a tarefa está ativa: instala-se desativada.
- Verifique que quem a executa é administrador do sistema.
- Lembre-se do que a tarefa pede a cada loja: estar ativa, ter a sincronização de encomendas ativada e guardar um token de acesso ou o segredo da app. As fichas abrem-se a partir de
Shopify › Configuração › Lojas. - Leia as mensagens da ficha da loja: a de zero encomendas diz-lhe o que verificar.
- Lembre-se de que, sem subscrição ou com o serviço suspenso, pára o que a subscrição fornece; os dados ficam no seu Odoo.
Subscrição e ajuda
O módulo é de pagamento único por versão 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 cifradas as credenciais, vigia a sincronização e avisa por e-mail se falhar. O módulo está publicado para Odoo 17, 18, 19 e 20; consulte o preço de cada versão na ficha do Odoo Apps ou na página do módulo.
Para o stock tem outro artigo: o que faz o botão de stock do módulo. Se quiser implementar o Odoo com Shopify ou um conector à medida, a FlexigoTech implementa Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida.
Continue a ler
Verificado no código do conector (versão 17.0 e 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): data/ir_cron_data.xml
- Código do módulo: flexigobe_shopify_seller_connector 17.0 (437257e3): data/ir_cron_data.xml
- Código do módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_instance.py
- Código do módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
