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

Open-Source Implementation Map

This section is derived from official or public repository material discovered for the BigCommerce connector. Use it as the engineering companion to the setup guide above: it shows where the API surface lives, what implementation assets exist, and how Tajo should translate them into reliable Brevo sync behavior.

Repository Snapshot

RepositoryCommitLanguages / formatsFiles
bigcommerce/api-specsdcf4840YAML (166), JSON (61), Markdown (6), YAML (4), gitignore (2), github/codeowners (1)244

Integration Shape

graph LR
Source["BigCommerce API / repository"] --> Auth["Auth and scopes"]
Source --> Objects["Objects, events, and schemas"]
Auth --> Tajo["Tajo connector runtime"]
Objects --> Tajo
Tajo --> Brevo["Brevo contacts, attributes, lists, campaigns"]
Tajo --> Ops["Backfill, cursor, retries, logs"]

What To Reuse

  • BigCommerce API Specifications
  • As of December 27, 2023, you can find all the public BigCommerce DevDocs at https://github.com/bigcommerce/docs!
  • This repository is archived and read only. The final commit has been tagged.
  • If you maintain API clients, the new bigcommerce/docs repo is now your source for the most up-to-date API specifications.
  • This consolidation lets the BigCommerce DX team offer a more streamlined developer experience. issues, discussions, and pull requests at bigcommerce/docs!

Tajo Revamp Checklist

  • Keep authentication setup aligned with the vendor docs and the public repository’s current API shape.
  • Map primary resources into explicit Tajo sync objects with stable external IDs.
  • Prefer cursor-based or updated-at incremental sync where the API exposes it; otherwise document the fallback.
  • Treat webhook handlers as idempotent and replay-safe, especially for order, contact, ticket, and campaign events.
  • Capture pagination, rate limits, retry headers, and partial-failure behavior in connector smoke tests.
  • Keep examples small and runnable against sandbox or test-mode accounts.

Sources

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AI Assistant

Hi! Ask me anything about the docs.

Start Free with Brevo