---
title: "Shopify-Connector"
description: "Vollständiger Leitfaden zur Shopify-Integration für die Synchronisation von Kund:innen, Bestellungen, Produkten und Warenkorb-Events mit Brevo."
url: https://tajo.io/de/docs/connectors/ecommerce/shopify/
markdown: https://tajo.io/de/docs/connectors/ecommerce/shopify.md
lang: de-DE
robots: noindex
---

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

# Shopify-Connector

Connector-Status: In Arbeit Im Aufbau. Noch nicht verifiziert.

| Quellfeld | Zielfeld | Beispielwert |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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** | Nein |
| **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:

1. Einen Shopify-Shop mit Admin-Zugang
2. Einen Brevo-Account mit API-Zugang
3. Einen Tajo-Account

## Installation

### Option 1: Shopify App Store (empfohlen)

1. Besuche die [Tajo-App im Shopify App Store](https://apps.shopify.com/tajo)
2. Klicke auf „Add app”
3. Erteile die angeforderten Berechtigungen
4. Verbinde deinen Brevo-Account

### Option 2: Manuelle Installation

#### Schritt 1: Eine Shopify-App erstellen

1. Gehe im Shopify-Admin zu Settings → Apps and sales channels
2. Klicke auf „Develop apps” → „Create an app”
3. Benenne sie „Tajo Integration”

#### Schritt 2: API-Scopes konfigurieren

Aktiviere diese Scopes:

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

#### Schritt 3: App installieren

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

#### Schritt 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

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

### Feld-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

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

### Produkt-Synchronisation

Synchronisiere Produkte für E-Mail-Empfehlungen:

```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"]
```

### Bestandsverfolgung

Aktiviere die Synchronisation der Lagerbestände:

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

## Events

### 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](https://tajo.io/de/docs/skills/data-sync/customer-sync) | Echtzeit-Kundendaten-Synchronisation |
| Order Events | Bestell-Lifecycle-Tracking |
| [Abandoned Cart](https://tajo.io/de/docs/skills/email-marketing/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

```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
});
```

### Erst-Synchronisation ausführen

```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
// }
```

### Warenkorb-Events tracken

Füge das Tajo-Skript zu deinem Shopify-Theme hinzu:

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

Die Adresse `example.com` oben ist ein Platzhalter, bis der Tajo-Endpunkt verfügbar ist.

### Benutzerdefinierter Webhook-Handler

```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');
});
```

## 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:

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

### Synchronisationsverlauf

Historische Synchronisations-Operationen prüfen:

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

## Fehlerbehebung

### 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:

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

### Verbindung testen

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

## Best Practices

1. **Mit einem Test-Shop starten** – Nutze zunächst einen Development-Store
2. **Erst-Synchronisation außerhalb der Stoßzeiten** – Große Synchronisationen können langsam sein
3. **Benutzerdefinierte Attribute mappen** – Verlasse dich nicht nur auf Standard-Mappings
4. **Warenkorb-Tracking aktivieren** – Entscheidend für Warenkorb-Abandonment-Recovery
5. **Webhook-Gesundheit überwachen** – Richte Alerts für fehlgeschlagene Zustellungen ein
6. **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

## Verwandte Ressourcen

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