Odoo + Shopify Sync: Products, Orders, and Inventory

Complete guide to syncing Odoo 19 with Shopify. Covers product sync, real-time order import, bidirectional inventory, financial reconciliation, and multi-store management.

E
ECOSIRE Research and Development Team
|19 mars 202612 min de lecture2.6k Mots|

Odoo + Shopify Sync : produits, commandes et inventaire

Shopify représente plus de 10 % de tous les revenus du commerce électronique aux États-Unis. Pour les entreprises utilisant Odoo 19 Enterprise comme épine dorsale opérationnelle et Shopify comme vitrine face aux clients, la synchronisation des deux systèmes n'est pas négociable : des systèmes déconnectés entraînent des erreurs d'inventaire, des retards de traitement des commandes et des problèmes de comptabilité.

Ce guide couvre l'intégration complète d'Odoo-Shopify : décisions d'architecture, synchronisation du catalogue de produits, importation de commandes en temps réel, gestion bidirectionnelle des stocks, rapprochement Shopify Payments et gestion multi-magasins.

Points clés à retenir

  • Les API REST et GraphQL de Shopify sont toutes deux prises en charge ; GraphQL préféré pour Shopify Plus
  • La synchronisation des produits est bidirectionnelle : créer dans Odoo → publier sur Shopify, ou importer depuis Shopify
  • La synchronisation des stocks est basée sur des événements : se déclenche à chaque mouvement de stock dans Odoo
  • Le webhook de commandes de Shopify vers Odoo permet une importation de commande quasi instantanée (< 30 secondes)
  • Le rapprochement Shopify Payments gère automatiquement les paiements, les frais et les remboursements
  • L'inventaire multi-emplacements se synchronise avec la fonctionnalité multi-emplacements de Shopify
  • Les catalogues Shopify Plus B2B (vente en gros) sont liés aux listes de prix d'Odoo
  • Flux de retours de Shopify vers Odoo RMA avec ajustement automatisé des stocks

Architecture d'intégration

Approche API :

L'intégration utilise l'API REST Admin de Shopify pour la plupart des opérations et des webhooks pour les mises à jour basées sur des événements :

  • API REST : CRUD produit, lecture de commande, gestion des stocks
  • API GraphQL : opérations groupées (export de gros catalogues), tarification B2B (Shopify Plus)
  • Webhooks : création de commande en temps réel, mise à jour des commandes, création de remboursement, mise à jour du niveau de stock

Topologie de connexion :

Odoo 19 (ERP Backend)
    ↕ Product, Inventory, Price
Shopify Admin API / Webhooks
    ↕ Real-time events
Shopify Storefront (Customer-facing)

Authentification :

Shopify utilise des clés API d'application privée ou une application personnalisée OAuth :

  • Application privée : plus simple, recommandée pour les intégrations dans un seul magasin
  • Application personnalisée (OAuth) : requise pour la distribution sur Shopify App Store ou la gestion multi-boutiques

Pour le connecteur ECOSIRE, configurez une application personnalisée dans le tableau de bord des partenaires de Shopify.


Configuration de l'application Shopify

Étape 1 : Créez une application personnalisée dans Shopify

  1. Accédez à votre interface administrateur Shopify → Paramètres → Applications et canaux de vente
  2. Cliquez sur Développer des applications → Créer une application
  3. Définissez le nom de l'application (par exemple, « Intégration Odoo »)
  4. Configurez les étendues de l'API :
    read_products, write_products
    read_orders, write_orders
    read_inventory, write_inventory
    read_shipping, write_shipping
    read_customers, write_customers
    read_fulfillments, write_fulfillments
    read_locations
    read_price_rules, write_price_rules
    
  5. Définissez l'URL du webhook : https://your-odoo.com/shopify/webhook
  6. Installez l'application → copiez le Jeton d'accès à l'API administrateur

Étape 2 : Configurer dans Odoo

Accédez à Ventes → Shopify ou Inventaire → Boutiques Shopify :

ChampValeur
Nom du magasinNom de votre magasin
Domaine Shopifyvotreboutique.myshopify.com
Jeton API d'administrationDepuis l'application personnalisée
Version API2024-10 (dernière version stable)
Secret du webhookGénéré automatiquement, utilisé pour vérifier les webhooks
Entrepôt par défautEntrepôt principal pour les commandes Shopify
MonnaieStocker la monnaie
EntrepriseSociété Odoo pour ce magasin
Journal des paiementsJournal des paiements Shopify
Journal de remboursementJournal des remboursements Shopify
Préfixe de commandepar exemple, "SHO-"

