Comment utiliser l’API Shopify pour votre boutique ?

Dans cet article

  • L’API Shopify propose deux protocoles distincts : REST Admin API et GraphQL Admin API
  • L’accès à la shopify-api est gratuit pour tout marchand disposant d’un compte Shopify actif
  • GraphQL est désormais le protocole recommandé par Shopify depuis 2023 pour de meilleures performances
  • Vous pouvez récupérer vos commandes, produits et clients via quelques lignes de code seulement
  • Les limites de requêtes varient de 2 à 20 appels par seconde selon votre plan Shopify
  • Des bibliothèques officielles existent en Node.js, Ruby, Python et PHP pour simplifier l’intégration

Depuis plus de douze ans que je développe des solutions web, j’ai vu l’écosystème e-commerce évoluer considérablement. Parmi toutes les plateformes que j’ai intégrées, Shopify se distingue par la qualité de son API. Que vous souhaitiez synchroniser votre stock avec un ERP, automatiser vos expéditions ou créer un tableau de bord personnalisé, la shopify api vous ouvre un champ de possibilités immense. Dans ce guide, je vous accompagne pas à pas pour comprendre, configurer et exploiter cette interface de programmation au service de votre boutique e-commerce.

Qu’est-ce que l’API Shopify et à quoi sert-elle ?

L’API Shopify (Application Programming Interface) est une interface de communication qui permet à des applications externes d’interagir avec les données de votre boutique. Concrètement, elle vous permet de lire, créer, modifier et supprimer des ressources comme vos produits, commandes, clients ou inventaires, le tout de manière programmatique.

Imaginons que vous gériez une boutique Shopify et un entrepôt doté de son propre logiciel. Sans API, vous devriez exporter manuellement vos commandes chaque jour. Avec la shopify api, votre logiciel d’entrepôt interroge directement Shopify pour récupérer les nouvelles commandes en temps réel. C’est un gain de temps considérable et une réduction drastique des erreurs humaines.

Réponse JSON d'un appel à l'API Shopify affichée dans un éditeur de code
Réponse JSON d’un appel à l’API Shopify affichée dans un éditeur de code

Shopify propose en réalité plusieurs API distinctes selon vos besoins :

  • Admin API : la plus utilisée, elle donne accès à la gestion complète de votre boutique (produits, commandes, clients, stocks)
  • Storefront API : conçue pour créer des expériences d’achat personnalisées côté client (headless commerce)
  • Partner API : destinée aux agences et développeurs partenaires Shopify
  • Payments Apps API : pour les fournisseurs de solutions de paiement

Pour la plupart des marchands et développeurs, c’est l’Admin API qui constitue le point d’entrée principal. C’est celle que je vais détailler dans cet article. Si vous découvrez Shopify, je vous recommande de consulter d’abord notre guide complet sur la formation Shopify pour maîtriser les bases de la plateforme.

REST ou GraphQL : quel protocole choisir ?

L’une des questions que l’on me pose le plus souvent : Shopify utilise-t-il GraphQL ou REST ? La réponse est simple : les deux. Shopify propose une REST Admin API et une GraphQL Admin API. Cependant, depuis 2023, GraphQL est officiellement le protocole recommandé par Shopify pour tous les nouveaux développements.

Voici un comparatif pour vous aider à choisir :

Critère REST API GraphQL API
Format de requête Endpoints fixes (GET, POST, PUT, DELETE) Requêtes flexibles avec sélection de champs
Sur-récupération de données Oui, retourne tous les champs Non, vous choisissez exactement les champs
Nombre d’appels nécessaires Souvent plusieurs pour des données liées Un seul appel peut suffire
Limite de débit 2 à 20 requêtes/seconde selon le plan Basée sur un système de points (coût calculé)
Courbe d’apprentissage Plus accessible pour les débutants Nécessite de comprendre le langage de requête
Nouvelles fonctionnalités Support maintenu mais limité Priorité pour les nouveautés Shopify
Documentation Mature et bien fournie En expansion constante

