Saltar para o conteúdo principal
Shopify

O erro «O stock tem uma só origem» do Shopify Connector, caso a caso

A mensagem aparece ao guardar uma instância da Shopify com as duas caixas de stock marcadas em simultâneo: Sync Stock Enabled e Obter o stock da Shopify. O Odoo não guarda a ficha até deixares apenas uma, porque o stock só pode ter uma origem: ou o Odoo o envia para a Shopify, ou a Shopify o traz para o Odoo.

FlexigoTech · Responsável: Víctor Gómez · Atualizado em 5 de novembro de 2026

O essencial

Módulo
Shopify
Versões
Odoo 17, 18, 19 e 20
Verificado
no código do conector, versão 20.0 · nas fontes indicadas no fim
Leitura
5 min

O que vês e em que momento

Ao guardar a ficha de uma instância da Shopify, o Odoo pode interromper a gravação com este texto: O stock tem uma só origem: envie-o do Odoo para a Shopify ou obtenha-o da Shopify para o Odoo, não as duas coisas. (Stock has one master: push it from Odoo to Shopify or pull it from Shopify into Odoo, not both.). A ficha não é guardada, pelo que o que acabaste de alterar nela não fica gravado.

No Odoo 20.0, a ficha abre-se a partir do menu Vendas (Sales), depois Shopify, Control Center e Instances, por esta ordem. As duas caixas envolvidas estão no separador Operations, dentro do grupo Configurações de sincronização (Sync Settings): Sync Stock Enabled e Obter o stock da Shopify (Pull stock from Shopify). Segundo o código, ambas vêm desmarcadas por defeito.

Esquema feito com código, não um ecrã do Odoo: de cima para baixo, o menu de instâncias, guardar com as caixas de stock e a mensagem de erro
Esquema a partir do código publicado do módulo (Odoo 17.0, 18.0, 19.0 e 20.0). As etiquetas estão em inglês, o texto original do código.
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Vídeo: Your Odoo doesn't talk to Amazon, Temu or Shopify? (vídeo em inglês)

Um caso para o ver

Exemplo Caso ilustrativo: a empresa e os seus dados são inventados para explicar o fluxo.

Imagina uma loja fictícia, Cerâmicas do Norte, que vende na Shopify e gere o inventário no Odoo. Quem administra a ligação tem marcada Sync Stock Enabled: o Odoo é a origem do stock e envia para a Shopify a sua quantidade em mão. Um dia pensa que, já agora, também quer que a Shopify lhe conte o que se passa na loja. Marca Obter o stock da Shopify e carrega em guardar. Aparece a mensagem e a ficha fica como estava.

A ligação continua intacta: o módulo impediu uma configuração com duas origens. O comentário do próprio código explica-o assim: com as duas ativas, o envio do Odoo para a Shopify e a leitura da Shopify para o Odoo escreveriam o mesmo número um por cima do outro.

O que deve aprender quem administra é que primeiro se decide quem manda no stock e depois se marca uma só caixa. Na loja do exemplo, se o Odoo continuar a ser a origem, desmarca-se a que traz o stock e guarda-se sem mais.

O que verifica exatamente o módulo

É uma verificação feita ao guardar, que se dispara quando muda qualquer uma das duas caixas. O módulo olha para as instâncias que estão a ser guardadas: se alguma tiver ao mesmo tempo ativadas Sync Stock Enabled e Obter o stock da Shopify, interrompe a ação com a mensagem. Nesse código não há mais nenhuma condição: nem o estado da ligação, nem a loja, nem o armazém.

A ajuda de cada caixa dá o significado de cada sentido:

  • Sync Stock Enabled: o Odoo é a origem do stock e a sua quantidade em mão é enviada para a Shopify. A ajuda acrescenta que não pode estar ativada ao mesmo tempo que Obter o stock da Shopify.
  • Obter o stock da Shopify: a Shopify é a origem do stock. Cada leitura fixa o stock em mão da localização principal da Shopify na localização do Odoo associada, com um ajuste de inventário, subtraindo o que o Odoo entregou e a Shopify ainda não cumpriu.

A ajuda da segunda caixa avisa ainda de que o stock em mão da Shopify inclui o que tem como danificado, em controlo de qualidade ou como stock de segurança, e que no Odoo é stock como o resto. Diz também que não pode estar ativada com outra loja que traga stock para a mesma localização do Odoo.

Como resolver

  1. Abre a instância a partir do menu de instâncias da Shopify (o caminho está mais acima).
  2. Vai ao separador Operations e procura o grupo Configurações de sincronização.
  3. Decide quem é a origem do stock dessa loja. É uma decisão de negócio, não do módulo.
  4. Se a origem for o Odoo, deixa marcada Sync Stock Enabled e desmarca Obter o stock da Shopify.
  5. Se a origem for a Shopify, deixa marcada Obter o stock da Shopify e desmarca Sync Stock Enabled.
  6. Guarda a ficha. Se só restar uma caixa marcada, esta verificação deixa de interromper a gravação.

Se escolheres que manda a Shopify, a ajuda da caixa diz que ativá-la não executa a leitura: é preciso ativar também a ação agendada de obtenção de stock que essa ajuda nomeia. Sobre a leitura de stock tens outro artigo: o botão Pull Stock, passo a passo.

O que verificar depois

  • Que a ficha é guardada sem mensagem e que, no grupo Configurações de sincronização, fica marcada apenas uma das duas caixas.
  • Se escolheste a Shopify como origem, que a ação agendada que a ajuda menciona está ativada.
  • Se outra loja traz stock para a mesma localização do Odoo, que não coincidem duas lojas nessa localização: a ajuda assinala-o como outra restrição da caixa Obter o stock da Shopify.

Com o Odoo em castelhano, o texto do erro é o de cima. Este esquema, feito com código a partir das traduções publicadas, mostra como se lê noutros idiomas:

Esquema feito com código, não um ecrã do Odoo: a mesma mensagem em castelhano, alemão, francês, italiano e português
Esquema a partir das traduções publicadas do módulo.

Versões e custo

A mensagem está no código publicado dos quatro ramos (17.0, 18.0, 19.0 e 20.0). A condição, os campos e o menu descritos correspondem ao código do Odoo 20.0. O módulo está publicado no Odoo Apps para Odoo 17, 18, 19 e 20 por 9 € por versão do Odoo, pagamento único, sem IVA, e requer a subscrição do FlexigoTech Cloud: o plano Conector custa 49 €/mês ou 490 €/ano, sem IVA.

Como ajuda a FlexigoTech

Se estás a implementar o Odoo e ainda não tens claro quem deve ser a origem do stock entre a tua loja e o teu inventário, a FlexigoTech implementa o Odoo 17, 18, 19 e 20 e desenvolve conectores e integrações à medida. Convém tomar essa decisão antes de marcar qualquer caixa.

Uma caixa marcada, a outra não

A mensagem responde a uma regra do módulo que se verifica ao guardar. Deixa marcada apenas a caixa do sentido que escolheres e a ficha é guardada.

Continue a ler

O que faz o botão Pull Stock do Shopify Connector, passo a passoO que faz o botão Pull Stock do Shopify Connector no Odoo 20: quando aparece, o que verifica, que ajustes de inventário cria e que erros pode dar.
Verificado no código do conector (versão 20.0) e nas fontes indicadas

Fontes