Коннектор BigCommerce
Коннектор BigCommerce
Подключите магазин BigCommerce к Brevo через Tajo для полной синхронизации данных электронной коммерции. Синхронизируйте клиентов, заказы, товары и события корзины для таргетированных маркетинговых кампаний, восстановления брошенных корзин и автоматизации после покупки.
Обзор
| Свойство | Значение |
|---|---|
| Платформа | BigCommerce |
| Категория | E-commerce |
| Сложность настройки | Средняя |
| Официальная интеграция | Нет |
| Синхронизируемые данные | Клиенты, заказы, товары, корзины |
| Доступных скиллов | 10 |
Возможности
- Синхронизация клиентов, синхронизация данных клиентов в реальном времени с контактами Brevo
- Отслеживание заказов, события жизненного цикла заказов для маркетинговых потоков после покупки
- Синхронизация каталога товаров, синхронизация товаров для email-рекомендаций и динамического контента
- Брошенные корзины, отслеживание и восстановление брошенных корзин с помощью автоматических писем
- Поддержка нескольких витрин, подключение нескольких витрин BigCommerce
- Обновления через вебхуки, обновления данных в реальном времени через вебхуки BigCommerce
- Пользовательские поля, сопоставление пользовательских полей BigCommerce с атрибутами контактов Brevo
- Отслеживание запасов, синхронизация уровней запасов для уведомлений о возвращении товара
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть:
- Магазин BigCommerce с правами владельца или администратора
- API-аккаунт BigCommerce с необходимыми OAuth scope
- Store Hash (в URL магазина или в API-учётных данных)
- Аккаунт Brevo с доступом к API
- Аккаунт Tajo с API-учётными данными
Аутентификация
Учётные данные API-аккаунта
BigCommerce использует OAuth-based API-аккаунты. Создайте его в панели управления BigCommerce в разделе Settings > API > API Accounts.
Вы получите:
- Client ID, идентификатор приложения
- Client Secret, секрет приложения (храните надёжно)
- Access Token, используется для аутентификации API
- Store Hash, уникальный идентификатор магазина
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"Необходимые OAuth Scope
| Scope | Доступ | Назначение |
|---|---|---|
store_v2_customers | Read | Синхронизация данных клиентов |
store_v2_orders | Read | Отслеживание событий заказов |
store_v2_products | Read | Синхронизация каталога товаров |
store_cart | Read | Отслеживание брошенных корзин |
store_v2_information | Read | Конфигурация магазина |
store_v2_content | Read | Контент витрины |
Конфигурация
Базовая настройка
connectors: bigcommerce: enabled: true store_hash: "your-store-hash" access_token: "your-access-token" client_id: "your-client-id"
# Параметры синхронизации данных sync: customers: true orders: true products: true carts: true inventory: false
# Назначение листов Brevo lists: all_customers: 40 buyers: 41 abandoned_cart: 42Сопоставление полей клиентов
Сопоставьте поля клиентов BigCommerce с атрибутами Brevo:
customer_mapping: email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS company: COMPANY
# Поля адреса addresses[0].city: CITY addresses[0].state: STATE addresses[0].country: COUNTRY addresses[0].zip: ZIP
# Метрики электронной коммерции orders_count: ORDER_COUNT total_spent: TOTAL_SPENT date_created: SIGNUP_DATE
# Группа клиентов customer_group_id: CUSTOMER_GROUPКонфигурация вебхуков
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
| Метод | Эндпоинт | Описание |
|---|---|---|
GET | /v3/customers | Список клиентов |
POST | /v3/customers | Создание клиентов |
PUT | /v3/customers | Обновление клиентов |
GET | /v2/orders | Список заказов |
GET | /v2/orders/{id} | Детали заказа |
GET | /v3/catalog/products | Список товаров |
GET | /v3/catalog/products/{id} | Детали товара |
GET | /v3/catalog/products/{id}/variants | Варианты товара |
GET | /v3/carts | Список корзин |
GET | /v3/abandoned-carts | Список брошенных корзин |
POST | /v3/hooks | Создание вебхука |
GET | /v3/catalog/categories | Список категорий |
Примеры кода
Инициализация коннектора BigCommerce
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Подключение магазина BigCommerceawait tajo.connectors.connect('bigcommerce', { storeHash: process.env.BC_STORE_HASH, accessToken: process.env.BC_ACCESS_TOKEN, clientId: process.env.BC_CLIENT_ID});Получение и синхронизация клиентов
// Получение клиентов из 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 }Обработка событий вебхука
// Обработчик вебхуков BigCommerceapp.post('/webhooks/bigcommerce', async (req, res) => { const { scope, store_id, data } = req.body;
// Проверка, что вебхук от вашего магазина if (store_id !== process.env.BC_STORE_HASH) { return res.status(401).send('Unauthorized'); }
// Пересылка в Tajo await tajo.connectors.handleWebhook('bigcommerce', { topic: scope, payload: data });
res.status(200).send('OK');});Синхронизация каталога товаров
// Полная синхронизация каталога товаровawait tajo.connectors.sync('bigcommerce', { type: 'full', resources: ['products'], includeVariants: true, includeImages: true});
// Проверка статуса синхронизацииconst status = await tajo.connectors.status('bigcommerce');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// customersCount: 8200,// ordersCount: 4500,// productsCount: 620// }Ограничения скорости
| План | Лимит | Детали |
|---|---|---|
| Standard | 150 запросов/30 сек | На магазин |
| Plus | 300 запросов/30 сек | На магазин |
| Pro | 450 запросов/30 сек | На магазин |
| Enterprise | Без ограничений | Индивидуальные лимиты |
Дополнительные ограничения:
| Ресурс | Лимит |
|---|---|
| Вебхуки | 100 на магазин |
| На страницу | Максимум 250 записей |
| Параллельные запросы | Зависит от плана |
Заголовки ограничений скорости
Следите за заголовками X-Rate-Limit-Requests-Left и X-Rate-Limit-Time-Reset-Ms для управления использованием API в пределах лимитов.
Устранение неполадок
| Проблема | Причина | Решение |
|---|---|---|
401 Unauthorized | Недействительный токен доступа | Перегенерируйте API-учётные данные в панели BigCommerce |
403 Forbidden | Отсутствует OAuth scope | Проверьте scope API-аккаунта и добавьте необходимые права |
| Вебхуки не срабатывают | Достигнут лимит вебхуков | Проверьте количество вебхуков (макс. 100) и удалите неиспользуемые |
| Отсутствуют события корзины | Скрипты витрины не загружены | Проверьте наличие скрипта отслеживания в витрине BigCommerce |
| Товары не синхронизированы | Кеш каталога | Запустите ручную синхронизацию или дождитесь обновлений через вебхук |
429 Too Many Requests | Превышен лимит скорости | Реализуйте очередь запросов с мониторингом заголовков лимитов |
| Отсутствуют группы клиентов | V2 против V3 API | Группы клиентов используют V2 API; проверьте версию эндпоинта |
Лучшие практики
- Используйте V3 API по возможности, V3 API предлагает лучшую пагинацию, фильтрацию и JSON-ответы
- Следите за заголовками лимитов скорости, отслеживайте
X-Rate-Limit-Requests-Left, чтобы не превышать лимиты - Регистрируйте вебхуки для синхронизации в реальном времени, используйте вебхуки вместо опроса для обновлений клиентов и заказов
- Пакетные обновления клиентов, используйте пакетные эндпоинты V3 для крупных синхронизаций данных
- Включайте варианты при синхронизации товаров, синхронизируйте варианты товаров для точного отслеживания запасов
- Настройте вебхуки брошенных корзин, критично для автоматизации email-восстановления корзин
- Используйте пагинацию, всегда пагинируйте списочные эндпоинты; максимум 250 записей на страницу
Безопасность
- OAuth-аутентификация по токену, безопасный доступ к API на основе токенов
- Ограниченные права, API-аккаунты ограничены конкретными scope данных
- Только HTTPS, все API-коммуникации зашифрованы через TLS
- Верификация вебхуков, верификация источника вебхука по store hash
- PCI DSS-совместимость, BigCommerce безопасно обрабатывает платёжные данные
- SOC 2 Type II, платформа BigCommerce сертифицирована по SOC 2