Connecteur Shopify
Connecteur Shopify
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 | Oui |
| 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 :
- Une boutique Shopify avec accès administrateur
- Un compte Brevo avec accès API
- Un compte Tajo
Installation
Option 1 : Shopify App Store (recommandé)
- Rendez-vous sur l’application Tajo dans le Shopify App Store
- Cliquez sur « Add app »
- Accordez les autorisations demandées
- Connectez votre compte Brevo
Option 2 : Installation manuelle
Étape 1 : Créer une application Shopify
- Accédez à votre admin Shopify → Settings → Apps and sales channels
- Cliquez sur « Develop apps » → « Create an app »
- Nommez-la « Tajo Integration »
Étape 2 : Configurer les scopes API
Activez ces scopes :
read_customerswrite_customersread_ordersread_productsread_checkoutswrite_script_tagsÉtape 3 : Installer l’application
# Using Tajo CLItajo 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
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: 7Mappage 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
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: RECENCYSynchronisation des produits
Synchronisez les produits pour les recommandations e-mail :
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 :
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 | Synchronisation client en temps réel |
| Order Events | Suivi du cycle de vie des commandes |
| 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
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Shopify storeawait 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
// Full historical syncawait tajo.connectors.sync('shopify', { type: 'full', resources: ['customers', 'orders', 'products'], since: '2023-01-01'});
// Check sync statusconst 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 :
<!-- 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.tajo.io/shopify.js"></script>Gestionnaire de webhook personnalisé
// Handle Shopify webhooks manuallyapp.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 :
tajo connectors logs shopify --type webhook --last 24hHistorique des synchronisations
Consultez les opérations de synchronisation passées :
tajo connectors history shopify --limit 10Dé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 :
connectors: shopify: debug: true log_level: verbose log_webhooks: trueTester la connexion
tajo connectors test shopify# ✓ API connection successful# ✓ Webhooks registered# ✓ Products accessible# ✓ Customers readable# ✓ Orders readableBonnes pratiques
- Commencez avec une boutique de test, Utilisez d’abord une boutique de développement
- Lancez la synchronisation initiale en heures creuses, Les synchronisations volumineuses peuvent être lentes
- Mappez les attributs personnalisés, Ne vous limitez pas aux mappages par défaut
- Activez le suivi de panier, Essentiel pour la récupération de paniers abandonnés
- Surveillez la santé des webhooks, Configurez des alertes pour les livraisons échouées
- 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