Guia de Integração BigCommerce

Este guia explica como integrar o Tajo com a sua loja BigCommerce para desbloquear capacidades de envolvimento com clientes, programas de fidelidade e automação de marketing.

Visão Geral

A integração Tajo-BigCommerce permite-lhe:

  • Sincronizar dados de clientes automaticamente da sua loja BigCommerce
  • Rastrear pedidos e produtos para marketing personalizado
  • Executar programas de fidelidade com pontos, níveis e recompensas
  • Automatizar campanhas de marketing via Brevo (e-mail, SMS, WhatsApp)
  • Segmentar clientes por comportamento de compra e envolvimento
  • Suportar operações multi-loja

Pré-requisitos

Antes de iniciar a integração, certifique-se de que tem:

  • Loja BigCommerce em qualquer plano (Standard, Plus, Pro ou Enterprise)
  • Conta Tajo com uma subscrição ativa
  • Conta Brevo (opcional, para automação de marketing)
  • Credenciais de API da loja (conta API com âmbitos adequados)

Passo 1: Instalar a Aplicação Tajo

A partir do BigCommerce App Marketplace

  1. Aceda ao painel de controlo do BigCommerce
  2. Navegue até Apps → Marketplace
  3. Procure por “Tajo”
  4. Clique em Get This App
  5. Reveja as permissões e clique em Install
  6. Siga o assistente de configuração para ligar a sua conta Tajo

Configuração da API

Após a instalação, configure o acesso à 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: Configurar Sincronização de Dados

Definições de Sincronização de Clientes

Configure quais os dados de clientes a sincronizar:

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

Configuração de Webhooks

O Tajo regista estes webhooks do BigCommerce:

WebhookPropósito
store/customer/createdSincronizar novos clientes para Tajo e Brevo
store/customer/updatedManter perfis de clientes atualizados
store/order/createdRastrear compras, atribuir pontos de fidelidade
store/order/statusUpdatedAcionar campanhas baseadas em estado
store/cart/createdRastrear carrinho para recuperação de abandono
store/cart/updatedAtualizar sequências de abandono de carrinho
store/product/updatedManter catálogo de produtos sincronizado

Suporte a Multi-Loja

Para BigCommerce Enterprise com múltiplas lojas:

{
"multi_storefront": {
"enabled": true,
"storefronts": [
{
"channel_id": 1,
"name": "Loja Principal",
"loyalty_program": "default"
},
{
"channel_id": 2,
"name": "Grossista",
"loyalty_program": "b2b_program"
},
{
"channel_id": 3,
"name": "Internacional",
"loyalty_program": "global_program"
}
],
"sync_across_channels": true
}
}

Passo 3: Configurar Programa de Fidelidade

Configurar Sistema de Pontos

const pointsConfig = {
// Pontos por valor gasto
purchasePoints: {
enabled: true,
rate: 1, // 1 ponto por $1
roundingMode: 'floor'
},
// Ações de bónus
bonusPoints: {
accountCreation: 100,
firstPurchase: 200,
reviewSubmitted: 50,
referralMade: 500,
birthdayBonus: 100,
newsletterSignup: 25
},
// Multiplicadores por grupo de clientes
customerGroupMultipliers: {
'Retail': 1.0,
'VIP': 1.5,
'Wholesale': 0.5,
'Platinum': 2.0
}
};

Níveis de Fidelidade

const loyaltyTiers = [
{
name: 'Bronze',
minPoints: 0,
benefits: [
'1 ponto por $1 gasto',
'Pontos bónus de aniversário',
'Promoções exclusivas para membros'
]
},
{
name: 'Silver',
minPoints: 1000,
benefits: [
'Multiplicador de pontos 1,25x',
'Envio gratuito em pedidos acima de $50',
'Acesso antecipado a saldos'
]
},
{
name: 'Gold',
minPoints: 5000,
benefits: [
'Multiplicador de pontos 1,5x',
'Envio gratuito em todos os pedidos',
'Acesso exclusivo a produtos',
'Suporte prioritário'
]
},
{
name: 'Platinum',
minPoints: 15000,
benefits: [
'Multiplicador de pontos 2x',
'Envio expresso gratuito',
'Experiências VIP',
'Gestor de conta dedicado'
]
}
];

