BigCommerce Connector

BigCommerce Connector

Connect your BigCommerce store to Brevo through Tajo for complete e-commerce data synchronization. Sync customers, orders, products, and cart events to power targeted marketing campaigns, abandoned cart recovery, and post-purchase automation.

Overview

PropertyValue
PlatformBigCommerce
CategoryE-commerce
Setup ComplexityMedium
Official IntegrationNo
Data SyncedCustomers, Orders, Products, Carts
Available Skills10

Features

  • Customer sync - Real-time customer data synchronization to Brevo contacts
  • Order tracking - Order lifecycle events for post-purchase marketing flows
  • Product catalog sync - Sync products for email recommendations and dynamic content
  • Cart abandonment - Track and recover abandoned carts with automated emails
  • Multi-storefront support - Connect multiple BigCommerce storefronts
  • Webhook-driven updates - Real-time data updates via BigCommerce webhooks
  • Custom fields - Map BigCommerce custom fields to Brevo contact attributes
  • Inventory tracking - Sync stock levels for back-in-stock notifications

Prerequisites

Before you begin, ensure you have:

  1. A BigCommerce store with Store Owner or Admin access
  2. A BigCommerce API account with appropriate OAuth scopes
  3. Your Store Hash (found in your store URL or API credentials)
  4. A Brevo account with API access
  5. A Tajo account with API credentials

Authentication

API Account Credentials

BigCommerce uses OAuth-based API accounts. Create one in your BigCommerce control panel under Settings > API > API Accounts.

You will receive:

  • Client ID - Your app identifier
  • Client Secret - Your app secret (store securely)
  • Access Token - Used for API authentication
  • Store Hash - Your unique store identifier
Terminal window
curl https://api.bigcommerce.com/stores/{store_hash}/v3/catalog/products \
-H "X-Auth-Token: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json"

Required OAuth Scopes

ScopeAccessPurpose
store_v2_customersReadCustomer data sync
store_v2_ordersReadOrder event tracking
store_v2_productsReadProduct catalog sync
store_cartReadCart abandonment tracking
store_v2_informationReadStore configuration
store_v2_contentReadStorefront content

Configuration

Basic Setup

connectors:
bigcommerce:
enabled: true
store_hash: "your-store-hash"
access_token: "your-access-token"
client_id: "your-client-id"
# Data sync options
sync:
customers: true
orders: true
products: true
carts: true
inventory: false
# Brevo list assignment
lists:
all_customers: 40
buyers: 41
abandoned_cart: 42

Customer Field Mapping

Map BigCommerce customer fields to Brevo attributes:

customer_mapping:
email: email
first_name: FIRSTNAME
last_name: LASTNAME
phone: SMS
company: COMPANY
# Address fields
addresses[0].city: CITY
addresses[0].state: STATE
addresses[0].country: COUNTRY
addresses[0].zip: ZIP
# E-commerce metrics
orders_count: ORDER_COUNT
total_spent: TOTAL_SPENT
date_created: SIGNUP_DATE
# Customer group
customer_group_id: CUSTOMER_GROUP

Webhook Configuration

webhooks:
- scope: "store/customer/created"
destination: "customer_created"
- scope: "store/customer/updated"
destination: "customer_updated"
- scope: "store/order/created"
destination: "order_placed"
- scope: "store/order/updated"
destination: "order_updated"
- scope: "store/order/statusUpdated"
destination: "order_status_changed"
- scope: "store/cart/created"
destination: "cart_created"
- scope: "store/cart/updated"
destination: "cart_updated"
- scope: "store/cart/abandoned"
destination: "cart_abandoned"
- scope: "store/inventory/updated"
destination: "inventory_changed"

API Endpoints

MethodEndpointDescription
GET/v3/customersList customers
POST/v3/customersCreate customers
PUT/v3/customersUpdate customers
GET/v2/ordersList orders
GET/v2/orders/{id}Get order details
GET/v3/catalog/productsList products
GET/v3/catalog/products/{id}Get product details
GET/v3/catalog/products/{id}/variantsList product variants
GET/v3/cartsList carts
GET/v3/abandoned-cartsList abandoned carts
POST/v3/hooksCreate a webhook
GET/v3/catalog/categoriesList categories

