Aller au contenu principal
Shopify

L'erreur « Le stock n'a qu'une seule source » de Shopify Connector, cas par cas

Le message apparaît à l'enregistrement d'une instance Shopify dont les deux cases de stock sont cochées en même temps : Sync Stock Enabled et Récupérer le stock depuis Shopify. Odoo n'enregistre pas la fiche tant qu'il n'en reste qu'une, car le stock ne peut avoir qu'une seule source : soit Odoo l'envoie à Shopify, soit Shopify le remonte dans Odoo.

FlexigoTech · Responsable : Víctor Gómez · Mis à jour le 5 novembre 2026

L'essentiel

Module
Shopify
Versions
Odoo 17, 18, 19 et 20
Vérifié
dans le code du connecteur, version 20.0 · dans les sources citées à la fin
Lecture
5 min

Ce que vous voyez et à quel moment

À l'enregistrement de la fiche d'une instance Shopify, Odoo peut interrompre la sauvegarde avec ce texte : Le stock n'a qu'une seule source : envoyez-le d'Odoo vers Shopify ou récupérez-le de Shopify dans Odoo, pas les deux. (Stock has one master: push it from Odoo to Shopify or pull it from Shopify into Odoo, not both.). La fiche n'est pas enregistrée : ce que vous venez de modifier n'est donc pas conservé.

Dans Odoo 20.0, la fiche s'ouvre depuis le menu Ventes (Sales), puis Shopify, Control Center et Instances, dans cet ordre. Les deux cases concernées se trouvent dans l'onglet Operations, dans le groupe Paramètres de synchronisation (Sync Settings) : Sync Stock Enabled et Récupérer le stock depuis Shopify (Pull stock from Shopify). D'après le code, les deux sont décochées par défaut.

Schéma réalisé avec du code, pas une capture d'écran d'Odoo : de haut en bas, le menu des instances, l'enregistrement avec les cases de stock et le message d'erreur
Schéma établi à partir du code publié du module (Odoo 17.0, 18.0, 19.0 et 20.0). Les libellés sont en anglais, le texte d'origine du code.
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Vidéo : Your Odoo doesn't talk to Amazon, Temu or Shopify? (vidéo en anglais)

Un cas pour comprendre

Exemple Cas illustratif : l'entreprise et ses chiffres sont inventés pour expliquer le flux.

Imaginez une boutique fictive, Cerámicas del Norte, qui vend sur Shopify et gère son inventaire dans Odoo. La personne qui administre la connexion a coché Sync Stock Enabled : Odoo est la source du stock et envoie à Shopify sa quantité disponible. Un jour, elle se dit que, tant qu'à faire, elle voudrait aussi que Shopify lui remonte ce qui se passe en boutique. Elle coche Récupérer le stock depuis Shopify et clique sur enregistrer. Le message apparaît et la fiche reste comme elle était.

La connexion est intacte : le module a empêché une configuration à deux sources. Le commentaire du code l'explique ainsi : avec les deux actives, l'envoi d'Odoo vers Shopify et la lecture de Shopify vers Odoo s'écraseraient mutuellement le même chiffre.

Ce que l'administrateur doit retenir, c'est qu'on décide d'abord qui fait foi pour le stock, puis qu'on ne coche qu'une seule case. Dans la boutique de l'exemple, si Odoo reste la source, on décoche celle qui récupère le stock et on enregistre, sans rien d'autre.

Ce que vérifie exactement le module

C'est une vérification faite à l'enregistrement, qui se déclenche quand l'une des deux cases change. Le module examine les instances en cours d'enregistrement : si l'une d'elles a à la fois Sync Stock Enabled et Récupérer le stock depuis Shopify activées, il interrompt l'action avec le message. Dans ce code, il n'y a aucune autre condition : ni l'état de la connexion, ni la boutique, ni l'entrepôt.