Passo 4: Gestão de Clientes B2B

Contas de Empresa

O BigCommerce suporta funcionalidades B2B que se integram com o Tajo:

const b2bConfig = {
companyAccounts: {
enabled: true,
syncCompanyData: true,
fields: [
'company_name',
'tax_id',
'credit_limit',
'payment_terms',
'price_list'
]
},
// Regras de fidelidade específicas para B2B
b2bLoyalty: {
orderVolumeBonus: {
threshold: 10000,
bonusMultiplier: 1.5
},
reorderPoints: {
enabled: true,
rate: 0.5 // 0,5 pontos por $1 em reencomendar
}
}
};

Integração de Grupos de Clientes

// Mapear grupos de clientes BigCommerce para segmentos 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'
}
};

Passo 5: Recuperação de Carrinho Abandonado

Rastreamento do Carrinho

// Manipulador de webhook de carrinho BigCommerce
async function handleCartWebhook(event) {
const cart = await bigcommerce.carts.get(event.data.cartId);
if (!cart.customer_id && !cart.email) {
return; // Não é possível rastrear sem identidade
}
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
});
}

Sequência de Recuperação

{
"abandoned_cart_sequence": {
"trigger": {
"event": "cart_abandoned",
"delay": "1 hour"
},
"messages": [
{
"delay": "1 hour",
"channel": "email",
"template": "cart_reminder_1",
"subject": "Você deixou algo para trás!"
},
{
"delay": "24 hours",
"channel": "email",
"template": "cart_reminder_2",
"subject": "O seu carrinho está à espera - 10% de desconto incluído"
},
{
"delay": "72 hours",
"channel": "sms",
"template": "cart_sms_final"
}
],
"exit_conditions": [
"order_completed",
"cart_emptied",
"unsubscribed"
]
}
}

Passo 6: Automação de Marketing

Segmentos de Clientes

const bigcommerceSegments = [
// Comportamento de compra
{
name: 'Primeiras Compras',
conditions: { orders_count: 1 }
},
{
name: 'Clientes Recorrentes',
conditions: { orders_count: { $gte: 2 } }
},
{
name: 'Clientes de Alto Valor',
conditions: { total_spent: { $gte: 1000 } }
},
// Grupos de clientes
{
name: 'Contas Grossistas',
conditions: { customer_group: 'Wholesale' }
},
// Envolvimento
{
name: 'Clientes em Risco',
conditions: {
last_order_date: { $lt: '-90 days' },
orders_count: { $gte: 2 }
}
}
];

Campanhas Automatizadas

// Gatilhos de mudança de estado de pedido
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':
// Atribuir pontos de fidelidade
const points = calculatePoints(order, customer);
await tajo.loyalty.awardPoints(customer.id, points);
// Acionar pedido de avaliação após 14 dias
await brevo.scheduleEvent(customer.email, 'review_request', {
orderId: order.id,
products: order.products
}, { delay: '14 days' });
break;
}
});

Passo 7: Análise

Métricas do Painel

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

Resolução de Problemas

Limites de Taxa da API

// Implementar limitação de taxa
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ção de Webhook

// Verificar assinatura de 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)
);
}

Próximos Passos

  1. Configurar a Integração Brevo para campanhas de e-mail/SMS
  2. Configurar Webhooks para eventos em tempo real
  3. Criar Segmentos de Clientes para marketing direcionado
  4. Criar Modelos de E-mail para campanhas automatizadas

Suporte

Assistente AI

Olá! Pergunte-me qualquer coisa sobre a documentação.

Comece grátis com Brevo