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
- Accédez à votre interface administrateur Shopify → Paramètres → Applications et canaux de vente
- Cliquez sur Développer des applications → Créer une application
- Définissez le nom de l'application (par exemple, « Intégration Odoo »)
- 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 - Définissez l'URL du webhook :
https://your-odoo.com/shopify/webhook - 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 :
| Champ | Valeur |
|---|---|
| Nom du magasin | Nom de votre magasin |
| Domaine Shopify | votreboutique.myshopify.com |
| Jeton API d'administration | Depuis l'application personnalisée |
| Version API | 2024-10 (dernière version stable) |
| Secret du webhook | Généré automatiquement, utilisé pour vérifier les webhooks |
| Entrepôt par défaut | Entrepôt principal pour les commandes Shopify |
| Monnaie | Stocker la monnaie |
| Entreprise | Société Odoo pour ce magasin |
| Journal des paiements | Journal des paiements Shopify |
| Journal de remboursement | Journal des remboursements Shopify |
| Préfixe de commande | par exemple, "SHO-" |
Étape 3 : Enregistrez les webhooks
Après avoir enregistré la configuration, cliquez sur Enregistrer les Webhooks. Le connecteur s'abonne à :
orders/createorders/updatedorders/paidorders/fulfilledorders/partially_fulfilledorders/cancelledrefunds/createinventory_levels/updateproducts/update
Synchronisation du catalogue de produits
Options de direction de synchronisation :
| Mode | Descriptif | Cas d'utilisation |
|---|---|---|
| Odoo → Shopify | Odoo est maître, Shopify est display | Nouveaux produits créés dans Odoo ERP en premier |
| Shopify → Odoo | Shopify est maître, Odoo est esclave | Boutique Shopify existante, ajoutant Odoo |
| Bidirectionnel | Les modifications dans l'un ou l'autre système sont synchronisées dans les deux sens | Rare; 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 Odoo | Champ Shopify |
|---|---|
| Nom du produit | Titre |
| Description des ventes | Corps HTML |
| Catégorie de produit | Type de produit |
| Balises | Balises |
| Prix catalogue | Prix |
| Comparer au prix | Comparer au prix |
| Code à barres (EAN) | Code à barres |
| Poids | Poids |
| Images de produits | Images |
| Ventes OK | Publié (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 :
- Odoo
product.template→ Produit Shopify - Odoo
product.product(variantes) → Variantes Shopify - 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) :
- Accédez à Shopify → Catalogue → Synchronisation groupée
- Sélectionnez les catégories de produits à synchroniser
- Exécutez la tâche de synchronisation en masse (processus en arrière-plan)
- Surveillez la progression dans le journal de synchronisation
- 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 :
- Reçoit la charge utile du webhook de Shopify
- Vérifie la signature du webhook (HMAC-SHA256)
- Crée immédiatement une commande de vente dans Odoo
- 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 Shopify | Champ Odoo |
|---|---|
| Numéro de commande | Référence (avec préfixe) |
| Nom du client | nom du partenaire res. |
| Courriel du client | E-mail du partenaire |
| Adresse de facturation | Adresse de facturation |
| Adresse de livraison | Adresse de livraison |
| Éléments de campagne | Lignes d'ordre de vente |
| Codes de réduction | Lignes de réduction |
| Méthode d'expédition | Transporteur de livraison |
| Frais d'expédition | Ligne de frais de livraison |
| Taxe totale | Lignes fiscales |
| Situation financière | État du paiement |
| Statut d'exécution | Statut de livraison |
| Remarques | Notes client |
| Balises | Balises 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_numbersur bon de commande - Exemple : "Message cadeau" →
notesur bon de commande
Flux de traitement des commandes :
Après l'importation, le connecteur gère la commande via le workflow standard d'Odoo :
- Commande de vente confirmée
- Bon de livraison créé dans Odoo WMS
- Sélections, packs, expéditions en entrepôt
- Livraison validée dans Odoo (suivi renseigné)
- Le connecteur envoie le traitement à Shopify avec un numéro de suivi
- 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 Odoo | Emplacement Shopify |
|---|---|
| Entrepôt principal | Emplacement principal |
| Côte Est DC | Emplacement sur la côte Est |
| Côte Ouest DC | Emplacement sur la côte ouest |
| Expéditeur direct | Emplacement 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 :
| Planifier | Tarif en ligne | Tarif en personne |
|---|---|---|
| De base | 2,9 % + 30 ¢ | 2,7% |
| Shopify | 2,6 % + 30 ¢ | 2,5% |
| Avancé | 2,4 % + 30 ¢ | 2,4% |
| Plus | 0,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 :
- Téléchargez le rapport de paiement Shopify Payments (ou via l'API)
- Importer via Shopify → Finance → Importer le paiement
- 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
- Lorsque le virement bancaire arrive : rapprochez-vous du journal Shopify Payments
Gestion des remboursements Shopify :
Lorsqu'un remboursement est traité dans Shopify :
- Le webhook
refunds/createse déclenche - Le connecteur crée une note de crédit dans Odoo par rapport à la facture originale
- Si le stock a été retourné (réapprovisionné) : crée un transfert de retour
- 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 |
|---|---|
| Entreprise | res.company (ou segment client) |
| Catalogue | Liste de prix |
| Conditions de paiement | Modalités de paiement sur bon de commande |
| Projets de commandes | Devis (vente.commande en projet) |
Synchroniser les tarifs B2B :
- Créez un catalogue Shopify B2B dans le connecteur
- Lien vers une liste de prix Odoo
- Attribuer aux entreprises Shopify B2B
- 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.
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.
Articles connexes
Australian GST Guide for eCommerce Businesses
Complete Australian GST guide for eCommerce businesses covering ATO registration, the $75,000 threshold, low value imports, BAS lodgement, and GST for digital services.
eCommerce Bookkeeping: Revenue Recognition and Sales Tax
Master eCommerce bookkeeping with correct revenue recognition timing, sales tax collection across marketplaces, and reconciliation for Shopify, Amazon, and more.
Odoo Accounting vs QuickBooks: Detailed Comparison 2026
In-depth 2026 comparison of Odoo Accounting vs QuickBooks covering features, pricing, integrations, scalability, and which platform fits your business needs.