Par quelle porte un logiciel externe entre-t-il dans Shopify ?
L'API Admin GraphQL est la porte d'entrée de référence : la documentation Shopify range l'API Admin REST dans une rubrique « legacy ». Chaque requête est un POST vers https://{boutique}.myshopify.com/admin/api/{version}/graphql.json, avec le jeton d'accès dans l'en-tête X-Shopify-Access-Token. Ce jeton s'obtient différemment selon le type d'application.
| Situation | Obtention du jeton selon Shopify |
|---|---|
| Application intégrée à l'administration, créée avec Shopify CLI | Échange de jeton (token exchange), sans redirection du marchand |
| Application utilisée hors de l'administration | Code d'autorisation : le marchand approuve l'accès sur Shopify |
| Service serveur qui agit sur vos propres boutiques | Client credentials, sans étape d'approbation ; jeton valable 24 heures, puis redemandé |
| Application personnalisée créée dans l'administration | Création impossible pour une nouvelle application ; les existantes continuent de fonctionner |
Les jetons hors ligne expirants durent une heure et s'accompagnent d'un jeton de rafraîchissement valable 90 jours. Selon Shopify, les nouvelles applications publiques ne peuvent déjà plus utiliser de jetons hors ligne non expirants pour l'API Admin GraphQL, et les applications publiques existantes ne le pourront plus après le 1er janvier 2027 ; la règle ne vise pas les applications personnalisées. Dans tous les cas, l'application ne demande que les scopes d'accès dont elle a besoin, et le secret client reste côté serveur.
Versions trimestrielles et boutiques de test : le calendrier d'une intégration
Shopify publie une nouvelle version de l'API tous les trois mois, le premier jour du trimestre, et soutient chaque version stable au moins 12 mois, avec au moins neuf mois de chevauchement entre deux versions consécutives. En octobre 2026, la référence affiche 2026-10 comme dernière version stable, aux côtés de 2026-07, 2026-04 et 2026-01.
Quand une application appelle une version retirée, Shopify ne renvoie pas d'erreur : il répond avec la plus ancienne version stable encore accessible, et l'en-tête X-Shopify-API-Version indique la version réellement utilisée. Une intégration suivie surveille cet en-tête et planifie une montée de version au moins une fois par an.
Chaque montée se teste d'abord sur une boutique de développement, l'environnement que Shopify prévoit pour construire et essayer une application, et jamais directement sur la boutique qui encaisse. Le jeu d'essai y reproduit vos cas réels : produits à variantes, commandes avec remise, compte client professionnel, remboursement partiel.
Combien d'appels une intégration Shopify peut-elle faire ?
L'API Admin GraphQL ne compte pas des requêtes mais des points. Chaque champ a un coût (0 pour un scalaire, 1 pour un objet, 10 pour une mutation), une requête ne peut pas dépasser 1 000 points, et le quota se recharge en continu selon le plan, pour chaque couple application et boutique.
| Plan Shopify | Recharge du quota |
|---|---|
| Standard | 100 points par seconde |
| Advanced Shopify | 200 points par seconde |
| Shopify Plus | 1 000 points par seconde |
| Shopify for enterprise (Commerce Components) | 2 000 points par seconde |
Chaque réponse détaille dans extensions.cost le coût demandé, le coût réel et le quota restant, ce qui permet au logiciel de ralentir avant d'atteindre zéro. Pour exporter tout le catalogue ou l'historique des commandes, les opérations en masse (bulkOperationRunQuery) exécutent la requête côté Shopify et livrent un fichier JSONL ; seules les requêtes de lancement, de suivi et d'annulation consomment le quota. Depuis la version 2026-01, cinq opérations de lecture en masse peuvent tourner en même temps par application et par boutique ; le fichier résultat expire au bout d'une semaine, et une opération doit se terminer en 10 jours.
Webhooks Shopify : réception, signature et rattrapage
Les webhooks Shopify s'abonnent dans le fichier de configuration de l'application (Shopify CLI 3.63.0 ou plus récent), pour toutes les boutiques où elle est installée, ou boutique par boutique avec la mutation webhookSubscriptionCreate. Ils sont livrés en HTTPS, vers Google Cloud Pub/Sub ou vers Amazon EventBridge. En HTTPS, la documentation pose quatre règles :
- vérifier l'en-tête X-Shopify-Hmac-Sha256, une signature HMAC-SHA256 du corps brut calculée avec le secret client de l'application, avant de lire le contenu ;
- répondre par un code de la famille 200 : toute autre réponse, redirection 3xx comprise, compte comme une erreur ; la connexion doit s'établir en une seconde et la requête complète tenir en cinq secondes ;
- dédoublonner grâce à l'en-tête X-Shopify-Webhook-Id, conservé en base ;
- prévoir l'échec : Shopify réessaie 8 fois sur 4 heures, puis supprime l'abonnement créé par l'API Admin après 8 échecs consécutifs et prévient par e-mail l'adresse d'urgence du développeur.
Shopify recommande aussi une tâche de réconciliation qui relit périodiquement par l'API ce qui a pu être manqué. Pour une commande qui doit arriver dans l'ERP, le webhook apporte la rapidité, la relecture apporte la garantie.
Cinq flux entre Shopify et un logiciel de gestion
- Commande vers ERP. Un webhook de commande déclenche l'import dans la gestion commerciale, avec le client, les lignes et le mode de livraison ; la relecture nocturne rattrape les messages perdus.
- Stock de l'ERP vers la boutique. Les mouvements validés dans l'ERP mettent à jour les quantités affichées par Shopify ; avec plusieurs entrepôts, la règle de calcul du disponible se décide avec vous, comme sur notre page gestion de stock multi-sites.
- Catalogue de l'ERP vers Shopify. Prix, références et descriptions descendent par mutations. Au-delà de 500 000 variantes dans une boutique, Shopify limite la création à 10 000 nouvelles variantes par jour, hors Shopify Plus : une contrainte à intégrer au calendrier d'une reprise de catalogue.
- Expédition vers la boutique. Le numéro de suivi produit par l'outil logistique ou par le transporteur remonte à la commande Shopify, qui en informe le client ; le côté transporteur est traité sur notre page intégration Chronopost.
- Clients vers le CRM. Les créations et modifications de clients (customers/create, customers/update) alimentent la fiche du CRM, dans le respect des règles sur les données protégées décrites ci-dessous.
Données clients protégées : ce que Shopify exige
Shopify soumet à une approbation distincte les champs qui renvoient des données personnelles de clients quand l'application est publique. Une application personnalisée y accède automatiquement, même si, pour une application personnalisée créée dans l'administration, l'accès aux champs nom, adresse, téléphone et e-mail varie selon le plan. Cet accès ne dispense pas des obligations du RGPD, et Shopify détaille ses exigences sur sa page consacrée aux données clients protégées (protected customer data).
Une intégration sérieuse applique de toute façon les mêmes principes : ne copier que les données nécessaires, fixer des durées de conservation, chiffrer au repos et en transit, chiffrer les sauvegardes, séparer test et production, limiter l'accès du personnel, journaliser les accès et prévoir une procédure en cas d'incident. Une application distribuée sur l'App Store Shopify doit en outre s'abonner aux webhooks de conformité obligatoires, dont customers/data_request et customers/redact. Notre guide RGPD et logiciel métier détaille la partie réglementaire.
Connecteur de l'App Store ou intégration développée : ce que YMHB Web livre
Commencez par chercher dans l'App Store Shopify un connecteur pour votre ERP ou votre logiciel de gestion : s'il couvre vos flux, c'est la voie la plus rapide. Le sur-mesure devient pertinent quand l'ERP est spécifique ou ancien, quand les règles de stock ou de prix sont propres à votre métier, ou quand plusieurs boutiques et canaux doivent rester cohérents. Si le choix de la plateforme elle-même reste ouvert, voyez notre comparatif Shopify ou WooCommerce.
YMHB Web cadre les flux et désigne, pour chaque donnée, le logiciel qui fait foi avant tout chiffrage. L'application est créée au nom de votre organisation, développée sur une boutique de développement, puis installée sur votre boutique. Vous recevez un service de synchronisation qui vérifie chaque signature, dédoublonne et relit chaque nuit ce qui aurait été manqué, un tableau des échanges en erreur, un suivi des versions d'API, et le code, déposé chez vous et documenté. La méthode générale est décrite sur notre page connecter ses logiciels par API.
Questions fréquentes
Shopify a-t-il une API pour connecter un ERP ?
Oui, Shopify propose l'API Admin GraphQL, qui permet à un logiciel externe de lire et de modifier les produits, les commandes et les clients d'une boutique avec un jeton d'accès transmis dans l'en-tête X-Shopify-Access-Token. La documentation Shopify classe l'API Admin REST comme legacy : une nouvelle intégration entre Shopify et un ERP se construit donc sur l'API GraphQL.
Quelles sont les limites d'appels de l'API Shopify ?
L'API Admin GraphQL de Shopify limite les appels par un coût en points recalculé en continu : 100 points par seconde sur le plan Standard, 200 sur Advanced, 1 000 sur Shopify Plus et 2 000 sur Shopify for enterprise. Une requête ne peut pas dépasser 1 000 points. Pour les gros volumes, Shopify propose les opérations en masse, dont l'exécution n'est pas soumise à cette limite.
Peut-on encore créer une application personnalisée dans l'administration Shopify ?
Non, Shopify indique qu'il n'est plus possible de créer une nouvelle application personnalisée depuis l'administration de la boutique. Les applications existantes continuent de fonctionner, et Shopify déconseille de les supprimer puisqu'on ne pourrait pas les recréer. Pour une nouvelle intégration, Shopify oriente vers le Dev Dashboard ou Shopify CLI.
Que se passe-t-il quand un webhook Shopify n'est pas reçu ?
Quand un webhook Shopify n'obtient pas de réponse de la famille 200 dans les cinq secondes, Shopify réessaie 8 fois sur 4 heures. Après 8 échecs consécutifs, l'abonnement créé par l'API Admin est supprimé et l'adresse d'urgence du développeur est prévenue. Shopify recommande donc de dédoublonner avec l'en-tête X-Shopify-Webhook-Id et de prévoir une tâche de réconciliation qui relit les données par l'API.
Comment tester une intégration Shopify sans risque ?
Shopify prévoit des boutiques de développement pour construire et tester une application sans toucher à la boutique en production. Une intégration Shopify s'y développe avec un jeu d'essai qui reproduit les cas réels de l'entreprise (variantes, remises, remboursements), puis chaque montée de version de l'API y est rejouée avant d'être appliquée à la boutique qui encaisse.
À lire aussi
Sources
- Shopify.dev, GraphQL Admin API reference
- Shopify.dev, API rate limits de l'API Admin GraphQL
- Shopify.dev, Authentication and authorization (types d'applications, obtention du jeton, accès aux données clients)
- Shopify.dev, Access tokens (durées de validité)
- Shopify.dev, Admin-created custom apps (legacy)
- Shopify.dev, API versioning
- Shopify.dev, Perform bulk operations with the GraphQL Admin API
- Shopify.dev, Webhooks reference
- Shopify.dev, Webhook delivery structure
- Shopify.dev, Verify webhook deliveries
- Shopify.dev, Protected customer data
- Shopify.dev, Development stores