Code Examples

Initialize BigCommerce Connector

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect BigCommerce store
await tajo.connectors.connect('bigcommerce', {
storeHash: process.env.BC_STORE_HASH,
accessToken: process.env.BC_ACCESS_TOKEN,
clientId: process.env.BC_CLIENT_ID
});

Fetch and Sync Customers

// Fetch customers from BigCommerce
const response = await fetch(
`https://api.bigcommerce.com/stores/${STORE_HASH}/v3/customers?limit=250`,
{
headers: {
'X-Auth-Token': ACCESS_TOKEN,
'Content-Type': 'application/json'
}
}
);
const { data, meta } = await response.json();
// data: [{ id, email, first_name, last_name, phone, ... }]
// meta.pagination: { total, count, per_page, current_page, total_pages }

Handle Webhook Events

// BigCommerce webhook handler
app.post('/webhooks/bigcommerce', async (req, res) => {
const { scope, store_id, data } = req.body;
// Verify the webhook is from your store
if (store_id !== process.env.BC_STORE_HASH) {
return res.status(401).send('Unauthorized');
}
// Forward to Tajo
await tajo.connectors.handleWebhook('bigcommerce', {
topic: scope,
payload: data
});
res.status(200).send('OK');
});

Sync Product Catalog

// Full product catalog sync
await tajo.connectors.sync('bigcommerce', {
type: 'full',
resources: ['products'],
includeVariants: true,
includeImages: true
});
// Check sync status
const status = await tajo.connectors.status('bigcommerce');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// customersCount: 8200,
// ordersCount: 4500,
// productsCount: 620
// }

Rate Limits

PlanLimitDetails
Standard150 requests/30 secPer store
Plus300 requests/30 secPer store
Pro450 requests/30 secPer store
EnterpriseUnlimitedCustom limits

Additional limits:

ResourceLimit
Webhooks100 per store
Per page250 records max
Concurrent requestsPlan-dependent

Rate Limit Headers

Monitor X-Rate-Limit-Requests-Left and X-Rate-Limit-Time-Reset-Ms headers to manage your API usage within limits.

Troubleshooting

IssueCauseSolution
401 UnauthorizedInvalid access tokenRegenerate API credentials in BigCommerce admin
403 ForbiddenMissing OAuth scopeCheck API account scopes and add required permissions
Webhooks not firingWebhook limit reachedCheck webhook count (max 100) and remove unused ones
Cart events missingStorefront scripts not loadedVerify tracking script on BigCommerce storefront
Products out of syncCatalog cacheTrigger a manual sync or wait for webhook updates
429 Too Many RequestsRate limit exceededImplement request queuing with rate limit header monitoring
Customer groups missingV2 vs V3 APICustomer groups use the V2 API; check endpoint version

Best Practices

  1. Use V3 API where possible - The V3 API offers better pagination, filtering, and JSON responses
  2. Monitor rate limit headers - Track X-Rate-Limit-Requests-Left to avoid hitting limits
  3. Register webhooks for real-time sync - Use webhooks instead of polling for customer and order updates
  4. Batch customer updates - Use the V3 bulk customer endpoints for large data syncs
  5. Include variants in product sync - Sync product variants for accurate inventory tracking
  6. Set up abandoned cart webhooks - Critical for cart recovery email automation
  7. Use pagination - Always paginate list endpoints; max 250 records per page

Security

  • OAuth token authentication - Secure token-based API access
  • Scoped permissions - API accounts restricted to specific data scopes
  • HTTPS only - All API communication encrypted via TLS
  • Webhook verification - Verify webhook source using store hash
  • PCI DSS compliant - BigCommerce handles payment data securely
  • SOC 2 Type II - BigCommerce platform is SOC 2 certified
AI सहायक

नमस्ते! डॉक्यूमेंटेशन के बारे में कुछ भी पूछें।

Brevo के साथ मुफ्त में शुरू करें