L'aide de chaque case donne la signification de chaque sens :

  • Sync Stock Enabled : Odoo est la source du stock et sa quantité disponible est envoyée à Shopify. L'aide ajoute qu'elle ne peut pas être activée en même temps que Récupérer le stock depuis Shopify.
  • Récupérer le stock depuis Shopify : Shopify est la source du stock. Chaque lecture fixe le stock disponible de l'emplacement principal de Shopify dans l'emplacement Odoo lié, au moyen d'un ajustement d'inventaire, en retranchant ce qu'Odoo a livré et que Shopify n'a pas encore honoré.

L'aide de la seconde case avertit aussi que le stock disponible de Shopify inclut ce qu'il compte comme endommagé, en contrôle qualité ou en stock de sécurité, et que dans Odoo c'est du stock comme le reste. Elle précise également qu'elle ne peut pas être activée si une autre boutique récupère du stock vers le même emplacement Odoo.

Comment le résoudre

  1. Ouvrez l'instance depuis le menu des instances Shopify (le chemin est indiqué plus haut).
  2. Allez dans l'onglet Operations et repérez le groupe Paramètres de synchronisation.
  3. Décidez qui est la source du stock de cette boutique. C'est une décision métier, pas une décision du module.
  4. Si la source est Odoo, laissez Sync Stock Enabled cochée et décochez Récupérer le stock depuis Shopify.
  5. Si la source est Shopify, laissez Récupérer le stock depuis Shopify cochée et décochez Sync Stock Enabled.
  6. Enregistrez la fiche. Dès qu'une seule case reste cochée, cette vérification n'interrompt plus l'enregistrement.

Si vous choisissez Shopify comme source, l'aide de la case indique que l'activer ne lance pas la lecture : il faut aussi activer l'action planifiée de récupération du stock que cette aide nomme. Sur la lecture du stock, vous avez un autre article : le bouton Pull Stock, pas à pas.

À vérifier ensuite

  • Que la fiche s'enregistre sans message et que, dans le groupe Paramètres de synchronisation, une seule des deux cases reste cochée.
  • Si vous avez choisi Shopify comme source, que l'action planifiée mentionnée par l'aide est activée.
  • Si une autre boutique récupère du stock vers le même emplacement Odoo, que deux boutiques ne coïncident pas sur cet emplacement : l'aide le signale comme une autre restriction de la case Récupérer le stock depuis Shopify.

Avec Odoo en espagnol, le texte de l'erreur est celui indiqué plus haut. Ce schéma, réalisé avec du code à partir des traductions publiées, montre comment il se lit dans d'autres langues :

Schéma réalisé avec du code, pas une capture d'écran d'Odoo : le même message en espagnol, allemand, français, italien et portugais
Schéma établi à partir des traductions publiées du module.

Versions et coût

Le message figure dans le code publié des quatre branches (17.0, 18.0, 19.0 et 20.0). La condition, les champs et le menu décrits correspondent au code d'Odoo 20.0. Le module est publié sur Odoo Apps pour Odoo 17, 18, 19 et 20 à 9 € par version d'Odoo, paiement unique, HT, et nécessite l'abonnement à FlexigoTech Cloud : le plan Connecteur coûte 49 €/mois ou 490 €/an, HT.

Comment FlexigoTech vous aide

Si vous êtes en train de déployer Odoo et que vous ne savez pas encore qui doit être la source du stock entre votre boutique et votre inventaire, FlexigoTech déploie Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure. Mieux vaut prendre cette décision avant de cocher la moindre case.

Une case cochée, l'autre non

Le message répond à une règle du module vérifiée à l'enregistrement. Ne laissez cochée que la case du sens que vous choisissez et la fiche s'enregistre.

À lire aussi

Ce que fait le bouton Pull Stock de Shopify Connector, pas à pasCe que fait le bouton Pull Stock de Shopify Connector dans Odoo 20 : quand il apparaît, ce qu'il vérifie, quels ajustements d'inventaire il crée et quelles…
Vérifié dans le code du connecteur (version 20.0) et dans les sources citées

Sources