Richiedi l’accesso anticipato

Inserisci il tuo nome e un indirizzo email o un numero di telefono. Ti contatteremo con tutte le informazioni per accedere a Tajo.

Guida all’integrazione BigCommerce

Questa guida ti accompagna nell’integrazione di Tajo con il tuo negozio BigCommerce per sbloccare le funzionalità di coinvolgimento dei clienti, i programmi fedeltà e la marketing automation.

Panoramica

L’integrazione Tajo-BigCommerce ti permette di:

  • Sincronizzare i dati dei clienti automaticamente dal tuo negozio BigCommerce
  • Tracciare ordini e prodotti per un marketing personalizzato
  • Gestire programmi fedeltà con punti, livelli e premi
  • Automatizzare le campagne di marketing tramite Brevo (email, SMS, WhatsApp)
  • Segmentare i clienti per comportamento d’acquisto e coinvolgimento
  • Supportare operazioni multi-storefront

Prerequisiti

Prima di avviare l’integrazione, assicurati di avere:

  • Un negozio BigCommerce su qualsiasi piano (Standard, Plus, Pro o Enterprise)
  • Un account Tajo con un abbonamento attivo
  • Un account Brevo (opzionale, per la marketing automation)
  • Le credenziali API del negozio (un account API con gli scope appropriati)

Passo 1: installa l’app Tajo

Dal marketplace delle app BigCommerce

  1. Vai al pannello di controllo di BigCommerce
  2. Naviga su Apps → Marketplace
  3. Cerca “Tajo”
  4. Fai clic su Get This App
  5. Rivedi i permessi e fai clic su Install
  6. Segui la procedura guidata per collegare il tuo account Tajo

Configurazione dell’API

Dopo l’installazione, configura l’accesso all’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"
]
}

Passo 2: configura la sincronizzazione dei dati

Impostazioni di sincronizzazione dei clienti

Scegli quali dati dei clienti sincronizzare:

{
"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
}
}
}

Configurazione dei webhook

Tajo registra questi webhook di BigCommerce:

WebhookScopo
store/customer/createdSincronizza i nuovi clienti verso Tajo e Brevo
store/customer/updatedMantiene aggiornati i profili dei clienti
store/order/createdTraccia gli acquisti e assegna i punti fedeltà
store/order/statusUpdatedAttiva le campagne legate allo stato dell’ordine
store/cart/createdTraccia il carrello per l’abbandono
store/cart/updatedAggiorna le sequenze sui carrelli abbandonati
store/product/updatedMantiene sincronizzato il catalogo prodotti

Supporto multi-storefront

Per BigCommerce Enterprise con più storefront:

{
"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
}
}

Passo 3: configura il programma fedeltà

Configura il sistema a punti

const pointsConfig = {
// Points per dollar spent
purchasePoints: {
enabled: true,
rate: 1, // 1 point per $1
roundingMode: 'floor'
},
// Bonus actions
bonusPoints: {
accountCreation: 100,
firstPurchase: 200,
reviewSubmitted: 50,
referralMade: 500,
birthdayBonus: 100,
newsletterSignup: 25
},
// Customer group multipliers
customerGroupMultipliers: {
'Retail': 1.0,
'VIP': 1.5,
'Wholesale': 0.5,
'Platinum': 2.0
}
};

Livelli fedeltà

const loyaltyTiers = [
{
name: 'Bronze',
minPoints: 0,
benefits: [
'1 point per $1 spent',
'Birthday bonus points',
'Member-only promotions'
]
},
{
name: 'Silver',
minPoints: 1000,
benefits: [
'1.25x points multiplier',
'Free shipping on orders $50+',
'Early access to sales'
]
},
{
name: 'Gold',
minPoints: 5000,
benefits: [
'1.5x points multiplier',
'Free shipping on all orders',
'Exclusive product access',
'Priority support'
]
},
{
name: 'Platinum',
minPoints: 15000,
benefits: [
'2x points multiplier',
'Free express shipping',
'VIP experiences',
'Dedicated account manager'
]
}
];

Passo 4: gestione dei clienti B2B

Account aziendali

BigCommerce offre funzionalità B2B che si integrano con Tajo:

const b2bConfig = {
companyAccounts: {
enabled: true,
syncCompanyData: true,
fields: [
'company_name',
'tax_id',
'credit_limit',
'payment_terms',
'price_list'
]
},
// B2B-specific loyalty rules
b2bLoyalty: {
orderVolumeBonus: {
threshold: 10000,
bonusMultiplier: 1.5
},
reorderPoints: {
enabled: true,
rate: 0.5 // 0.5 points per $1 on reorders
}
}
};

Integrazione dei gruppi di clienti

// Map BigCommerce customer groups to Tajo segments
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'
}
};

Passo 5: recupero dei carrelli abbandonati

Tracciamento del carrello

// BigCommerce cart webhook handler
async function handleCartWebhook(event) {
const cart = await bigcommerce.carts.get(event.data.cartId);
if (!cart.customer_id && !cart.email) {
return; // Can't track without identity
}
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
});
}

Sequenza di recupero

{
"abandoned_cart_sequence": {
"trigger": {
"event": "cart_abandoned",
"delay": "1 hour"
},
"messages": [
{
"delay": "1 hour",
"channel": "email",
"template": "cart_reminder_1",
"subject": "You left something behind!"
},
{
"delay": "24 hours",
"channel": "email",
"template": "cart_reminder_2",
"subject": "Your cart is waiting - 10% off inside"
},
{
"delay": "72 hours",
"channel": "sms",
"template": "cart_sms_final"
}
],
"exit_conditions": [
"order_completed",
"cart_emptied",
"unsubscribed"
]
}
}

Passo 6: marketing automation

Segmenti di clienti

const bigcommerceSegments = [
// Purchase behavior
{
name: 'First-Time Buyers',
conditions: { orders_count: 1 }
},
{
name: 'Repeat Customers',
conditions: { orders_count: { $gte: 2 } }
},
{
name: 'High-Value Customers',
conditions: { total_spent: { $gte: 1000 } }
},
// Customer groups
{
name: 'Wholesale Accounts',
conditions: { customer_group: 'Wholesale' }
},
// Engagement
{
name: 'At-Risk Customers',
conditions: {
last_order_date: { $lt: '-90 days' },
orders_count: { $gte: 2 }
}
}
];

Campagne automatizzate

// Order status change triggers
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':
// Award loyalty points
const points = calculatePoints(order, customer);
await tajo.loyalty.awardPoints(customer.id, points);
// Trigger review request after 14 days
await brevo.scheduleEvent(customer.email, 'review_request', {
orderId: order.id,
products: order.products
}, { delay: '14 days' });
break;
}
});

Passo 7: analytics

Metriche della dashboard

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()
}
};

Risoluzione dei problemi

Limiti di frequenza dell’API

// Implement rate limiting
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;
}
}
}

Verifica dei webhook

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

Passi successivi

  1. Configura l’integrazione con Brevo per le campagne email e SMS
  2. Imposta i webhook per gli eventi in tempo reale
  3. Crea segmenti di clienti per un marketing mirato
  4. Crea template email per le campagne automatizzate

Supporto

Richiedi l’accesso anticipato

Inserisci il tuo nome e un indirizzo email o un numero di telefono. Ti contatteremo con tutte le informazioni per accedere a Tajo.

rilevamento automatico
Assistente AI

Ciao! Chiedimi qualsiasi cosa sulla documentazione.