---
title: "Connecteur Shopify"
description: "Guide complet d'intégration Shopify pour synchroniser clients, commandes, produits et événements de panier avec Brevo."
url: https://tajo.io/fr/docs/connectors/ecommerce/shopify/
markdown: https://tajo.io/fr/docs/connectors/ecommerce/shopify.md
lang: fr-FR
robots: noindex
---

Demandez un accès anticipé

Indiquez votre prénom et votre adresse e-mail professionnelle. Nous vous enverrons un lien pour confirmer votre demande d’accès à Tajo.

# Connecteur Shopify

Statut du connecteur: En cours En construction. Pas encore vérifié.

| Champ source | Champ de destination | Valeur d’exemple |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Connectez votre boutique Shopify à Brevo pour une synchronisation complète des données clients, la récupération de paniers abandonnés et des campagnes marketing automatisées.

## Vue d’ensemble

| Propriété | Valeur |
| --- | --- |
| **Plateforme** | Shopify |
| **Catégorie** | E-commerce |
| **Complexité d’installation** | Facile |
| **Intégration officielle** | Non |
| **Données synchronisées** | Clients, commandes, produits, paniers, événements |
| **Skills disponibles** | 12 |

## Fonctionnalités

- **Synchronisation client en temps réel**, Données client synchronisées instantanément vers les contacts Brevo
- **Suivi des commandes**, Événements de commande pour les workflows post-achat
- **Synchronisation du catalogue produits**, Produits disponibles pour les recommandations
- **Abandon de panier**, Suivi et récupération des paniers abandonnés
- **Comportement de navigation**, Suivi des pages vues et de l’intérêt produit
- **Prise en charge multi-boutiques**, Connectez plusieurs boutiques Shopify

## Prérequis

Avant de commencer, assurez-vous de disposer de :

1. Une boutique Shopify avec accès administrateur
2. Un compte Brevo avec accès API
3. Un compte Tajo

## Installation

### Option 1 : Shopify App Store (recommandé)

