---
title: "Коннектор Shopify"
description: "Полное руководство по интеграции Shopify для синхронизации клиентов, заказов, товаров и событий корзины с Brevo."
url: https://tajo.io/ru/docs/connectors/ecommerce/shopify/
markdown: https://tajo.io/ru/docs/connectors/ecommerce/shopify.md
lang: ru-RU
robots: noindex
---

Подайте заявку на ранний доступ

Укажите имя и рабочий адрес электронной почты. Мы отправим ссылку для подтверждения запроса на доступ к Tajo.

# Коннектор Shopify

Статус коннектора: В разработке Создаётся. Ещё не проверен.

| Поле источника | Поле назначения | Пример значения |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Подключите магазин Shopify к Brevo для полной синхронизации данных о клиентах, восстановления брошенных корзин и автоматических маркетинговых кампаний.

## Обзор

| Свойство | Значение |
| --- | --- |
| **Платформа** | Shopify |
| **Категория** | E-commerce |
| **Сложность настройки** | Простая |
| **Официальная интеграция** | Нет |
| **Синхронизируемые данные** | Клиенты, заказы, товары, корзины, события |
| **Доступных скиллов** | 12 |

## Возможности

- **Синхронизация клиентов в реальном времени**, данные клиентов мгновенно синхронизируются с контактами Brevo
- **Отслеживание заказов**, события заказов для постпокупочных потоков
- **Синхронизация каталога товаров**, товары доступны для рекомендаций
- **Брошенные корзины**, отслеживание и восстановление брошенных корзин
- **Поведение при просмотре**, отслеживание просмотров страниц и интереса к товарам
- **Поддержка нескольких магазинов**, подключение нескольких магазинов Shopify

## Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

1. Магазин Shopify с правами администратора
2. Аккаунт Brevo с доступом к API
3. Аккаунт Tajo

## Установка

### Вариант 1: Shopify App Store (рекомендуется)

1. Перейдите на [страницу Tajo в Shopify App Store](https://apps.shopify.com/tajo)
2. Нажмите “Add app”
3. Предоставьте запрошенные разрешения
4. Подключите аккаунт Brevo

### Вариант 2: Ручная установка

#### Шаг 1: Создание приложения Shopify

1. Перейдите в Shopify admin → Settings → Apps and sales channels
2. Нажмите “Develop apps” → “Create an app”
3. Назовите приложение “Tajo Integration”

#### Шаг 2: Настройка API Scope

Включите следующие scope:

```
read_customers
write_customers
read_orders
read_products
read_checkouts
write_script_tags
```

#### Шаг 3: Установка приложения

```bash
# Использование Tajo CLI
tajo 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` | Обновление корзины |

## Конфигурация

### Базовая настройка

```yaml
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 |

#### Сопоставление пользовательских атрибутов

```yaml
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-рекомендаций:

```yaml
sync:
  products:
    enabled: true
    include_variants: true
    include_images: true
    categories_as_tags: true

    # Фильтрация товаров
    filter:
      status: active
      exclude_tags: ["hidden", "wholesale-only"]
```

### Отслеживание запасов

Включите синхронизацию уровней запасов:

```yaml
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 открывает следующие скиллы:

| Скилл | Описание |
| --- | --- |
| [Синхронизация клиентов](https://tajo.io/ru/docs/skills/data-sync/customer-sync) | Синхронизация контактов в реальном времени |
| События заказов | Отслеживание жизненного цикла заказа |
| [Брошенная корзина](https://tajo.io/ru/docs/skills/email-marketing/abandoned-cart) | Письма для восстановления корзины |
| Приветственная серия | Онбординг новых клиентов |
| После покупки | Follow-up по заказу |
| Возврат клиентов | Повторное вовлечение неактивных клиентов |
| Брошенный просмотр | Follow-up по интересу к товару |
| Пополнение запасов | Напоминания о повторном заказе |

## Примеры кода

### Инициализация коннектора

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Подключение магазина Shopify
await tajo.connectors.connect('shopify', {
  shopUrl: 'your-store.myshopify.com',
  apiKey: process.env.SHOPIFY_API_KEY,
  apiSecret: process.env.SHOPIFY_API_SECRET
});
```

### Запуск начальной синхронизации

```javascript
// Полная историческая синхронизация
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:

```liquid
<!-- Добавьте в theme.liquid перед </head> -->
{% if customer %}
<script>
  window.tajoConfig = {
    customerId: "{{ customer.id }}",
    customerEmail: "{{ customer.email }}",
    customerName: "{{ customer.first_name }}"
  };
</script>
{% endif %}
<script src="https://cdn.example.com/shopify.js"></script>
```

Caution

Адрес `example.com` выше — заглушка, пока эндпоинт Tajo не станет доступен.

### Пользовательский обработчик вебхуков

```javascript
// Ручная обработка вебхуков Shopify
app.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
- **Отслежено заказов**: Обработанные события заказов
- **Восстановление корзин**: Эффективность восстановления брошенных корзин
- **Частота ошибок**: Неудачные попытки синхронизации

### Логи вебхуков

Просмотр статуса доставки вебхуков:

```bash
tajo connectors logs shopify --type webhook --last 24h
```

### История синхронизации

Просмотр исторических операций синхронизации:

```bash
tajo connectors history shopify --limit 10
```

## Устранение неполадок

### Частые проблемы

Ограничения скорости API

Shopify устанавливает ограничения API: 2 запроса/секунду. Используйте пакетную синхронизацию для крупных исторических импортов.

| Проблема | Причина | Решение |
| --- | --- | --- |
| Вебхук не получен | Права приложения | Переустановите приложение с правильными scope |
| Клиент не синхронизирован | Отсутствует email | Shopify требует email для клиентов |
| Товары отсутствуют | Статус товара | Проверьте, что статус товара “active” |
| Корзина не отслеживается | Скрипт не загружен | Проверьте скрипт в theme.liquid |

### Режим отладки

```yaml
connectors:
  shopify:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### Проверка подключения

```bash
tajo connectors test shopify
# ✓ API connection successful
# ✓ Webhooks registered
# ✓ Products accessible
# ✓ Customers readable
# ✓ Orders readable
```

## Лучшие практики

1. **Начинайте с тестового магазина**, сначала используйте магазин для разработки
2. **Запускайте начальную синхронизацию в нерабочее время**, крупные синхронизации могут занимать много времени
3. **Сопоставляйте пользовательские атрибуты**, не полагайтесь только на стандартные сопоставления
4. **Включайте отслеживание корзины**, критично для восстановления брошенных корзин
5. **Следите за состоянием вебхуков**, настройте оповещения о неудачных доставках
6. **Используйте пакетные импорты**, для исторических данных свыше 10 000 записей

## Безопасность

- **OAuth 2.0**, безопасная аутентификация на основе токенов
- **Верификация вебхуков**, валидация HMAC-подписи
- **Шифрованное хранение**, API-учётные данные зашифрованы при хранении
- **Ограниченный доступ**, только минимально необходимые права

## Связанные ресурсы

- [Коннектор WooCommerce](https://tajo.io/ru/docs/connectors/ecommerce/woocommerce)
- [Скилл синхронизации клиентов](https://tajo.io/ru/docs/skills/data-sync/customer-sync)
- [Скилл брошенной корзины](https://tajo.io/ru/docs/skills/email-marketing/abandoned-cart)
- [Brevo Contacts API](https://tajo.io/ru/docs/contact-management)
