En bref
Les API BigCommerce vous permettent de gérer les produits, les commandes, les clients et les opérations de la boutique de manière programmatique. Vous vous authentifiez avec des jetons API (pour le côté serveur) ou OAuth (pour les applications), appelez des points d'extrémité REST à api.bigcommerce.com et gérez les webhooks pour des mises à jour en temps réel. Pour les tests, utilisez Apidog pour enregistrer vos appels API, valider les réponses et partager des collections avec votre équipe.
Essayez Apidog dès aujourd'hui
Introduction
BigCommerce propulse plus de 60 000 boutiques en ligne. Chacune a besoin d'intégrations personnalisées : synchronisation d'inventaire, traitement des commandes, gestion des clients, traitement des paiements. C'est là qu'interviennent les API.
La plateforme offre trois types d'API : l'API Storefront (commerce découplé), l'API Management (opérations back-end) et l'API Payments (transactions). La plupart des développeurs travaillent avec l'API Management. Elle gère les produits, les commandes, les clients et tout ce qui se passe en coulisses.
La courbe d'apprentissage n'est pas abrupte, mais la documentation peut sembler accablante. Vous vous retrouverez à jongler entre les documents d'authentification, les références API et les guides de webhook juste pour accomplir une tâche simple.
Ce guide se concentre sur ce que vous utiliserez réellement : les produits, les commandes, les clients et les webhooks. Vous apprendrez l'authentification, les modèles courants et comment tester vos intégrations avant qu'elles ne touchent une boutique en direct.
💡 Astuce : Si vous créez des intégrations BigCommerce, Apidog vous aide à concevoir, tester et documenter ces appels API. Enregistrez les requêtes sous forme de collections, utilisez des variables d'environnement pour différentes boutiques et validez que les réponses correspondent aux schémas attendus. Il détecte les erreurs avant qu'elles n'affectent de vrais clients.
Testez vos API BigCommerce avec Apidog - gratuit
À la fin de ce guide, vous serez en mesure de :
- Configurer correctement l'authentification BigCommerce
- Gérer les produits, les variantes et l'inventaire
- Traiter les commandes et gérer les données clients
- Configurer des webhooks pour des mises à jour en temps réel
- Tester et documenter vos intégrations avec Apidog
Authentification : obtenir l'accès à votre boutique
BigCommerce propose deux méthodes d'authentification selon ce que vous construisez.
Méthode 1 : Jetons API (pour les intégrations personnalisées)
Pour un script ou service lié à une seule boutique, utilisez les jetons API.
Créer un compte API :
- Accédez au panneau d'administration de votre boutique
- Paramètres → Comptes API → Créer un compte API
- Choisissez "V3/V2 API Token"
- Sélectionnez les portées nécessaires (Produits, Commandes, Clients, etc.)
- Enregistrez vos identifiants
Vous obtiendrez :
- URL de la boutique :
mystore.mybigcommerce.com - Jeton d'accès :
abc123def456... - ID client :
abc123... - Secret client :
xyz789...
Premier appel avec curl :
curl -X GET "https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products" \
-H "X-Auth-Token: {access-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
Le store-hash correspond à la partie après /stores/ dans votre URL API ou URL d'administration.
Méthode 2 : OAuth (pour les applications du marché)
Pour une application sur le marché BigCommerce, utilisez OAuth.
Flux OAuth :
- L'utilisateur clique sur "Installer" sur votre application dans le marketplace
- BigCommerce redirige vers votre URL de callback avec un code d'authentification
- Votre serveur échange ce code contre un jeton d'accès
- Stockez le jeton d'accès pour les appels API futurs
Échange du code contre un jeton d'accès :
const response = await fetch('https://login.bigcommerce.com/oauth2/token', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
client_id: process.env.BC_CLIENT_ID,
client_secret: process.env.BC_CLIENT_SECRET,
redirect_uri: 'https://yourapp.com/auth/callback',
grant_type: 'authorization_code',
code: authCode,
scope: 'store_v2_default store_v3_products'
})
})
const { access_token, context } = await response.json()
// access_token à utiliser pour les appels API
// context contient le store_hash
Utiliser le jeton :
curl -X GET "https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products" \
-H "X-Auth-Token: {access-token}" \
-H "Content-Type: application/json"
Gestion des produits et du catalogue
L'API catalogue V3 permet de gérer produits, variantes, catégories et marques.
Lister les produits
GET https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products
X-Auth-Token: {token}
Accept: application/json
Exemple de réponse :
{
"data": [
{
"id": 174,
"name": "Plain T-Shirt",
"type": "physical",
"sku": "PLAIN-T",
"price": 29.99,
"sale_price": 24.99,
"inventory_level": 150,
"inventory_tracking": "product",
"is_visible": true,
"categories": [23, 45],
"brand_id": 12
}
],
"meta": {
"pagination": {
"total": 500,
"count": 50,
"page": 1,
"per_page": 50
}
}
}
Créer un produit
POST https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products
X-Auth-Token: {token}
Content-Type: application/json
{
"name": "Premium Hoodie",
"type": "physical",
"sku": "HOODIE-PREM",
"price": 79.99,
"description": "Premium cotton blend hoodie",
"weight": 1.5,
"width": 20,
"height": 28,
"depth": 2,
"inventory_level": 100,
"inventory_tracking": "product",
"is_visible": true,
"categories": [23]
}
Mettre à jour les variantes de produit
Pour gérer différentes options (taille, couleur) :
PUT https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products/{product-id}/variants/{variant-id}
X-Auth-Token: {token}
Content-Type: application/json
{
"sku": "HOODIE-PREM-BLK-M",
"price": 79.99,
"inventory_level": 50,
"option_values": [
{
"option_display_name": "Color",
"label": "Black"
},
{
"option_display_name": "Size",
"label": "Medium"
}
]
}
Gérer l'inventaire
Mettre à jour l'inventaire d'un produit :
PUT https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products/{product-id}
X-Auth-Token: {token}
Content-Type: application/json
{
"inventory_level": 75
}
Ou pour une variante spécifique :
PUT https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products/{product-id}/variants/{variant-id}
Content-Type: application/json
{
"inventory_level": 25
}
Commandes et exécution
L'API Orders V2 gère la création, la mise à jour et l'exécution des commandes.
Lister les commandes
GET https://api.bigcommerce.com/stores/{store-hash}/v2/orders
X-Auth-Token: {token}
Accept: application/json
Exemple de réponse :
[
{
"id": 115,
"status": "Awaiting Fulfillment",
"status_id": 11,
"customer_id": 45,
"date_created": "2026-03-24T10:30:00+00:00",
"subtotal_ex_tax": 149.99,
"total_inc_tax": 162.49,
"items_total": 2,
"items_shipped": 0,
"shipping_address": {
"first_name": "John",
"last_name": "Doe",
"street_1": "123 Main St",
"city": "Austin",
"state": "Texas",
"zip": "78701",
"country": "United States"
}
}
]
Obtenir les détails de la commande
GET https://api.bigcommerce.com/stores/{store-hash}/v2/orders/{order-id}
X-Auth-Token: {token}
Obtenir les produits de la commande
GET https://api.bigcommerce.com/stores/{store-hash}/v2/orders/{order-id}/products
X-Auth-Token: {token}
Mettre à jour le statut de la commande
PUT https://api.bigcommerce.com/stores/{store-hash}/v2/orders/{order-id}
X-Auth-Token: {token}
Content-Type: application/json
{
"status_id": 12
}
Principaux statuts :
- 0 : Incomplet
- 11 : En attente d'exécution
- 12 : Terminé
- 5 : Annulé
- 4 : Remboursé
Créer un envoi (exécution)
POST https://api.bigcommerce.com/stores/{store-hash}/v2/orders/{order-id}/shipments
X-Auth-Token: {token}
Content-Type: application/json
{
"tracking_number": "1Z999AA10123456784",
"carrier": "UPS",
"shipping_method": "UPS Ground",
"items": [
{
"order_product_id": 234,
"quantity": 1
}
]
}
Clients et segmentation
L'API Customers V3 gère les données clients, adresses et groupes.
Lister les clients
GET https://api.bigcommerce.com/stores/{store-hash}/v3/customers
X-Auth-Token: {token}
Accept: application/json
Exemple de réponse :
{
"data": [
{
"id": 45,
"email": "john.doe@example.com",
"first_name": "John",
"last_name": "Doe",
"company": "Acme Corp",
"phone": "512-555-1234",
"customer_group_id": 1,
"notes": "VIP customer",
"tax_exempt_category": "",
"date_created": "2025-11-15T09:30:00+00:00",
"date_modified": "2026-03-20T14:22:00+00:00"
}
]
}
Créer un client
POST https://api.bigcommerce.com/stores/{store-hash}/v3/customers
X-Auth-Token: {token}
Content-Type: application/json
{
"email": "jane.smith@example.com",
"first_name": "Jane",
"last_name": "Smith",
"phone": "512-555-5678",
"customer_group_id": 2
}
Mettre à jour un client
PUT https://api.bigcommerce.com/stores/{store-hash}/v3/customers/{customer-id}
X-Auth-Token: {token}
Content-Type: application/json
{
"notes": "Client fidèle - support prioritaire",
"customer_group_id": 3
}
Webhooks pour les mises à jour en temps réel
Les webhooks notifient votre application lors d'événements dans une boutique. BigCommerce pousse les données vers vos endpoints.
Créer un webhook
POST https://api.bigcommerce.com/stores/{store-hash}/v3/hooks
X-Auth-Token: {token}
Content-Type: application/json
{
"scope": "store/order/created",
"destination": "https://yourapp.com/webhooks/orders",
"is_active": true
}
Portées disponibles :
-
store/order/created- Nouvelle commande passée -
store/order/updated- Statut de commande modifié -
store/order/archived- Commande archivée -
store/product/created- Produit ajouté -
store/product/updated- Produit modifié -
store/product/deleted- Produit supprimé -
store/customer/created- Nouveau client -
store/inventory/updated- Stock modifié
Vérifier les signatures de webhook
BigCommerce signe les webhooks pour garantir leur légitimité :
import crypto from 'crypto'
function verifyWebhook(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex')
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
)
}
app.post('/webhooks/orders', (req, res) => {
const signature = req.headers['x-bc-webhook-signature']
const payload = JSON.stringify(req.body)
if (!verifyWebhook(payload, signature, process.env.BC_CLIENT_SECRET)) {
return res.status(401).send('Signature invalide')
}
// Traitez le webhook
console.log('Commande créée :', req.body.data.id)
res.status(200).send('OK')
})
Tester les API BigCommerce avec Apidog
Les API BigCommerce exigent une authentification et des en-têtes cohérents. Tester manuellement avec curl devient vite fastidieux. Apidog simplifie vos workflows de tests.
1. Configuration de l'environnement
Définissez un environnement pour chaque boutique :
# Boutique de production
STORE_HASH: abc123
ACCESS_TOKEN: xyz789
BASE_URL: https://api.bigcommerce.com/stores/abc123
# Boutique de staging
STORE_HASH: staging456
ACCESS_TOKEN: staging_token
BASE_URL: https://api.bigcommerce.com/stores/staging456
2. Scripts de pré-requête
Ajoutez automatiquement les en-têtes d'authentification :
pm.request.headers.add({
key: 'X-Auth-Token',
value: pm.environment.get('ACCESS_TOKEN')
})
pm.request.headers.add({
key: 'Accept',
value: 'application/json'
})
3. Valider les réponses
Testez que les produits possèdent les champs requis :
pm.test('Les produits ont les champs requis', () => {
const response = pm.response.json()
response.data.forEach(product => {
pm.expect(product).to.have.property('id')
pm.expect(product).to.have.property('name')
pm.expect(product).to.have.property('price')
pm.expect(product.price).to.be.above(0)
})
})
pm.test('La pagination fonctionne', () => {
const response = pm.response.json()
pm.expect(response.meta.pagination).to.have.property('total')
pm.expect(response.meta.pagination.page).to.eql(1)
})
Testez les API BigCommerce avec Apidog - gratuit
Erreurs courantes et correctifs
401 Non autorisé
Cause : Jeton d'accès invalide ou manquant.
Correctif :
- Vérifiez l'en-tête
X-Auth-Token - Assurez-vous que le jeton n'est pas révoqué
- Vérifiez les bonnes portées sur le compte API
403 Interdit
Cause : Jeton valide mais sans la portée requise.
Correctif :
- Vérifiez les autorisations du compte API
- Ajoutez la portée manquante
- Générez un nouveau jeton avec des autorisations étendues
404 Introuvable
Cause : Mauvais endpoint ou ressource inexistante.
Correctif :
- Vérifiez le store hash
- Vérifiez la version de l'API (v2 vs v3)
- Assurez-vous que l'ID de ressource existe
429 Trop de requêtes
Cause : Dépassement de la limite de débit.
Correctif : Respectez les limites (Produits : 10 000/h, Commandes : 30 000/h). Surveillez X-Rate-Limit-Remaining et implémentez un backoff.
async function callWithBackoff(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fn()
if (response.status === 429) {
const retryAfter = response.headers.get('X-Rate-Limit-Reset')
await new Promise(r => setTimeout(r, retryAfter * 1000))
} else {
return response
}
}
}
422 Entité non traitable
Cause : Erreur de validation dans la requête.
Correctif : Consultez la réponse pour obtenir le détail.
{
"errors": {
"price": "Le prix doit être supérieur à zéro",
"sku": "Le SKU existe déjà"
}
}
Alternatives et comparaisons
| Fonctionnalité | BigCommerce | Shopify | WooCommerce |
|---|---|---|---|
| Version de l'API | V2 et V3 | REST et GraphQL | REST |
| Limites de débit | 10K-30K/heure | 2/min (leaky bucket) | Dépend de l'hébergement |
| Webhooks | Oui | Oui | Oui (plugin) |
| GraphQL | Non | Oui | Non |
| Qualité du SDK | Bonne | Excellente | PHP uniquement |
| Multi-boutiques | Oui | Non | Non |
L'API V3 de BigCommerce est plus cohérente que l'approche fragmentée de Shopify, mais l'API GraphQL de Shopify offre plus de flexibilité pour les requêtes complexes.
Cas d'utilisation réels
Synchronisation d'inventaire multicanal. Une marque vend sur BigCommerce, Amazon et en boutique physique. Elle utilise l'API Produits pour synchroniser les stocks sur tous les canaux et éviter la survente. Les endpoints de synchronisation sont testés dans Apidog avant chaque déploiement.
Automatisation des commandes. Une entreprise d'abonnement déclenche l'exécution via des webhooks lors de la création de commandes. L'API Commandes met à jour les numéros de suivi, et l'entrepôt reçoit les listes de préparation automatiquement.
Segmentation des clients. Un site e-commerce segmente ses acheteurs avec l'API Clients en fonction de l'historique d'achat. Les VIP sont ajoutés à un groupe spécial. Une tâche planifiée met à jour ces groupes chaque semaine.
Conclusion
Voici ce que vous avez appris :
- L'authentification utilise des jetons API (intégrations simples) ou OAuth (applications du marché)
- L'API de catalogue V3 gère les produits et variantes
- L'API de commandes V2 gère le traitement et l'exécution des commandes
- L'API Clients V3 gère les données clients
- Les webhooks transmettent les mises à jour en temps réel à vos endpoints
- Testez et documentez avec Apidog pour fiabiliser vos intégrations
Prochaines étapes :
- Créez un compte API dans votre boutique BigCommerce
- Effectuez votre premier appel API pour lister les produits
- Configurez un webhook pour la création de commandes
- Enregistrez vos appels API dans Apidog
- Développez votre intégration
Testez les API BigCommerce avec Apidog - gratuit
FAQ
Quelle est la différence entre les API V2 et V3 ?
La V3 est l'API la plus récente et la plus cohérente. Utilisez-la pour les produits, catégories, marques et clients. La V2 gère les commandes. Vous utiliserez souvent les deux.
Comment obtenir le hachage de ma boutique ?
Il figure dans l'URL d'administration : https://store-abc123.mybigcommerce.com/manage. La partie abc123 est le hash. Il est aussi visible dans les paramètres du compte API.
Puis-je utiliser l'API sur une boutique d'essai ?
Oui, les boutiques d'essai BigCommerce possèdent un accès API complet. Parfait pour le développement et les tests.
Quelle est la limite de débit pour les appels API ?
Selon le endpoint : Produits : 10 000/h. Commandes : 30 000/h. Consultez X-Rate-Limit-Remaining dans les en-têtes de réponse.
Comment gérer la pagination ?
Utilisez les paramètres de requête page et limit. La limite par défaut est 50. Vérifiez meta.pagination dans les réponses et bouclez jusqu'à tout récupérer.
let allProducts = []
let page = 1
while (true) {
const response = await fetch(
`${baseUrl}/v3/catalog/products?page=${page}&limit=100`,
{ headers: { 'X-Auth-Token': token } }
)
const data = await response.json()
allProducts.push(...data.data)
if (page >= data.meta.pagination.total_pages) break
page++
}
Puis-je télécharger des images de produits via l'API ?
Oui. Utilisez le endpoint des images de produit :
POST https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products/{product-id}/images
Content-Type: application/json
{
"image_url": "https://example.com/image.jpg",
"is_thumbnail": true
}
Comment gérer les devises et les multi-boutiques ?
Chaque boutique possède une devise de base. La multi-devise se gère côté vitrine, pas via l'API. Pour plusieurs boutiques, créez des comptes API séparés et utilisez des environnements différents dans Apidog.
Que se passe-t-il si mon endpoint de webhook est en panne ?
BigCommerce réessaie les webhooks échoués avec backoff exponentiel. Après 5 échecs sur 24h, le webhook est désactivé. Surveillez vos endpoints et configurez des alertes en cas d'erreur.

Top comments (0)