Guide d'intégration BigCommerce

Ce guide vous explique comment intégrer Tajo à votre boutique BigCommerce pour débloquer l’engagement client, les programmes de fidélité et les capacités d’automatisation du marketing.

Vue d’ensemble

L’intégration Tajo-BigCommerce vous permet de :

  • Synchroniser les données client automatiquement depuis votre boutique BigCommerce
  • Suivre les commandes et les produits pour un marketing personnalisé
  • Gérer des programmes de fidélité avec points, niveaux et récompenses
  • Automatiser les campagnes marketing via Brevo (email, SMS, WhatsApp)
  • Segmenter les clients par comportement d’achat et engagement
  • Prendre en charge le multi-vitrine pour les opérations complexes

Prérequis

Avant de démarrer l’intégration, assurez-vous d’avoir :

  • Boutique BigCommerce sur n’importe quel plan (Standard, Plus, Pro ou Enterprise)
  • Compte Tajo avec un abonnement actif
  • Compte Brevo (optionnel, pour l’automatisation du marketing)
  • Identifiants API de la boutique (compte API avec les portées appropriées)

Étape 1 : Installer l’application Tajo

Depuis le Marketplace d’applications BigCommerce

  1. Accédez à votre panneau de contrôle BigCommerce
  2. Naviguez vers Applications → Marketplace
  3. Recherchez “Tajo”
  4. Cliquez sur Obtenir cette application
  5. Examinez les permissions et cliquez sur Installer
  6. Suivez l’assistant de configuration pour connecter votre compte Tajo

Configuration de l’API

Après l’installation, configurez l’accès à l’API :

{
"api_credentials": {
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"access_token": "your_access_token",
"store_hash": "your_store_hash"
},
"scopes": [
"store_v2_customers",
"store_v2_orders",
"store_v2_products",
"store_cart",
"store_checkout"
]
}

Étape 2 : Configurer la synchronisation des données

Paramètres de synchronisation des clients

Configurez quelles données client synchroniser :

{
"sync_settings": {
"customers": {
"enabled": true,
"sync_frequency": "real-time",
"fields": [
"email",
"first_name",
"last_name",
"phone",
"company",
"customer_group_id",
"store_credit",
"addresses",
"date_created"
]
},
"orders": {
"enabled": true,
"sync_frequency": "real-time",
"include_products": true,
"include_shipping": true,
"include_coupons": true
},
"products": {
"enabled": true,
"sync_frequency": "hourly",
"include_variants": true,
"include_images": true,
"include_custom_fields": true
}
}
}

Configuration des webhooks

Tajo enregistre ces webhooks BigCommerce :

WebhookObjectif
store/customer/createdSynchroniser les nouveaux clients vers Tajo & Brevo
store/customer/updatedMaintenir les profils clients à jour
store/order/createdSuivre les achats, attribuer des points de fidélité
store/order/statusUpdatedDéclencher des campagnes basées sur le statut
store/cart/createdSuivre le panier pour l’abandon
store/cart/updatedMettre à jour les séquences d’abandon de panier
store/product/updatedMaintenir le catalogue produits synchronisé

Support multi-vitrine

Pour BigCommerce Enterprise avec plusieurs vitrines :

{
"multi_storefront": {
"enabled": true,
"storefronts": [
{
"channel_id": 1,
"name": "Main Store",
"loyalty_program": "default"
},
{
"channel_id": 2,
"name": "Wholesale",
"loyalty_program": "b2b_program"
},
{
"channel_id": 3,
"name": "International",
"loyalty_program": "global_program"
}
],
"sync_across_channels": true
}
}

Étape 3 : Configurer le programme de fidélité

Configurer le système de points

const pointsConfig = {
// Points par dollar dépensé
purchasePoints: {
enabled: true,
rate: 1, // 1 point par $1
roundingMode: 'floor'
},
// Actions bonus
bonusPoints: {
accountCreation: 100,
firstPurchase: 200,
reviewSubmitted: 50,
referralMade: 500,
birthdayBonus: 100,
newsletterSignup: 25
},
// Multiplicateurs par groupe client
customerGroupMultipliers: {
'Retail': 1.0,
'VIP': 1.5,
'Wholesale': 0.5,
'Platinum': 2.0
}
};

Niveaux de fidélité

const loyaltyTiers = [
{
name: 'Bronze',
minPoints: 0,
benefits: [
'1 point par $1 dépensé',
'Points bonus d\'anniversaire',
'Promotions réservées aux membres'
]
},
{
name: 'Silver',
minPoints: 1000,
benefits: [
'Multiplicateur de points x1,25',
'Livraison gratuite pour les commandes de $50+',
'Accès anticipé aux ventes'
]
},
{
name: 'Gold',
minPoints: 5000,
benefits: [
'Multiplicateur de points x1,5',
'Livraison gratuite sur toutes les commandes',
'Accès exclusif aux produits',
'Support prioritaire'
]
},
{
name: 'Platinum',
minPoints: 15000,
benefits: [
'Multiplicateur de points x2',
'Livraison express gratuite',
'Expériences VIP',
'Gestionnaire de compte dédié'
]
}
];

Étape 4 : Gestion des clients B2B

Comptes d’entreprise

BigCommerce prend en charge les fonctionnalités B2B qui s’intègrent avec Tajo :

const b2bConfig = {
companyAccounts: {
enabled: true,
syncCompanyData: true,
fields: [
'company_name',
'tax_id',
'credit_limit',
'payment_terms',
'price_list'
]
},
// Règles de fidélité spécifiques B2B
b2bLoyalty: {
orderVolumeBonus: {
threshold: 10000,
bonusMultiplier: 1.5
},
reorderPoints: {
enabled: true,
rate: 0.5 // 0,5 point par $1 sur les récommandes
}
}
};

