Shopify-Connector
Shopify-Connector
Verbinde deinen Shopify-Shop mit Brevo für eine vollständige Synchronisation von Kundendaten, Warenkorb-Abandonment-Recovery und automatisierte Marketingkampagnen.
Überblick
| Eigenschaft | Wert |
|---|---|
| Plattform | Shopify |
| Kategorie | E-Commerce |
| Einrichtungsaufwand | Einfach |
| Offizielle Integration | Ja |
| Synchronisierte Daten | Kund:innen, Bestellungen, Produkte, Warenkörbe, Events |
| Verfügbare Skills | 12 |
Funktionen
- Echtzeit-Kundendaten-Synchronisation – Kundendaten werden sofort mit Brevo-Kontakten synchronisiert
- Bestellverfolgung – Bestell-Events für Post-Purchase-Flows
- Produktkatalog-Synchronisation – Produkte stehen für Empfehlungen zur Verfügung
- Warenkorb-Abandonment – Abgebrochene Warenkörbe verfolgen und reaktivieren
- Browse-Verhalten – Tracking von Seitenaufrufen und Produktinteresse
- Multi-Shop-Unterstützung – Verbinde mehrere Shopify-Shops
Voraussetzungen
Bevor du beginnst, stelle sicher, dass du Folgendes hast:
- Einen Shopify-Shop mit Admin-Zugang
- Einen Brevo-Account mit API-Zugang
- Einen Tajo-Account
Installation
Option 1: Shopify App Store (empfohlen)
- Besuche die Tajo-App im Shopify App Store
- Klicke auf „Add app”
- Erteile die angeforderten Berechtigungen
- Verbinde deinen Brevo-Account
Option 2: Manuelle Installation
Schritt 1: Eine Shopify-App erstellen
- Gehe im Shopify-Admin zu Settings → Apps and sales channels
- Klicke auf „Develop apps” → „Create an app”
- Benenne sie „Tajo Integration”
Schritt 2: API-Scopes konfigurieren
Aktiviere diese Scopes:
read_customerswrite_customersread_ordersread_productsread_checkoutswrite_script_tagsSchritt 3: App installieren
# Using Tajo CLItajo connectors install shopify \ --shop-url your-store.myshopify.com \ --api-key $SHOPIFY_API_KEY \ --api-secret $SHOPIFY_API_SECRETSchritt 4: Webhooks konfigurieren
Tajo registriert automatisch folgende Webhooks:
| Webhook | Zweck |
|---|---|
customers/create | Synchronisation neuer Kund:innen |
customers/update | Änderungen an Kundendaten |
customers/delete | Entfernen von Kund:innen |
orders/create | Events bei Bestellaufgabe |
orders/updated | Änderungen des Bestellstatus |
checkouts/create | Warenkorb erstellt |
checkouts/update | Warenkorb aktualisiert |
Konfiguration
Grundlegende Einrichtung
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: 7Feld-Mapping
Mappe Shopify-Felder auf Brevo-Kontaktattribute:
Standard-Mappings
| Parameter | Type | Description |
|---|---|---|
email required | string | E-Mail der Kund:in (eindeutiger Identifier) |
first_name optional | string | Mappt auf das FIRSTNAME-Attribut |
last_name optional | string | Mappt auf das LASTNAME-Attribut |
phone optional | string | Mappt auf das SMS-Attribut für WhatsApp/SMS |
accepts_marketing optional | boolean | Steuert den Abonnement-Status |
orders_count optional | integer | Gesamtzahl der Bestellungen |
total_spent optional | number | Lifetime Customer Value |
tags optional | array | Kunden-Tags aus Shopify |
Mapping benutzerdefinierter Attribute
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: RECENCYProdukt-Synchronisation
Synchronisiere Produkte für E-Mail-Empfehlungen:
sync: products: enabled: true include_variants: true include_images: true categories_as_tags: true
# Filter products filter: status: active exclude_tags: ["hidden", "wholesale-only"]Bestandsverfolgung
Aktiviere die Synchronisation der Lagerbestände:
sync: inventory: enabled: true low_stock_threshold: 10 out_of_stock_events: trueEvents
Kunden-Events
| Event | Trigger | Anwendungsfall |
|---|---|---|
customer_created | Neuregistrierung einer Kund:in | Welcome-Serie |
customer_updated | Profiländerungen | Datensynchronisation |
customer_tags_added | Tags zugewiesen | Segment-Updates |
Bestell-Events
| Event | Trigger | Anwendungsfall |
|---|---|---|
order_placed | Checkout abgeschlossen | Bestellbestätigung |
order_fulfilled | Bestellung versandt | Versandbenachrichtigung |
order_cancelled | Bestellung storniert | Stornierungs-E-Mail |
order_refunded | Rückerstattung verarbeitet | Rückerstattungs-Bestätigung |
Warenkorb-Events
| Event | Trigger | Anwendungsfall |
|---|---|---|
cart_created | Artikel in den Warenkorb gelegt | Browse-Tracking |
cart_updated | Warenkorb geändert | Warenkorb-Wert-Tracking |
cart_abandoned | Kein Checkout innerhalb von 30 Min. | Recovery-E-Mails |
Freigeschaltete Skills
Der Shopify-Connector schaltet folgende Skills frei:
| Skill | Beschreibung |
|---|---|
| Customer Sync | Echtzeit-Kundendaten-Synchronisation |
| Order Events | Bestell-Lifecycle-Tracking |
| Abandoned Cart | Warenkorb-Recovery-E-Mails |
| Welcome Series | Onboarding für Neukund:innen |
| Post-Purchase | Bestell-Follow-up |
| Win-Back | Inaktive Kund:innen reaktivieren |
| Browse Abandonment | Follow-up bei Produktinteresse |
| Replenishment | Nachbestell-Erinnerungen |
Code-Beispiele
Connector initialisieren
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});Erst-Synchronisation ausführen
// 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// }Warenkorb-Events tracken
Füge das Tajo-Skript zu deinem Shopify-Theme hinzu:
<!-- 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>Benutzerdefinierter Webhook-Handler
// 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');});Monitoring
Dashboard-Metriken
Überwache deine Shopify-Verbindung im Tajo-Dashboard:
- Sync-Status: Echtzeit-Zustand der Verbindung
- Synchronisierte Kund:innen: Gesamtzahl der Kontakte aus Shopify
- Erfasste Bestellungen: Verarbeitete Bestell-Events
- Cart-Recovery: Performance bei abgebrochenen Warenkörben
- Fehlerrate: Fehlgeschlagene Synchronisationsversuche
Webhook-Logs
Zeige den Webhook-Zustellstatus an:
tajo connectors logs shopify --type webhook --last 24hSynchronisationsverlauf
Historische Synchronisations-Operationen prüfen:
tajo connectors history shopify --limit 10Fehlerbehebung
Häufige Probleme
API Rate Limits
Shopify hat API-Rate-Limits von 2 Requests/Sekunde. Nutze Batch-Synchronisation für große historische Importe.
| Problem | Ursache | Lösung |
|---|---|---|
| Webhook nicht empfangen | App-Berechtigungen | App mit korrekten Scopes neu installieren |
| Kund:in nicht synchronisiert | Fehlende E-Mail | Shopify verlangt für Kund:innen eine E-Mail-Adresse |
| Produkte fehlen | Produktstatus | Prüfe, ob das Produkt den Status „active” hat |
| Warenkorb nicht getrackt | Skript nicht geladen | Skript in der theme.liquid prüfen |
Debug-Modus
Ausführliches Logging aktivieren:
connectors: shopify: debug: true log_level: verbose log_webhooks: trueVerbindung testen
tajo connectors test shopify# ✓ API connection successful# ✓ Webhooks registered# ✓ Products accessible# ✓ Customers readable# ✓ Orders readableBest Practices
- Mit einem Test-Shop starten – Nutze zunächst einen Development-Store
- Erst-Synchronisation außerhalb der Stoßzeiten – Große Synchronisationen können langsam sein
- Benutzerdefinierte Attribute mappen – Verlasse dich nicht nur auf Standard-Mappings
- Warenkorb-Tracking aktivieren – Entscheidend für Warenkorb-Abandonment-Recovery
- Webhook-Gesundheit überwachen – Richte Alerts für fehlgeschlagene Zustellungen ein
- Batch-Importe nutzen – Für historische Daten ab 10.000 Datensätzen
Sicherheit
- OAuth 2.0 – Sichere Token-basierte Authentifizierung
- Webhook-Verifizierung – Validierung der HMAC-Signatur
- Verschlüsselte Speicherung – API-Zugangsdaten werden verschlüsselt abgelegt
- Gescopeter Zugriff – Nur minimal erforderliche Berechtigungen