# Shop verbinden

> Senden Sie Produkte und Bestellungen aus dem Backend Ihres Shops und binden Sie das Tracking-Skript von Emailit ein, um Produktaufrufe, Warenkörbe und Käufe zu erfassen und Besucher zu erkennen, die über Ihre E-Mails kommen. Alpha: nur für das Emailit-Team zugänglich.

Ein Shop sendet Emailit zwei Arten von Daten: den Katalog und die Bestellungen aus seinem Backend, per API, und das, was Besucher auf der Website tun, mit dem Tracking-Skript von [Event-Tracking](/de/docs/events/). Nutzen Sie beides für das vollständige Bild: Die API ist die verlässliche Quelle für Bestellungen, und das Skript ergänzt Produktaufrufe, Warenkörbe und Besucher, die über Ihre E-Mails kommen.

> **Commerce ist in der Alpha:** Commerce steht nur dem Emailit-Team offen, solange wir es testen. Die API und das Tracking-Skript funktionieren nur in Workspaces, die dem Emailit-Team gehören. Siehe [Wer Commerce nutzen kann](/de/docs/commerce/#who-can-use-commerce).

## Voraussetzungen

- Ein [API-Schlüssel](/de/docs/developers/api-keys/) für die Aufrufe aus dem Backend. Ein Schlüssel mit dem Scope **Events Only** kann Produkte, Bestellungen und Warenkörbe senden – derselbe Schlüssel, der [Events aus Ihrem Backend](/de/docs/events/send-events/) sendet. Er kann nichts zurücklesen, daher enthalten seine Antworten nur `object`, `id` und `external_id`. Verwenden Sie einen Schlüssel mit **Full Access**, um auch Daten zu lesen, Gutscheine zu verwalten oder Einstellungen zu ändern.
- Für das Tracking-Skript die Berechtigung, den Seiten Ihres Shops ein Skript hinzuzufügen.

## Daten aus Ihrem Backend senden

### Produkte

Senden Sie Ihren Katalog mit [Produkte gesammelt erstellen oder aktualisieren](/de/docs/api-reference/products/batch/) und erneut, sobald sich Produkte ändern. Jedes Produkt wird über die Produkt-ID Ihres Shops identifiziert, ein erneutes Senden aktualisiert es also.

```bash
curl https://api.emailit.com/v2/products/batch \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "products": [{
      "id": "1234",
      "title": "Trail Runner GTX",
      "url": "https://shop.example.com/products/trail-runner",
      "image_url": "https://shop.example.com/images/trail-runner.jpg",
      "price": 139,
      "compare_at_price": 169,
      "currency": "EUR",
      "categories": ["Shoes", "Running"],
      "inventory_quantity": 40
    }]
  }'
```

Produkt-Feeds in E-Mails lassen archivierte Produkte und Produkte mit einem Lagerbestand von 0 aus, halten Sie `status` und `inventory_quantity` daher aktuell.

### Bestellungen

Wenn eine Bestellung aufgegeben wird, senden Sie sie mit [Bestellung erstellen oder aktualisieren](/de/docs/api-reference/orders/create/):

```bash
curl https://api.emailit.com/v2/orders \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "1001",
    "email": "jane@example.com",
    "currency": "EUR",
    "total": 125,
    "shipping": 5,
    "coupon_codes": ["WLC-8K2M4P"],
    "cart_id": "cart_789",
    "items": [{ "product_id": "1234", "title": "Trail Runner GTX", "quantity": 1, "price": 120 }]
  }'
```

- `id` ist die Bestellnummer Ihres Shops. Wenn Sie dieselbe `id` erneut senden, wird die Bestellung aktualisiert, statt eine weitere hinzuzufügen.
- Emailit ordnet die Bestellung der E-Mail zu, die der Käufer zuletzt geklickt oder geöffnet hat. Siehe [Wie Bestellungen zugeordnet werden](/de/docs/commerce/#how-orders-are-credited-to-emails).
- Der Käufer wird zum Kontakt, falls er noch keiner ist. Fügen Sie `"accepts_marketing": true` und eine `audience_id` hinzu, um ihn auch anzumelden, zum Beispiel wenn er beim Checkout ein Newsletter-Kästchen angekreuzt hat. `"create_contact": false` überspringt das Erstellen eines Kontakts. Der Befehl `purchase` des Tracking-Skripts erstellt nie einen Kontakt und meldet nie einen an.
- `cart_id` markiert diesen Warenkorb als konvertiert.

Wenn die Bestellung bezahlt, versandt, storniert oder erstattet wird, senden Sie die Änderung mit [Bestellung aktualisieren](/de/docs/api-reference/orders/update/) oder senden Sie die Bestellung mit ihrem neuen `status` erneut. Stornierte Bestellungen zählen nicht zum Umsatz, und Rückerstattungen werden abgezogen.

### Frühere Bestellungen

Importieren Sie Ihre Bestellhistorie mit [Bestellungen gesammelt importieren](/de/docs/api-reference/orders/batch/), bis zu 1.000 Bestellungen pro Anfrage. Importe sind standardmäßig historisch: Sie füllen Kaufhistorie, Kennzahlen und Empfehlungen, werden aber keinen E-Mails zugeordnet und starten keine Automatisierungen.

## Das Tracking-Skript

Das Tracking-Skript erfasst, was Besucher auf Ihrer Website tun: Produktaufrufe, den Warenkorb, Käufe und Besuche. Außerdem erkennt es Besucher, die über Ihre E-Mails kommen, sodass ihre Aktivität zu ihrem Kontakt gehört.

### Skript hinzufügen

1. **Tracking-Schlüssel erstellen.** Öffnen Sie **Email API → Events**, wechseln Sie zum Tab **Tracking** und wählen Sie **Create tracking key**. Tragen Sie unter **Allowed origins** die Domains Ihres Shops ein, zum Beispiel `shop.example.com` oder `*.example.com`. Lassen Sie das Feld leer, um jede Website zu akzeptieren.

2. **Snippet auf jeder Seite einfügen,** vor `</head>`. Der Tab **Tracking** zeigt es mit Ihrem bereits eingetragenen Schlüssel:

```html
<script>window.emailit=window.emailit||function(){(window._emailitq=window._emailitq||[]).push(arguments)};</script>
<script async src="https://js.emailit.com/track/TRACKING_KEY/events.js"></script>
```

   Tracking-Schlüssel sind öffentlich: Sie können nur Events senden, nie Daten lesen. Wenn das Skript der [Emailit-Formulare](/de/docs/forms/install/) bereits auf der Seite ist, behalten Sie beide.

Um zusätzlich auf jeder Seite einen Seitenaufruf zu erfassen, fügen Sie dem Script-Tag `data-autotrack="pages"` hinzu. Seitenaufrufe aktualisieren, wann der Kontakt zuletzt auf Ihrer Website aktiv war, und seine Zeitzone; als Events werden sie nicht gespeichert.

### Shop-Aktivität erfassen

Rufen Sie diese Befehle dort auf, wo die Aktion passiert:

```js
// Product page
emailit("product", { id: "1234", title: "Trail Runner GTX", url: location.href,
  image_url: "https://shop.example.com/images/trail-runner.jpg", price: 139, currency: "EUR",
  categories: ["Shoes", "Running"] });

// Every time the cart changes
emailit("cart", { id: "cart_789", currency: "EUR", checkout_url: "https://shop.example.com/checkout",
  items: [{ product_id: "1234", title: "Trail Runner GTX", quantity: 1, price: 139 }] });

// Order confirmation page
emailit("purchase", { id: "1001", total: 125, currency: "EUR",
  items: [{ product_id: "1234", quantity: 1, price: 120 }], coupon_codes: ["WLC-8K2M4P"] });
```

| Befehl | Erfasst |
| --- | --- |
| `product` | Einen Produktaufruf. Ein Produkt, das noch nicht in Ihrem Katalog ist, wird aus diesen Feldern hinzugefügt; Produkte, die Sie per API senden, werden nicht geändert. |
| `cart` | Den gesamten aktuellen Warenkorb, der die vorherige Version ersetzt. Ohne `id` wird der Warenkorb des Besuchers unter einer eigenen ID erfasst. Senden Sie eine leere Liste `items`, wenn der Warenkorb geleert wird. |
| `purchase` | Eine Bestellung, mit denselben Feldern wie die [Bestell-API](/de/docs/api-reference/orders/create/). Der Befehl konvertiert außerdem den Warenkorb des Besuchers. Senden Sie Bestellungen besser aus Ihrem Backend: Werbeblocker können Aufrufe aus dem Browser stoppen. Wenn Sie beides tun, verwenden Sie dieselbe Bestell-`id`, damit die Bestellung nicht doppelt gezählt wird. Das Skript ändert nie eine Bestellung, die Sie aus Ihrem Backend gesendet haben, erstellt nie einen Kontakt und meldet nie einen an. |
| `page` | Einen Seitenaufruf. Wird mit `data-autotrack="pages"` auf jeder Seite gesendet. |

### Besucher identifizieren

Aktivität zählt für einen Kontakt, sobald das Skript weiß, wer der Besucher ist:

- **Über einen E-Mail-Link.** Wenn ein Kontakt in einer Kampagnen- oder Automatisierungs-E-Mail auf einen Link klickt, der zu Ihrer Website führt, trägt der Link einen signierten Parameter `_eit`. Das Skript speichert ihn und entfernt ihn aus der Adressleiste. Links erhalten ihn, wenn das Klick-Tracking aktiviert ist und der Link zu einem erlaubten Ursprung (**Allowed origins**) eines Tracking-Schlüssels führt oder, bei Schlüsseln ohne erlaubte Ursprünge, zu Ihrer Versanddomain.
- **Wenn sich Besucher in Ihrem Shop anmelden oder zur Kasse gehen,** rufen Sie `identify` mit ihrer E-Mail-Adresse oder Kontakt-ID auf:

```js
emailit("identify", { email: "jane@example.com" });
```

- **Wenn sie sich aus Ihrem Shop abmelden,** rufen Sie `emailit("reset")` auf, damit dieser Browser sie vergisst.

Produktaufrufe und Warenkörbe aus der Zeit, bevor der Besucher identifiziert wurde, gehen auf den Kontakt über. Das Skript erfasst außerdem die Zeitzone des Browsers, die der Versand zur [Ortszeit des Empfängers](/de/docs/campaigns/sending-options/#recipients-local-time) nutzt, und wann der Kontakt zuletzt auf Ihrer Website aktiv war.

`emailit("debug", true)` protokolliert in der Browserkonsole, was das Skript sendet.

### Wo die Aktivität erscheint

Shop-Aktivität geht in dasselbe Event-Log wie Ihre anderen Events. Produktaufrufe werden zu Events vom Typ [`product.viewed`](/de/docs/webhooks/events/product/viewed/), neue oder geänderte Warenkörbe zu [`cart.updated`](/de/docs/webhooks/events/cart/updated/) und Käufe zu [`order.placed`](/de/docs/webhooks/events/order/placed/). Sie sehen sie unter **Email API → Events** und in der Aktivität des Kontakts, und Webhooks können sie abonnieren. `product.viewed` und `cart.updated` gehören nicht zu **All events**, abonnieren Sie sie daher mit ihrem Namen. Siehe [Commerce-Events](/de/docs/commerce/#events).

## Ergebnis prüfen

- **Email Marketing → Commerce** zeigt Ihre Produkte und Bestellungen, und **Carts** zeigt Warenkörbe aus dem Skript.
- **Email API → Events** listet Events vom Typ `product.viewed`, `cart.updated` und `order.placed` auf, während Besucher stöbern und kaufen.
- Öffnen Sie einen Kontakt, der bestellt hat: Die Karte **Purchases** zeigt seine Bestellungen, Gesamtausgaben und zuletzt angesehenen Produkte.
- Nach einer Kampagne erscheinen die ihr zugeordneten Bestellungen im Tab **Revenue**.

## Siehe auch

  - [Commerce](/de/docs/commerce/): Zuordnung, Einstellungen und die Commerce-Seiten.
  - [Bestell-API](/de/docs/api-reference/orders/create/): Alle Felder einer Bestellung.

---
Quelle: https://emailit.com/de/docs/commerce/connect-your-shop/