Mon conseil : si vous démarrez un nouveau projet, partez directement sur GraphQL. La syntaxe peut sembler déroutante au début, mais les avantages en termes de performance et de flexibilité sont indéniables. En revanche, si vous maintenez une intégration existante en REST, inutile de tout migrer dans l’urgence. La REST API reste fonctionnelle et documentée. Consultez la documentation officielle de l’API Shopify pour explorer les deux protocoles en détail.

Comment obtenir vos clés d’accès à l’API Shopify

Avant de pouvoir effectuer le moindre appel API, vous devez disposer d’une Shopify API key et d’un jeton d’accès. Voici la procédure que je suis systématiquement pour mes clients :

Étape 1 : créer une application personnalisée

Connectez-vous à votre tableau de bord Shopify, puis rendez-vous dans Paramètres > Applications et canaux de vente > Développer des applications. Si c’est votre première fois, vous devrez activer le développement d’applications personnalisées en cliquant sur le bouton dédié.

Étape 2 : configurer les portées d’accès (scopes)

Une fois votre application créée, vous devez définir les portées d’accès (scopes). Ce sont les permissions que vous accordez à votre application. Par exemple :

  • read_products et write_products pour gérer les produits
  • read_orders et write_orders pour les commandes
  • read_customers pour consulter les données clients
  • read_inventory et write_inventory pour le stock

Principe de moindre privilège : n’accordez que les permissions strictement nécessaires à votre cas d’usage. Si votre application ne fait que lire les commandes, inutile de lui donner un accès en écriture sur les produits.

Étape 3 : récupérer vos identifiants

Après configuration, Shopify vous fournit :

  • Une API key (clé publique)
  • Un API secret key (clé secrète)
  • Un Access token (jeton d’accès Admin API)

Conservez ces identifiants en lieu sûr. Le jeton d’accès ne sera affiché qu’une seule fois. Si vous le perdez, vous devrez en générer un nouveau. Pour bien comprendre comment gérer un nom de domaine et l’infrastructure associée à votre boutique, consultez notre article sur la définition du nom de domaine.

Réaliser vos premiers appels API : exemples concrets

Passons à la pratique. Je vais vous montrer comment effectuer vos premiers appels à la shopify api avec des exemples concrets que j’utilise régulièrement en production.

Développement d'un script Python pour interagir avec la shopify api
Développement d’un script Python pour interagir avec la shopify api

Appel REST : récupérer la liste des produits

Voici un exemple simple avec cURL pour récupérer vos produits :

curl -X GET "https://votre-boutique.myshopify.com/admin/api/2024-01/products.json" \
  -H "X-Shopify-Access-Token: votre_access_token" \
  -H "Content-Type: application/json"

Cette requête retourne un objet JSON contenant l’ensemble de vos produits avec toutes leurs propriétés (titre, description, prix, variantes, images, etc.).

Appel GraphQL : récupérer les 10 dernières commandes

Avec GraphQL, vous pouvez sélectionner précisément les champs dont vous avez besoin :

curl -X POST "https://votre-boutique.myshopify.com/admin/api/2024-01/graphql.json" \
  -H "X-Shopify-Access-Token: votre_access_token" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{ orders(first: 10) { edges { node { id name totalPriceSet { shopMoney { amount currencyCode } } createdAt } } } }"
  }'

Remarquez la différence : au lieu de recevoir tous les champs de chaque commande, vous ne récupérez que l’identifiant, le nom, le montant total et la date de création. En production, cette économie de bande passante fait une vraie différence quand vous traitez des milliers de commandes.

Exemple en Python

Pour ceux qui préfèrent travailler en Shopify API Python, voici un script minimaliste :

import requests

SHOP_URL = "https://votre-boutique.myshopify.com"
ACCESS_TOKEN = "votre_access_token"
API_VERSION = "2024-01"

headers = {
    "X-Shopify-Access-Token": ACCESS_TOKEN,
    "Content-Type": "application/json"
}

# Récupérer les produits
response = requests.get(
    f"{SHOP_URL}/admin/api/{API_VERSION}/products.json",
    headers=headers
)