1. Rendez-vous sur [l’application Tajo dans le Shopify App Store](https://apps.shopify.com/tajo)
2. Cliquez sur « Add app »
3. Accordez les autorisations demandées
4. Connectez votre compte Brevo

### Option 2 : Installation manuelle

#### Étape 1 : Créer une application Shopify

1. Accédez à votre admin Shopify → Settings → Apps and sales channels
2. Cliquez sur « Develop apps » → « Create an app »
3. Nommez-la « Tajo Integration »

#### Étape 2 : Configurer les scopes API

Activez ces scopes :

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

#### Étape 3 : Installer l’application

```bash
# Using Tajo CLI
tajo connectors install shopify \
  --shop-url your-store.myshopify.com \
  --api-key $SHOPIFY_API_KEY \
  --api-secret $SHOPIFY_API_SECRET
```

#### Étape 4 : Configurer les webhooks

Tajo enregistre automatiquement ces webhooks :

| Webhook | Objectif |
| --- | --- |
| `customers/create` | Synchronisation d’un nouveau client |
| `customers/update` | Changements de données client |
| `customers/delete` | Suppression de client |
| `orders/create` | Événements de commande passée |
| `orders/updated` | Changements de statut de commande |
| `checkouts/create` | Panier créé |
| `checkouts/update` | Panier mis à jour |

## Configuration

### Configuration de base

```yaml
connectors:
  shopify:
    enabled: true
    shop_url: "your-store.myshopify.com"
    api_version: "2024-01"

    # Data sync options
    sync:
      customers: true
      orders: true
      products: true
      carts: true
      inventory: false  # Optional

    # List assignment
    lists:
      all_customers: 5
      buyers: 6
      abandoned_cart: 7
```

### Mappage des champs

Mappez les champs Shopify vers les attributs de contact Brevo :

#### Mappages par défaut

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | E-mail du client (identifiant unique) |
| `first_name` optional | string | Mappé vers l'attribut FIRSTNAME |
| `last_name` optional | string | Mappé vers l'attribut LASTNAME |
| `phone` optional | string | Mappé vers l'attribut SMS pour WhatsApp/SMS |
| `accepts_marketing` optional | boolean | Contrôle le statut d'abonnement |
| `orders_count` optional | integer | Nombre total de commandes |
| `total_spent` optional | number | Valeur vie client |
| `tags` optional | array | Tags client issus de Shopify |

#### Mappage d’attributs personnalisés

```yaml
field_mapping:
  # Standard fields
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone: SMS

  # E-commerce metrics
  orders_count: ORDER_COUNT
  total_spent: TOTAL_SPENT
  last_order_date: LAST_ORDER_DATE

  # Custom fields
  customer_type: CUSTOMER_TYPE
  preferred_language: LANGUAGE
  loyalty_tier: VIP_TIER

  # Computed fields
  average_order_value: AOV
  days_since_last_order: RECENCY
```

### Synchronisation des produits

Synchronisez les produits pour les recommandations e-mail :

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

    # Filter products
    filter:
      status: active
      exclude_tags: ["hidden", "wholesale-only"]
```

### Suivi des stocks

Activez la synchronisation des niveaux de stock :

```yaml
sync:
  inventory:
    enabled: true
    low_stock_threshold: 10
    out_of_stock_events: true
```

## Événements

### Événements client

| Événement | Déclencheur | Cas d’usage |
| --- | --- | --- |
| `customer_created` | Inscription d’un nouveau client | Série de bienvenue |
| `customer_updated` | Changements de profil | Synchronisation des données |
| `customer_tags_added` | Tags attribués | Mises à jour de segments |

### Événements de commande

| Événement | Déclencheur | Cas d’usage |
| --- | --- | --- |
| `order_placed` | Paiement finalisé | Confirmation de commande |
| `order_fulfilled` | Commande expédiée | Notification d’expédition |
| `order_cancelled` | Commande annulée | E-mail d’annulation |
| `order_refunded` | Remboursement traité | Confirmation de remboursement |

### Événements de panier

| Événement | Déclencheur | Cas d’usage |
| --- | --- | --- |
| `cart_created` | Articles ajoutés au panier | Suivi de navigation |
| `cart_updated` | Panier modifié | Suivi de la valeur du panier |
| `cart_abandoned` | Aucun paiement en 30 min | E-mails de récupération |

## Skills activés

Le connecteur Shopify active ces skills :

| Skill | Description |
| --- | --- |
| [Customer Sync](https://tajo.io/fr/docs/skills/data-sync/customer-sync) | Synchronisation client en temps réel |
| Order Events | Suivi du cycle de vie des commandes |
| [Abandoned Cart](https://tajo.io/fr/docs/skills/email-marketing/abandoned-cart) | E-mails de récupération de panier |
| Welcome Series | Onboarding des nouveaux clients |
| Post-Purchase | Suivi post-commande |
| Win-Back | Réengagement des clients inactifs |
| Browse Abandonment | Suivi d’intérêt produit |
| Replenishment | Rappels de réapprovisionnement |

## Exemples de code

### Initialiser le connecteur

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

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

// Connect Shopify store
await tajo.connectors.connect('shopify', {
  shopUrl: 'your-store.myshopify.com',
  apiKey: process.env.SHOPIFY_API_KEY,
  apiSecret: process.env.SHOPIFY_API_SECRET
});
```

### Lancer la synchronisation initiale

```javascript
// Full historical sync
await tajo.connectors.sync('shopify', {
  type: 'full',
  resources: ['customers', 'orders', 'products'],
  since: '2023-01-01'
});

// Check sync status
const status = await tajo.connectors.status('shopify');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   customersCount: 15420,
//   ordersCount: 8234,
//   productsCount: 342
// }
```

### Suivre les événements de panier

Ajoutez le script Tajo à votre thème Shopify :

```liquid
<!-- Add to theme.liquid before </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

L’adresse `example.com` ci-dessus est un exemple provisoire en attendant que l’endpoint Tajo soit disponible.

### Gestionnaire de webhook personnalisé

```javascript
// Handle Shopify webhooks manually
app.post('/webhooks/shopify', async (req, res) => {
  const hmac = req.get('X-Shopify-Hmac-SHA256');

  // Verify webhook signature
  if (!verifyShopifyWebhook(req.body, hmac)) {
    return res.status(401).send('Unauthorized');
  }

  const topic = req.get('X-Shopify-Topic');

  // Forward to Tajo
  await tajo.connectors.handleWebhook('shopify', {
    topic,
    payload: req.body
  });

  res.status(200).send('OK');
});
```

## Surveillance

### Métriques du tableau de bord

Surveillez votre connexion Shopify dans le tableau de bord Tajo :

- **Statut de synchronisation** : santé de la connexion en temps réel
- **Clients synchronisés** : total de contacts issus de Shopify
- **Commandes suivies** : événements de commande traités
- **Récupération de paniers** : performance des paniers abandonnés
- **Taux d’erreur** : tentatives de synchronisation échouées

### Journaux des webhooks

Consultez le statut de livraison des webhooks :

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

### Historique des synchronisations

Consultez les opérations de synchronisation passées :

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

## Dépannage

### Problèmes courants

Limites de débit de l'API

Shopify applique des limites de débit API de 2 requêtes/seconde. Utilisez la synchronisation batch pour les imports historiques volumineux.

| Problème | Cause | Solution |
| --- | --- | --- |
| Webhook non reçu | Permissions de l’application | Réinstallez l’application avec les bons scopes |
| Client non synchronisé | E-mail manquant | Shopify exige un e-mail pour les clients |
| Produits manquants | Statut du produit | Vérifiez que le produit a le statut « active » |
| Panier non suivi | Script non chargé | Vérifiez le script dans theme.liquid |

### Mode débogage

Activez la journalisation détaillée :

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

### Tester la connexion

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

## Bonnes pratiques

1. **Commencez avec une boutique de test**, Utilisez d’abord une boutique de développement
2. **Lancez la synchronisation initiale en heures creuses**, Les synchronisations volumineuses peuvent être lentes
3. **Mappez les attributs personnalisés**, Ne vous limitez pas aux mappages par défaut
4. **Activez le suivi de panier**, Essentiel pour la récupération de paniers abandonnés
5. **Surveillez la santé des webhooks**, Configurez des alertes pour les livraisons échouées
6. **Utilisez les imports batch**, Pour les données historiques de plus de 10 000 enregistrements

## Sécurité

- **OAuth 2.0**, Authentification sécurisée par jeton
- **Vérification des webhooks**, Validation de signature HMAC
- **Stockage chiffré**, Identifiants API chiffrés au repos
- **Accès délimité**, Permissions minimales requises uniquement

## Ressources associées

- [Connecteur WooCommerce](https://tajo.io/fr/docs/connectors/ecommerce/woocommerce)
- [Skill Customer Sync](https://tajo.io/fr/docs/skills/data-sync/customer-sync)
- [Skill Abandoned Cart](https://tajo.io/fr/docs/skills/email-marketing/abandoned-cart)
- [API Contacts Brevo](https://tajo.io/fr/docs/contact-management)
