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
| Property | Value |
|---|---|
| Platform | BigCommerce |
| Category | E-commerce |
| Setup Complexity | Medium |
| Official Integration | No |
| Data Synced | Customers, Orders, Products, Carts |
| Available Skills | 10 |
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:
- A BigCommerce store with Store Owner or Admin access
- A BigCommerce API account with appropriate OAuth scopes
- Your Store Hash (found in your store URL or API credentials)
- A Brevo account with API access
- 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
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
| Scope | Access | Purpose |
|---|---|---|
store_v2_customers | Read | Customer data sync |
store_v2_orders | Read | Order event tracking |
store_v2_products | Read | Product catalog sync |
store_cart | Read | Cart abandonment tracking |
store_v2_information | Read | Store configuration |
store_v2_content | Read | Storefront 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: 42Customer 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_GROUPWebhook 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
| Method | Endpoint | Description |
|---|---|---|
GET | /v3/customers | List customers |
POST | /v3/customers | Create customers |
PUT | /v3/customers | Update customers |
GET | /v2/orders | List orders |
GET | /v2/orders/{id} | Get order details |
GET | /v3/catalog/products | List products |
GET | /v3/catalog/products/{id} | Get product details |
GET | /v3/catalog/products/{id}/variants | List product variants |
GET | /v3/carts | List carts |
GET | /v3/abandoned-carts | List abandoned carts |
POST | /v3/hooks | Create a webhook |
GET | /v3/catalog/categories | List 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 storeawait 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 BigCommerceconst 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 handlerapp.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 syncawait tajo.connectors.sync('bigcommerce', { type: 'full', resources: ['products'], includeVariants: true, includeImages: true});
// Check sync statusconst 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
| Plan | Limit | Details |
|---|---|---|
| Standard | 150 requests/30 sec | Per store |
| Plus | 300 requests/30 sec | Per store |
| Pro | 450 requests/30 sec | Per store |
| Enterprise | Unlimited | Custom limits |
Additional limits:
| Resource | Limit |
|---|---|
| Webhooks | 100 per store |
| Per page | 250 records max |
| Concurrent requests | Plan-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
| Issue | Cause | Solution |
|---|---|---|
401 Unauthorized | Invalid access token | Regenerate API credentials in BigCommerce admin |
403 Forbidden | Missing OAuth scope | Check API account scopes and add required permissions |
| Webhooks not firing | Webhook limit reached | Check webhook count (max 100) and remove unused ones |
| Cart events missing | Storefront scripts not loaded | Verify tracking script on BigCommerce storefront |
| Products out of sync | Catalog cache | Trigger a manual sync or wait for webhook updates |
429 Too Many Requests | Rate limit exceeded | Implement request queuing with rate limit header monitoring |
| Customer groups missing | V2 vs V3 API | Customer groups use the V2 API; check endpoint version |
Best Practices
- Use V3 API where possible - The V3 API offers better pagination, filtering, and JSON responses
- Monitor rate limit headers - Track
X-Rate-Limit-Requests-Leftto avoid hitting limits - Register webhooks for real-time sync - Use webhooks instead of polling for customer and order updates
- Batch customer updates - Use the V3 bulk customer endpoints for large data syncs
- Include variants in product sync - Sync product variants for accurate inventory tracking
- Set up abandoned cart webhooks - Critical for cart recovery email automation
- 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