Étape 3 : Enregistrez les webhooks

Après avoir enregistré la configuration, cliquez sur Enregistrer les Webhooks. Le connecteur s'abonne à :

  • orders/create
  • orders/updated
  • orders/paid
  • orders/fulfilled
  • orders/partially_fulfilled
  • orders/cancelled
  • refunds/create
  • inventory_levels/update
  • products/update

Synchronisation du catalogue de produits

Options de direction de synchronisation :

ModeDescriptifCas d'utilisation
Odoo → ShopifyOdoo est maître, Shopify est displayNouveaux produits créés dans Odoo ERP en premier
Shopify → OdooShopify est maître, Odoo est esclaveBoutique Shopify existante, ajoutant Odoo
BidirectionnelLes modifications dans l'un ou l'autre système sont synchronisées dans les deux sensRare; risque de conflits

Recommandé : Odoo → Shopify pour les nouveaux déploiements. Le produit principal d'Odoo fournit des données plus riches (informations d'achat, coûts, nomenclature) dont Shopify n'a pas besoin.

Cartographie des champs de produits :

Champ OdooChamp Shopify
Nom du produitTitre
Description des ventesCorps HTML
Catégorie de produitType de produit
BalisesBalises
Prix ​​cataloguePrix ​​
Comparer au prixComparer au prix
Code à barres (EAN)Code à barres
PoidsPoids
Images de produitsImages
Ventes OKPublié (vrai/faux)
Type de produit (service/stockable)Nécessite l’expédition

Synchronisation des variantes :

Shopify prend en charge jusqu'à 3 options de produits (couleur, taille, matériau) avec un maximum de 100 variantes par produit. Le connecteur mappe les attributs du produit Odoo :

  1. Odoo product.template → Produit Shopify
  2. Odoo product.product (variantes) → Variantes Shopify
  3. Valeurs d'attribut Odoo → Valeurs d'option Shopify

Synchronisation groupée du catalogue :

Pour une configuration initiale avec de grands catalogues (plus de 1 000 produits) :

  1. Accédez à Shopify → Catalogue → Synchronisation groupée
  2. Sélectionnez les catégories de produits à synchroniser
  3. Exécutez la tâche de synchronisation en masse (processus en arrière-plan)
  4. Surveillez la progression dans le journal de synchronisation
  5. Examinez et résolvez toutes les erreurs de mappage

Gestion des commandes

Importation de commandes en temps réel via webhooks :

Lorsqu'un client passe une commande sur Shopify, le webhook orders/create se déclenche en quelques secondes. Le connecteur :

  1. Reçoit la charge utile du webhook de Shopify
  2. Vérifie la signature du webhook (HMAC-SHA256)
  3. Crée immédiatement une commande de vente dans Odoo
  4. Renvoie 200 OK à Shopify (empêche toute nouvelle tentative)

Le temps de bout en bout entre le paiement Shopify et la commande de vente Odoo : généralement 3 à 15 secondes.

Mappage des données de commande :

Champ ShopifyChamp Odoo
Numéro de commandeRéférence (avec préfixe)
Nom du clientnom du partenaire res.
Courriel du clientE-mail du partenaire
Adresse de facturationAdresse de facturation
Adresse de livraisonAdresse de livraison
Éléments de campagneLignes d'ordre de vente
Codes de réductionLignes de réduction
Méthode d'expéditionTransporteur de livraison
Frais d'expéditionLigne de frais de livraison
Taxe totaleLignes fiscales
Situation financièreÉtat du paiement
Statut d'exécutionStatut de livraison
RemarquesNotes client
BalisesBalises internes

Champs de commande personnalisés :

Pour les marchands Shopify Plus avec des attributs de paiement personnalisés :

  • Mapper les attributs des notes de commande Shopify aux champs personnalisés Odoo
  • Exemple : attribut "Numéro de commande" → x_purchase_order_number sur bon de commande
  • Exemple : "Message cadeau" → note sur bon de commande

Flux de traitement des commandes :