if response.status_code == 200:
    products = response.json()["products"]
    for product in products:
        print(f"{product['title']} - {product['variants'][0]['price']} EUR")
else:
    print(f"Erreur : {response.status_code}")

Ce script est un excellent point de départ. En quelques lignes, vous pouvez interroger votre boutique et exploiter les données dans n’importe quel contexte : reporting, synchronisation, migration. Si vous souhaitez aller plus loin avec les langages de programmation côté web, notre guide pour apprendre JavaScript vous sera utile.

Cas d’usage courants : commandes, produits et clients

En douze ans de développement, j’ai constaté que 80 % des intégrations Shopify tournent autour de trois ressources principales. Détaillons les opérations les plus demandées.

Shopify API get orders : récupérer et filtrer les commandes

La récupération des commandes est de loin le cas d’usage le plus fréquent. Voici comment filtrer les commandes par statut et par date :

GET /admin/api/2024-01/orders.json?status=any&created_at_min=2024-01-01T00:00:00-00:00&limit=50

Les paramètres utiles incluent status (open, closed, cancelled, any), financial_status (paid, pending, refunded), et fulfillment_status (shipped, unshipped). Pour les boutiques à fort volume, pensez à utiliser la pagination par curseur plutôt que par page pour éviter les incohérences de données.

Gestion des produits

Créer un produit via l’API est particulièrement utile lorsque vous importez un catalogue depuis un autre système :

POST /admin/api/2024-01/products.json
{
  "product": {
    "title": "T-shirt Premium",
    "body_html": "<p>T-shirt en coton bio</p>",
    "vendor": "Ma Marque",
    "product_type": "Vêtements",
    "variants": [
      {
        "price": "29.99",
        "sku": "TSHIRT-001",
        "inventory_quantity": 100
      }
    ]
  }
}

J’utilise cette approche pour migrer des catalogues entiers. Sur un projet récent, j’ai importé plus de 3 000 produits avec leurs variantes en moins d’une heure grâce à un script automatisé. Si vous cherchez à optimiser l’apparence de votre boutique pendant ce processus, consultez notre sélection de templates Shopify gratuits et performants.

Exploitation des données clients

L’API permet également de segmenter vos clients pour des campagnes marketing ciblées. Vous pouvez récupérer les clients ayant passé plus de trois commandes, ceux dont le panier moyen dépasse un certain montant, ou encore ceux qui n’ont pas commandé depuis plus de six mois. Ces données sont précieuses pour piloter votre stratégie de rétention.

Analyse des commandes récupérées via l'API Shopify pour piloter l'activité e-commerce
Analyse des commandes récupérées via l’API Shopify pour piloter l’activité e-commerce

Limites de requêtes et bonnes pratiques

Chaque plan Shopify impose des limites de débit (rate limits) sur les appels API. Les ignorer, c’est s’exposer à des erreurs 429 (Too Many Requests) qui peuvent bloquer vos intégrations. Voici ce que vous devez savoir :

Plan Shopify Limite REST (requêtes/seconde) Limite GraphQL (points/seconde) Prix mensuel indicatif
Basic 2 req/s 50 points/s À partir de 36 €/mois
Shopify 4 req/s 100 points/s À partir de 105 €/mois
Advanced 10 req/s 200 points/s À partir de 384 €/mois
Plus 20 req/s 1 000 points/s À partir de 2 300 €/mois

Pour explorer les différents tarifs en détail, consultez notre article dédié aux prix Shopify et leurs coûts complets. Les abonnements sont également détaillés dans notre guide sur les abonnements Shopify.

Voici les bonnes pratiques que j’applique systématiquement dans mes projets :

  • Implémentez un mécanisme de retry avec un délai exponentiel (exponential backoff) pour gérer les erreurs 429
  • Utilisez les webhooks plutôt que le polling : au lieu d’interroger l’API toutes les minutes pour vérifier s’il y a de nouvelles commandes, configurez un webhook qui vous notifie instantanément
  • Cachez les réponses lorsque c’est possible. Les données produits changent rarement ; inutile de les recharger à chaque requête
  • Paginez correctement : ne tentez jamais de récupérer l’intégralité de vos commandes en un seul appel
  • Surveillez vos en-têtes de réponse : Shopify y inclut le nombre de requêtes restantes dans votre bucket