Intégration des groupes clients

// Mapper les groupes clients BigCommerce aux segments Tajo
const customerGroupMapping = {
'Retail': {
tajoSegment: 'retail_customers',
loyaltyTier: 'Bronze',
emailList: 'retail_newsletter'
},
'Wholesale': {
tajoSegment: 'wholesale_customers',
loyaltyTier: 'Silver',
emailList: 'wholesale_updates'
},
'VIP': {
tajoSegment: 'vip_customers',
loyaltyTier: 'Gold',
emailList: 'vip_exclusive'
}
};

Étape 5 : Récupération de panier abandonné

Suivi du panier

// Gestionnaire de webhook de panier BigCommerce
async function handleCartWebhook(event) {
const cart = await bigcommerce.carts.get(event.data.cartId);
if (!cart.customer_id && !cart.email) {
return; // Impossible de suivre sans identité
}
await tajo.carts.track({
customerId: cart.customer_id,
email: cart.email,
cartId: cart.id,
items: cart.line_items.physical_items.map(item => ({
productId: item.product_id,
variantId: item.variant_id,
title: item.name,
quantity: item.quantity,
price: item.sale_price || item.list_price,
image: item.image_url
})),
totalPrice: cart.cart_amount,
currency: cart.currency.code,
checkoutUrl: cart.redirect_urls?.checkout_url
});
}

Séquence de récupération

{
"abandoned_cart_sequence": {
"trigger": {
"event": "cart_abandoned",
"delay": "1 hour"
},
"messages": [
{
"delay": "1 hour",
"channel": "email",
"template": "cart_reminder_1",
"subject": "Vous avez laissé quelque chose !"
},
{
"delay": "24 hours",
"channel": "email",
"template": "cart_reminder_2",
"subject": "Votre panier vous attend, 10% de réduction à l'intérieur"
},
{
"delay": "72 hours",
"channel": "sms",
"template": "cart_sms_final"
}
],
"exit_conditions": [
"order_completed",
"cart_emptied",
"unsubscribed"
]
}
}

Étape 6 : Automatisation du marketing

Segments clients

const bigcommerceSegments = [
// Comportement d'achat
{
name: 'Premiers acheteurs',
conditions: { orders_count: 1 }
},
{
name: 'Clients réguliers',
conditions: { orders_count: { $gte: 2 } }
},
{
name: 'Clients à haute valeur',
conditions: { total_spent: { $gte: 1000 } }
},
// Groupes clients
{
name: 'Comptes grossistes',
conditions: { customer_group: 'Wholesale' }
},
// Engagement
{
name: 'Clients à risque',
conditions: {
last_order_date: { $lt: '-90 days' },
orders_count: { $gte: 2 }
}
}
];

Campagnes automatisées

// Déclencheurs de changement de statut de commande
bigcommerce.webhooks.on('store/order/statusUpdated', async (event) => {
const order = await bigcommerce.orders.get(event.data.orderId);
const customer = await tajo.customers.getByEmail(order.billing_address.email);
switch (event.data.status.new_status) {
case 'Shipped':
await brevo.trackEvent(customer.email, 'order_shipped', {
orderId: order.id,
trackingNumber: order.tracking_number,
carrier: order.shipping_carrier
});
break;
case 'Completed':
// Attribuer des points de fidélité
const points = calculatePoints(order, customer);
await tajo.loyalty.awardPoints(customer.id, points);
// Déclencher une demande d'avis après 14 jours
await brevo.scheduleEvent(customer.email, 'review_request', {
orderId: order.id,
products: order.products
}, { delay: '14 days' });
break;
}
});

Étape 7 : Analytics

Métriques du tableau de bord

const dashboardMetrics = {
customers: {
total: await tajo.analytics.count('customers'),
byChannel: await tajo.analytics.groupBy('customers', 'channel_id'),
newThisMonth: await tajo.analytics.count('customers', {
created_at: { $gte: 'this_month' }
})
},
revenue: {
total: await tajo.analytics.sum('orders.total'),
byChannel: await tajo.analytics.groupBy('orders', 'channel_id', {
aggregate: 'sum',
field: 'total'
}),
averageOrderValue: await tajo.analytics.avg('orders.total')
},
loyalty: {
activeMembers: await tajo.analytics.count('loyalty_members'),
pointsIssued: await tajo.analytics.sum('points.awarded'),
redemptionRate: await tajo.analytics.pointsRedemptionRate()
}
};

Dépannage

Limites de débit API

// Implémenter la limitation de débit
async function bigcommerceApiCall(endpoint, options, retries = 3) {
for (let i = 0; i < retries; i++) {
try {
const response = await fetch(endpoint, options);
if (response.status === 429) {
const retryAfter = response.headers.get('X-Rate-Limit-Time-Reset-Ms');
await sleep(parseInt(retryAfter) || Math.pow(2, i) * 1000);
continue;
}
return response;
} catch (error) {
if (i === retries - 1) throw error;
}
}
}

Vérification des webhooks

// Vérifier la signature du webhook BigCommerce
function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('base64');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
);
}

Prochaines étapes

  1. Configurer l’intégration Brevo pour les campagnes email/SMS
  2. Configurer les webhooks pour les événements en temps réel
  3. Créer des segments clients pour le marketing ciblé
  4. Créer des modèles email pour les campagnes automatisées

Support

Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.

Commencez gratuitement avec Brevo