Après l'importation, le connecteur gère la commande via le workflow standard d'Odoo :

  1. Commande de vente confirmée
  2. Bon de livraison créé dans Odoo WMS
  3. Sélections, packs, expéditions en entrepôt
  4. Livraison validée dans Odoo (suivi renseigné)
  5. Le connecteur envoie le traitement à Shopify avec un numéro de suivi
  6. Shopify marque la commande comme « Exécutée » et envoie un e-mail au client

Réalisations partielles :

Shopify prend en charge les commandes avec exécutions multiples (expédiez ce qui est disponible maintenant, reposez-vous plus tard). Le connecteur gère :

  • Livraison partielle dans Odoo → traitement partiel envoyé à Shopify
  • Shopify affiche le statut d'exécution partielle au client
  • Les articles restants créent une livraison séparée lorsque le stock est disponible

Synchronisation des stocks

Synchronisation bidirectionnelle de l'inventaire :

L'inventaire circule dans les deux sens pour maintenir l'exactitude :

Odoo → Shopify (direction principale) :

  • Chaque mouvement de stock dans Odoo déclenche une mise à jour du niveau d'inventaire sur Shopify
  • Quantité disponible = En stock - Réservé - Stock de sécurité
  • Mises à jour via l'API de niveau d'inventaire de Shopify

Shopify → Odoo (version de secours) :

  • Si l'inventaire Shopify est ajusté manuellement (administrateur ou application), le webhook se déclenche
  • Le connecteur crée un ajustement d'inventaire Odoo avec note d'audit

Shopify multi-emplacement :

La fonctionnalité multi-emplacements de Shopify suit l'inventaire par emplacement physique. Mapper les entrepôts Odoo aux emplacements Shopify :

Entrepôt OdooEmplacement Shopify
Entrepôt principalEmplacement principal
Côte Est DCEmplacement sur la côte Est
Côte Ouest DCEmplacement sur la côte ouest
Expéditeur directEmplacement du fournisseur

Le connecteur transmet les quantités par emplacement à Shopify en fonction du mappage de l'emplacement de l'entrepôt.

Garanties relatives à l'exactitude des stocks :

  • Le tampon de stock de sécurité empêche Shopify d'afficher tout l'inventaire disponible
  • Gestion des ruptures de stock : lorsque la quantité atteint 0, stock Shopify = 0 (non négatif)
  • Continuer à vendre en cas de rupture de stock : configurable par produit (certains vendeurs autorisent les commandes en souffrance)

Rapprochement des paiements Shopify

Structure des frais de Shopify Payments :

PlanifierTarif en ligneTarif en personne
De base2,9 % + 30 ¢2,7%
Shopify2,6 % + 30 ¢2,5%
Avancé2,4 % + 30 ¢2,4%
Plus0,2% (Paiements Shopify)0,2%

Rapprochement des paiements :

