O que é esta tarefa e quando corre
É uma tarefa agendada do Odoo chamada Sincronizar produtos Shopify (Shopify Sync Products). Corre a cada hora e vem desativada ao instalar o módulo, pelo que, até alguém a ativar, não faz nada. Existe em todos os ramos publicados do módulo (Odoo 17, 18, 19 e 20); no Odoo 17 está configurada para se repetir sem fim.

As lojas abrem-se a partir do menu Shopify › Configuração › Lojas. Se não vires um troço do menu, é por permissões: o troço Shopify exige Visualizador (Viewer) e o troço Configuração exige Operador (Operator).


Um caso para seguir uma passagem completa
Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.
A Casa Olivar é uma empresa inventada de utensílios domésticos, com uma loja Shopify principal e uma segunda loja pequena, ambas ligadas ao seu Odoo. A Marta, a administradora, instala o módulo e ativa a tarefa Sincronizar produtos Shopify. No Odoo 20, em cada passagem a tarefa faz o seguinte quando chega a hora da execução seguinte:
- O Odoo lança a tarefa e a primeira coisa que verifica é se quem a executa é administrador. Se não for, para com a mensagem
Only an administrator can run this scheduled action.e não faz mais nada. - Escolhe as lojas com que vai trabalhar: as que estão ativas, têm a sincronização de produtos ativada e têm credenciais guardadas, seja um token de acesso ou o segredo da API da app. A segunda loja da Casa Olivar ainda não tem nenhuma das duas coisas, pelo que não entra na passagem.
- Para cada loja escolhida, a tarefa pede ao Shopify os produtos por páginas.
- Cada produto é guardado de forma isolada. Se um falhar, a tarefa regista um aviso no registo técnico e passa ao seguinte: um produto com problemas não aborta a passagem. A tarefa vai contando os produtos que foram efetivamente guardados.
- A passagem termina quando já não há mais páginas ou quando se atinge o limite de páginas da loja. Se terminar por completo, a tarefa guarda a hora atual como último momento de sincronização de produtos. Se foi cortada pelo limite e ainda havia páginas, a tarefa pode guardar, em seu lugar, a data de atualização do último produto visto, desde que seja posterior à que já existia: nunca para trás. A ideia é que a passagem seguinte continue a partir daí, em vez de dar por visto tudo o que ficou por ler.
- Se a sincronização de uma loja inteira falhar, a tarefa regista a falha no registo técnico e segue para a loja seguinte.
- Há uma exceção: se o FlexigoTech Cloud puser a sincronização em pausa, a passagem dessa loja para sem saltar nenhum produto e não fica registada como falhada.
No caso da Casa Olivar, a loja principal tem mais páginas de produtos do que o limite. A primeira passagem é cortada e, na hora seguinte, retoma a partir do último produto visto, até que uma passagem chegue ao fim.
O que rever se não fizer nada
Percorre estas verificações por ordem.
- A tarefa está desativada. Vem assim ao instalar. Enquanto não for ativada, não corre.
- A loja não cumpre as condições. A tarefa só apanha lojas ativas, com a sincronização de produtos ativada e com um token de acesso ou o segredo da API da app guardados. Uma loja com credenciais de cliente pode não ter token até à sua primeira chamada, e por isso basta ter credenciais. Abre as lojas a partir de
Shopify › Configuração › Lojas. - Quem executa não é administrador. A tarefa para com
Only an administrator can run this scheduled action.. - O FlexigoTech Cloud pôs a sincronização em pausa. A passagem da loja afetada é cortada e não fica registada como falhada. Sem subscrição, ou com o serviço suspenso, pára o que a subscrição dá; os dados ficam no teu Odoo.
- A passagem foi cortada pelo limite de páginas. Se ainda havia páginas, a passagem seguinte continua a partir do último produto visto.
- Falta um produto concreto. Se esse produto falhar ao ser guardado, a tarefa salta-o, deixa um aviso no registo técnico e segue com os restantes.
O que aprender com o caso
Um produto com problemas é saltado, e uma loja que falha não impede que a seguinte seja processada. O que de facto pára a tarefa é não ser executada por um administrador; uma pausa do FlexigoTech Cloud corta a passagem da loja afetada. Por isso, quando «não faz nada», convém verificar primeiro se a tarefa está ativada e se a loja cumpre as condições.
Como a FlexigoTech 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). A ligação passa pelo FlexigoTech Cloud, que guarda as credenciais cifradas, vigia a sincronização e avisa por e-mail se falhar. Está publicado para Odoo 17, 18, 19 e 20; o preço de cada versão está na ficha do Odoo Apps e na página do módulo. Com a subscrição, o módulo para as versões novas do Odoo vem incluído se o compraste em flexigotech.com; na Odoo App Store, cada versão compra-se lá.
Se estás a implementar o Odoo e queres rever como fica a sincronização do teu catálogo, 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/en/services.html
- flexigotech.com/precios.html
