Коннектор Shopify
Коннектор Shopify
Подключите магазин Shopify к Brevo для полной синхронизации данных о клиентах, восстановления брошенных корзин и автоматических маркетинговых кампаний.
Обзор
| Свойство | Значение |
|---|---|
| Платформа | Shopify |
| Категория | E-commerce |
| Сложность настройки | Простая |
| Официальная интеграция | Да |
| Синхронизируемые данные | Клиенты, заказы, товары, корзины, события |
| Доступных скиллов | 12 |
Возможности
- Синхронизация клиентов в реальном времени, данные клиентов мгновенно синхронизируются с контактами Brevo
- Отслеживание заказов, события заказов для постпокупочных потоков
- Синхронизация каталога товаров, товары доступны для рекомендаций
- Брошенные корзины, отслеживание и восстановление брошенных корзин
- Поведение при просмотре, отслеживание просмотров страниц и интереса к товарам
- Поддержка нескольких магазинов, подключение нескольких магазинов Shopify
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть:
- Магазин Shopify с правами администратора
- Аккаунт Brevo с доступом к API
- Аккаунт Tajo
Установка
Вариант 1: Shopify App Store (рекомендуется)
- Перейдите на страницу Tajo в Shopify App Store
- Нажмите “Add app”
- Предоставьте запрошенные разрешения
- Подключите аккаунт Brevo
Вариант 2: Ручная установка
Шаг 1: Создание приложения Shopify
- Перейдите в Shopify admin → Settings → Apps and sales channels
- Нажмите “Develop apps” → “Create an app”
- Назовите приложение “Tajo Integration”
Шаг 2: Настройка API Scope
Включите следующие scope:
read_customerswrite_customersread_ordersread_productsread_checkoutswrite_script_tagsШаг 3: Установка приложения
# Использование Tajo CLItajo connectors install shopify \ --shop-url your-store.myshopify.com \ --api-key $SHOPIFY_API_KEY \ --api-secret $SHOPIFY_API_SECRETШаг 4: Настройка вебхуков
Tajo автоматически регистрирует следующие вебхуки:
| Вебхук | Назначение |
|---|---|
customers/create | Синхронизация нового клиента |
customers/update | Изменения данных клиента |
customers/delete | Удаление клиента |
orders/create | События оформления заказа |
orders/updated | Изменения статуса заказа |
checkouts/create | Создание корзины |
checkouts/update | Обновление корзины |
Конфигурация
Базовая настройка
connectors: shopify: enabled: true shop_url: "your-store.myshopify.com" api_version: "2024-01"
# Параметры синхронизации данных sync: customers: true orders: true products: true carts: true inventory: false # Опционально
# Назначение листов lists: all_customers: 5 buyers: 6 abandoned_cart: 7Сопоставление полей
Сопоставьте поля Shopify с атрибутами контактов Brevo:
Сопоставления по умолчанию
| Parameter | Type | Description |
|---|---|---|
email required | string | Email клиента (уникальный идентификатор) |
first_name optional | string | Сопоставляется с атрибутом FIRSTNAME |
last_name optional | string | Сопоставляется с атрибутом LASTNAME |
phone optional | string | Сопоставляется с атрибутом SMS для WhatsApp/SMS |
accepts_marketing optional | boolean | Управляет статусом подписки |
orders_count optional | integer | Общее количество заказов |
total_spent optional | number | Пожизненная ценность клиента |
tags optional | array | Теги клиента из Shopify |
Сопоставление пользовательских атрибутов
field_mapping: # Стандартные поля email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS
# Метрики электронной коммерции orders_count: ORDER_COUNT total_spent: TOTAL_SPENT last_order_date: LAST_ORDER_DATE
# Пользовательские поля customer_type: CUSTOMER_TYPE preferred_language: LANGUAGE loyalty_tier: VIP_TIER
# Вычисляемые поля average_order_value: AOV days_since_last_order: RECENCYСинхронизация товаров
Синхронизируйте товары для email-рекомендаций:
sync: products: enabled: true include_variants: true include_images: true categories_as_tags: true
# Фильтрация товаров filter: status: active exclude_tags: ["hidden", "wholesale-only"]Отслеживание запасов
Включите синхронизацию уровней запасов:
sync: inventory: enabled: true low_stock_threshold: 10 out_of_stock_events: trueСобытия
События клиентов
| Событие | Триггер | Сценарий использования |
|---|---|---|
customer_created | Регистрация нового клиента | Приветственная серия |
customer_updated | Изменение профиля | Синхронизация данных |
customer_tags_added | Назначены теги | Обновление сегментов |
События заказов
| Событие | Триггер | Сценарий использования |
|---|---|---|
order_placed | Оформление заказа | Подтверждение заказа |
order_fulfilled | Отправка заказа | Уведомление об отправке |
order_cancelled | Отмена заказа | Email об отмене |
order_refunded | Возврат средств | Подтверждение возврата |
События корзины
| Событие | Триггер | Сценарий использования |
|---|---|---|
cart_created | Добавление товаров в корзину | Отслеживание просмотров |
cart_updated | Изменение корзины | Отслеживание стоимости корзины |
cart_abandoned | Нет оформления в течение 30 минут | Письма для восстановления |
Доступные скиллы
Коннектор Shopify открывает следующие скиллы:
| Скилл | Описание |
|---|---|
| Синхронизация клиентов | Синхронизация контактов в реальном времени |
| События заказов | Отслеживание жизненного цикла заказа |
| Брошенная корзина | Письма для восстановления корзины |
| Приветственная серия | Онбординг новых клиентов |
| После покупки | Follow-up по заказу |
| Возврат клиентов | Повторное вовлечение неактивных клиентов |
| Брошенный просмотр | Follow-up по интересу к товару |
| Пополнение запасов | Напоминания о повторном заказе |
Примеры кода
Инициализация коннектора
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Подключение магазина Shopifyawait tajo.connectors.connect('shopify', { shopUrl: 'your-store.myshopify.com', apiKey: process.env.SHOPIFY_API_KEY, apiSecret: process.env.SHOPIFY_API_SECRET});Запуск начальной синхронизации
// Полная историческая синхронизацияawait tajo.connectors.sync('shopify', { type: 'full', resources: ['customers', 'orders', 'products'], since: '2023-01-01'});
// Проверка статуса синхронизацииconst status = await tajo.connectors.status('shopify');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// customersCount: 15420,// ordersCount: 8234,// productsCount: 342// }Отслеживание событий корзины
Добавьте скрипт Tajo в тему Shopify:
<!-- Добавьте в theme.liquid перед </head> -->{% if customer %}<script> window.tajoConfig = { customerId: "{{ customer.id }}", customerEmail: "{{ customer.email }}", customerName: "{{ customer.first_name }}" };</script>{% endif %}<script src="https://cdn.tajo.io/shopify.js"></script>Пользовательский обработчик вебхуков
// Ручная обработка вебхуков Shopifyapp.post('/webhooks/shopify', async (req, res) => { const hmac = req.get('X-Shopify-Hmac-SHA256');
// Проверка подписи вебхука if (!verifyShopifyWebhook(req.body, hmac)) { return res.status(401).send('Unauthorized'); }
const topic = req.get('X-Shopify-Topic');
// Пересылка в Tajo await tajo.connectors.handleWebhook('shopify', { topic, payload: req.body });
res.status(200).send('OK');});Мониторинг
Метрики дашборда
Отслеживайте подключение Shopify в дашборде Tajo:
- Статус синхронизации: Состояние подключения в реальном времени
- Синхронизировано клиентов: Всего контактов из Shopify
- Отслежено заказов: Обработанные события заказов
- Восстановление корзин: Эффективность восстановления брошенных корзин
- Частота ошибок: Неудачные попытки синхронизации
Логи вебхуков
Просмотр статуса доставки вебхуков:
tajo connectors logs shopify --type webhook --last 24hИстория синхронизации
Просмотр исторических операций синхронизации:
tajo connectors history shopify --limit 10Устранение неполадок
Частые проблемы
Ограничения скорости API
Shopify устанавливает ограничения API: 2 запроса/секунду. Используйте пакетную синхронизацию для крупных исторических импортов.
| Проблема | Причина | Решение |
|---|---|---|
| Вебхук не получен | Права приложения | Переустановите приложение с правильными scope |
| Клиент не синхронизирован | Отсутствует email | Shopify требует email для клиентов |
| Товары отсутствуют | Статус товара | Проверьте, что статус товара “active” |
| Корзина не отслеживается | Скрипт не загружен | Проверьте скрипт в theme.liquid |
Режим отладки
connectors: shopify: debug: true log_level: verbose log_webhooks: trueПроверка подключения
tajo connectors test shopify# ✓ API connection successful# ✓ Webhooks registered# ✓ Products accessible# ✓ Customers readable# ✓ Orders readableЛучшие практики
- Начинайте с тестового магазина, сначала используйте магазин для разработки
- Запускайте начальную синхронизацию в нерабочее время, крупные синхронизации могут занимать много времени
- Сопоставляйте пользовательские атрибуты, не полагайтесь только на стандартные сопоставления
- Включайте отслеживание корзины, критично для восстановления брошенных корзин
- Следите за состоянием вебхуков, настройте оповещения о неудачных доставках
- Используйте пакетные импорты, для исторических данных свыше 10 000 записей
Безопасность
- OAuth 2.0, безопасная аутентификация на основе токенов
- Верификация вебхуков, валидация HMAC-подписи
- Шифрованное хранение, API-учётные данные зашифрованы при хранении
- Ограниченный доступ, только минимально необходимые права