Shopify Payments effectue les versements sur votre compte bancaire tous les 2 à 3 jours ouvrables. Le connecteur importe les données de paiement :

  1. Téléchargez le rapport de paiement Shopify Payments (ou via l'API)
  2. Importer via Shopify → Finance → Importer le paiement
  3. Le connecteur crée des écritures de journal :
  • Revenus (montants nets des ventes par commande)
  • Dépense des frais Shopify (traitement des paiements)
  • Ajustements des remboursements
  • Paiement net à recevoir
  1. Lorsque le virement bancaire arrive : rapprochez-vous du journal Shopify Payments

Gestion des remboursements Shopify :

Lorsqu'un remboursement est traité dans Shopify :

  1. Le webhook refunds/create se déclenche
  2. Le connecteur crée une note de crédit dans Odoo par rapport à la facture originale
  3. Si le stock a été retourné (réapprovisionné) : crée un transfert de retour
  4. Publie une note de crédit → solde compensé sur le compte client

Intégration Shopify Plus B2B

Shopify Plus inclut des fonctionnalités B2B (catalogues de gros, conditions de paiement, paiement net). Le connecteur les intègre à la tarification B2B d'Odoo :

Cartographie de l'entreprise et du catalogue :

ShopifyB2BÉquivalent Odoo
Entrepriseres.company (ou segment client)
CatalogueListe de prix
Conditions de paiementModalités de paiement sur bon de commande
Projets de commandesDevis (vente.commande en projet)

Synchroniser les tarifs B2B :

  1. Créez un catalogue Shopify B2B dans le connecteur
  2. Lien vers une liste de prix Odoo
  3. Attribuer aux entreprises Shopify B2B
  4. Modifications de prix dans la liste de prix Odoo → automatiquement transférées vers le catalogue Shopify B2B

Gestion multi-magasins

Pour les marques exploitant plusieurs magasins Shopify (régions, marques, vente en gros ou au détail) :

Configurations de plusieurs magasins :

Créez des configurations de connecteur distinctes pour chaque boutique Shopify :

  • Différentes informations d'identification API par magasin
  • Visibilité des produits spécifiques au magasin (certains produits dans tous les magasins, d'autres en particulier)
  • Tarification spécifique au magasin (tarification régionale, vente en gros ou au détail)
  • Répartition des stocks spécifique au magasin

Répartition des stocks entre les magasins :

Available for Store A = On-Hand - Reserve for Store B - Reserve for Store C - Safety Stock

Configurez des règles d'allocation pour éviter les ventes excessives lorsque plusieurs magasins puisent dans le même inventaire.


Questions fréquemment posées

Comment le connecteur gère-t-il les métachamps de produit Shopify pour les données personnalisées ?

Les métachamps Shopify stockent des données personnalisées sur les produits, les commandes et les clients. Le connecteur mappe des champs Odoo spécifiques aux métachamps Shopify. Par exemple, mappez le champ x_care_instructions d'Odoo à un métachamp product.care_instructions. Configurez les mappages de champs méta dans les paramètres avancés du connecteur par type de ressource.

Le connecteur peut-il gérer les produits d'abonnement de Shopify (abonnements Shopify ou ReCharge) ?

Les commandes d'abonnement Shopify standard sont importées en tant que commandes régulières dans Odoo. Pour les abonnements ReCharge, les commandes récurrentes se déclenchent en tant que webhooks orders/create individuels et sont importées normalement. Le connecteur ne gère pas le cycle de vie des abonnements dans Shopify : il traite chaque commande, qu'elle soit générée par un abonnement ou unique.

Que se passe-t-il si le serveur Odoo est en panne lorsqu'un webhook Shopify se déclenche ?

Shopify réessaye les webhooks ayant échoué jusqu'à 19 fois en 48 heures. Le connecteur traite le webhook lors de la récupération d'Odoo et la commande est importée. Pour une fiabilité critique, configurez Odoo avec une infrastructure redondante (équilibreur de charge + plusieurs travailleurs) et surveillez les alertes en cas de temps d'arrêt. La fenêtre de nouvelle tentative de 48 heures fournit un tampon pour la maintenance planifiée.

Le connecteur prend-il en charge Shopify Markets (vente internationale multi-devises) ?

Oui. Shopify Markets permet de vendre dans plusieurs devises à partir d'un seul magasin. Le connecteur importe les commandes dans la devise de paiement de l'acheteur et crée des commandes de vente dans cette devise dans Odoo. La conversion des devises utilise le taux de change en vigueur au moment de l'importation de la commande. Configurez des listes de prix distinctes par Shopify Market dans Odoo pour des prix locaux précis.

Comment gérer les cartes cadeaux Shopify dans Odoo ?

Les cartes cadeaux Shopify apparaissent comme mode de paiement sur les commandes. Le connecteur crée une ligne de paiement distincte pour la partie carte-cadeau de chaque commande. Configurez un compte de responsabilité « Shopify Gift Cards » dans Odoo. Lorsqu’une carte cadeau est vendue (via un produit carte cadeau), les revenus sont différés. Lorsqu'il est racheté sur une commande, le passif est apuré et les revenus comptabilisés.


Prochaines étapes

Une intégration Odoo-Shopify bien exécutée devient invisible : elle fonctionne tout simplement, gardant les deux systèmes synchronisés sans intervention manuelle. L'équipe ECOSIRE a créé des intégrations Shopify-Odoo pour tout, des marques D2C traitant 50 commandes/jour aux entreprises de vente au détail traitant 10 000 commandes/jour.

Contactez ECOSIRE à propos de votre intégration Shopify-Odoo →

Explorez les services Shopify d'ECOSIRE →

Partagez les détails de votre magasin et les problèmes actuels et notre équipe définira une intégration Shopify-Odoo qui élimine les écarts entre votre ERP et votre vitrine.

E

Rédigé par

ECOSIRE Research and Development Team

Création de produits numériques de niveau entreprise chez ECOSIRE. Partage d'analyses sur les intégrations Odoo, l'automatisation e-commerce et les solutions d'entreprise propulsées par l'IA.

Discutez sur WhatsApp