Antes de carregar: onde está e o que faz o Odoo sozinho
A ficha da instância abre-se a partir do menu Vendas (Sales): entra em Shopify, depois em Control Center e por fim em Instances. O botão Sincronizar produtos existe nos ramos 17, 18, 19 e 20 do Odoo e, segundo a condição da sua vista, aparece sempre.

O botão não é o único caminho. O que ele faz também o faz a tarefa agendada Shopify Sync Products, a cada hora, que vem desativada ao instalar o módulo. O que se segue descreve o código publicado para o Odoo 20.0.
- Decide se te basta a tarefa agendada
Shopify Sync Products(a cada hora, desativada ao instalar): se não a ativares, podes lançar a sincronização de produtos com este botão.
- Abre a ficha da instância e anota o valor de
Last Product Sync. Vê-se na ficha e na lista de instâncias, só de leitura: é o módulo que o escreve, não tu.
- No separador
Operations, grupoConfigurações de sincronização(Sync Settings), revêPage Size(50 por defeito) eMax Pages(20 por defeito). Se pores menos de um em qualquer dos dois, o módulo usa um.
- Se a instância não passa pela FlexigoTech Cloud, o código exige que tenha token de acesso antes de enviar o que quer que seja.

O que faz o botão, por ordem
- Cria um registo de sincronização da instância, do tipo produtos, marcado como em curso.
- Prepara a consulta à Shopify. Pede os produtos ordenados por data de atualização e, de cada um, entre outros dados: título, fornecedor, tipo de produto, estado, descrição, etiquetas, data de atualização, imagem em destaque, opções e até 250 variantes com o seu SKU, preço, preço de comparação, código de barras e quantidade de inventário.
- Decide o filtro. Se
Last Product Syncestiver vazio, não põe nenhum. Se tiver data, pede apenas os produtos atualizados na Shopify desde esse momento. - Chama a Shopify por páginas do tamanho de
Page Size, passando em cada chamada o cursor da página anterior. - Entrega cada produto recebido à ligação de produto da Shopify do módulo e soma-o ao total.
- Pára quando a Shopify indica que não há mais páginas ou quando chega ao número de páginas de
Max Pages. - Escreve em
Last Product Synca data e a hora desse momento e fecha o registo de sincronização, com o total contado como produtos atualizados.
Um pormenor do último passo: a data é escrita ao sair do ciclo, tanto se já não havia mais páginas como se se cortou por Max Pages. A execução seguinte parte, portanto, dessa data. Tem isto presente ao definir Page Size e Max Pages numa loja com muitos produtos.
O que faz a chamada à Shopify
- Se a instância vai pela FlexigoTech Cloud, o pedido passa pelo serviço, que acrescenta o token que guarda (e renova). O Odoo não se liga à loja nem recebe o token.
- Sem esse caminho, o Odoo chama a Shopify com o token da instância.
- Se a Shopify responder que excedeste o seu limite de pedidos, a chamada espera (o tempo que a Shopify indicar ou uns segundos, com um máximo de trinta, e mais tempo a cada nova tentativa) e repete. Faz até três tentativas.
- Se a Shopify rejeitar o token na primeira tentativa e a instância tiver token de renovação, o módulo repete a chamada uma vez, com o token que a instância tiver nesse momento.
- Qualquer outra resposta de erro, uma resposta com erros ou uma resposta com erros de utilizador interrompe a ação com esse erro. Também pára se as tentativas se esgotarem.
Se falhar: o que muda e o que não muda
- Perante um erro, o módulo marca o registo de sincronização como falhado, guarda nele o texto do erro (cortado se for muito longo) e volta a lançar o erro, pelo que a ação pára.
- Numa execução falhada,
Last Product Syncnão é atualizado: esse passo vem depois do ciclo.
- Se a FlexigoTech Cloud pausar a execução, o módulo apaga o registo dessa execução (não fica como falhada) e a ação pára igualmente.
Depois de carregar: o que verificar
Last Product Syncmostra a data e hora atuais na ficha e na lista de instâncias.
- Se a tua loja tem mais produtos do que cabem em
Page SizeporMax Pages, lembra-te de que a data é escrita na mesma e que a execução seguinte pede apenas o que foi atualizado desde aí.
- Verifica como se chama o botão no teu idioma do Odoo. Com o Odoo em castelhano é
Sincronizar produtos; as restantes traduções publicadas estão no esquema.

Sincronizar produtos; em alemão, Produkte synchronisieren; em francês, Synchroniser les produits; em italiano, Sincronizza prodotti; em português, Sincronizar produtos.Para o stock da Shopify tens outro artigo: o que faz o botão «Pull Stock».
Preço e ajuda
O Shopify Connector custa 9 € por versão do Odoo, sem IVA, em pagamento único (para 17, 18, 19 e 20; consulta a ficha), e precisa da subscrição da FlexigoTech Cloud: plano Conector, 49 €/mês ou 490 €/ano sem IVA.
Se estás a implementar o Odoo e queres deixar a sincronização de produtos bem configurada, a FlexigoTech implementa o Odoo 17, 18, 19 e 20 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): views/shopify_instance_views.xml
- Código do módulo: flexigobe_shopify_connector 20.0 (c7078cd8): models/shopify_instance.py
- Código do módulo: flexigobe_shopify_connector 20.0 (c7078cd8): models/fgt_cloud.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