Bibliothèques officielles et outils complémentaires

Shopify met à disposition des bibliothèques officielles qui simplifient considérablement l’intégration. Plutôt que de gérer manuellement les requêtes HTTP, l’authentification et la pagination, ces SDK s’en chargent pour vous.

Les SDK officiels

La bibliothèque @shopify/shopify-api pour Node.js est la plus mature. Elle gère l’authentification OAuth, les appels REST et GraphQL, les webhooks et le rate limiting de manière transparente. Pour Ruby, le gem shopify_api offre les mêmes fonctionnalités. Côté Python, la bibliothèque shopify_python_api est maintenue par la communauté avec un support solide.

Outils de développement recommandés

Pour tester vos appels, je vous recommande d’utiliser Shopify GraphiQL Explorer, un outil interactif accessible depuis votre panneau d’administration. Il vous permet de construire et tester vos requêtes GraphQL directement dans le navigateur, avec autocomplétion et documentation intégrée. C’est un gain de temps considérable lors de la phase de développement.

Postman reste également un excellent choix pour tester l’API REST. Shopify propose d’ailleurs des collections Postman préconfigurées que vous pouvez importer directement. Pour les développeurs qui s’intéressent aux approches modernes du développement web, notre article sur le développement no-code offre une perspective complémentaire intéressante.

Enfin, l’outil Shopify CLI permet de créer des applications complètes avec un scaffolding prêt à l’emploi. En une seule commande, vous obtenez un projet Node.js ou Ruby configuré avec l’authentification OAuth, un serveur de développement et le hot reload. C’est la méthode la plus rapide pour démarrer un projet sérieux.

Sécurité et authentification de votre application

La sécurité est un sujet que je prends très au sérieux, et l’API Shopify ne fait pas exception. Une faille dans votre intégration pourrait exposer les données personnelles de vos clients ou permettre des modifications non autorisées sur votre boutique.

Les mécanismes d’authentification

Shopify propose deux méthodes d’authentification principales :

  • Accès par jeton privé (applications personnalisées) : un jeton statique que vous incluez dans l’en-tête de chaque requête. Simple mais moins flexible.
  • OAuth 2.0 (applications publiques ou installées par des tiers) : un flux d’autorisation complet avec échange de codes et jetons temporaires. Plus complexe mais bien plus sécurisé pour les applications distribuées.

Quelle que soit la méthode choisie, ne stockez jamais vos clés API en dur dans le code source. Utilisez des variables d’environnement ou un gestionnaire de secrets comme AWS Secrets Manager ou HashiCorp Vault. J’ai vu trop de projets où les clés API se retrouvaient exposées sur un dépôt GitHub public.

Vérification des webhooks

Lorsque vous recevez un webhook de Shopify, vérifiez systématiquement la signature HMAC incluse dans l’en-tête X-Shopify-Hmac-Sha256. Cette vérification garantit que la requête provient bien de Shopify et non d’un acteur malveillant. Voici comment procéder en Python :

import hmac
import hashlib
import base64

def verify_webhook(data, hmac_header, secret):
    digest = hmac.new(
        secret.encode('utf-8'),
        data,
        hashlib.sha256
    ).digest()
    computed_hmac = base64.b64encode(digest).decode('utf-8')
    return hmac.compare_digest(computed_hmac, hmac_header)

Shopify impose également le respect du RGPD via des webhooks obligatoires. Votre application doit répondre aux requêtes de suppression de données clients conformément à la réglementation européenne. La CNIL détaille les obligations liées au RGPD sur son site officiel, et je vous recommande de le consulter avant tout traitement de données personnelles.

N’oubliez pas de renouveler régulièrement vos jetons et de révoquer immédiatement ceux qui ne sont plus utilisés. La surface d’attaque augmente avec chaque jeton actif non surveillé. Pensez aussi à activer la journalisation de tous les appels API pour détecter toute activité suspecte. Vous trouverez des informations complémentaires sur les bonnes pratiques de sécurité dans la documentation Shopify sur l’authentification des applications.

À retenir

  • Privilégiez GraphQL pour tout nouveau développement afin de bénéficier des meilleures performances et des dernières fonctionnalités
  • Configurez des webhooks plutôt que du polling pour réduire vos appels API et réagir en temps réel
  • Appliquez le principe de moindre privilège lors de la définition des scopes de votre application
  • Stockez vos clés API dans des variables d’environnement, jamais dans le code source
  • Implémentez un mécanisme de retry avec backoff exponentiel pour gérer les limites de débit sans perdre de données

Questions fréquentes


L’API Shopify est-elle gratuite ?

Oui, l’accès à l’API Shopify est inclus dans tous les abonnements Shopify, du plan Basic au plan Plus. Il n’y a pas de coût supplémentaire pour utiliser l’API. En revanche, les limites de requêtes varient selon votre plan : un abonnement Basic autorise 2 requêtes REST par seconde, tandis qu’un plan Plus monte à 20. Si votre intégration nécessite un volume d’appels important, un plan supérieur peut donc s’avérer nécessaire.


À quoi sert l’API Shopify ?

L’API Shopify permet d’automatiser et d’étendre les fonctionnalités de votre boutique en ligne. Ses usages principaux incluent la synchronisation de votre catalogue avec des marketplaces tierces, l’automatisation du traitement des commandes avec un ERP ou un logisticien, la création de tableaux de bord personnalisés, la migration de données depuis une autre plateforme e-commerce, et le développement d’applications sur mesure pour répondre à des besoins spécifiques.


Comment obtenir l’API Shopify ?

Pour accéder à l’API Shopify, connectez-vous à votre panneau d’administration, puis allez dans Paramètres > Applications et canaux de vente > Développer des applications. Créez une application personnalisée, définissez les portées d’accès nécessaires (scopes), puis installez l’application. Shopify vous fournira alors une API key, un API secret et un jeton d’accès. Ce dernier n’est affiché qu’une seule fois, conservez-le précieusement dans un endroit sécurisé.


Shopify utilise-t-il GraphQL ou REST ?

Shopify supporte les deux protocoles simultanément. La REST Admin API existe depuis les débuts de la plateforme et reste pleinement fonctionnelle. Cependant, depuis 2023, Shopify recommande officiellement GraphQL pour tous les nouveaux développements. GraphQL offre de meilleures performances grâce à la sélection précise des champs, réduit le nombre d’appels nécessaires et bénéficie en priorité des nouvelles fonctionnalités. La REST API continue d’être maintenue mais reçoit moins de mises à jour.


Peut-on utiliser l’API Shopify avec Python ?

Absolument. Vous pouvez interagir avec la shopify api en Python de deux manières : soit en utilisant la bibliothèque requests pour effectuer des appels HTTP directs (REST ou GraphQL), soit en utilisant le package shopify_python_api qui encapsule les appels et gère l’authentification automatiquement. Python est particulièrement adapté pour les scripts d’import/export de données, la synchronisation automatisée et l’analyse de données de vente.


Quelles sont les limites de l’API Shopify ?

Les principales limites concernent le débit de requêtes (rate limiting). En REST, vous êtes limité de 2 à 20 requêtes par seconde selon votre plan. En GraphQL, un système de coût par points s’applique. Par ailleurs, certaines données sensibles comme les informations de paiement complètes ne sont pas accessibles via l’API pour des raisons de sécurité. Enfin, la taille maximale d’une réponse API est limitée à 250 éléments par page en REST.


Damien Roux
Damien Roux

Ingénieur système et expert hébergement web. Fondateur de web-city.fr, il partage guides pratiques, comparatifs objectifs et outils gratuits pour choisir le bon hébergeur et créer son site WordPress.

Scroll to Top