# Commerce API

> Commerce-Einstellungen, die Umsatzübersicht und das Kaufprofil eines Kontakts.

Basis-URL: `https://api.emailit.com/v2`. Authentifizieren Sie sich mit `Authorization: Bearer <API key>`.

## Commerce-Einstellungen abrufen — GET /commerce/settings

> Rufen Sie die Währung des Workspaces, die Zuordnungsfenster und die Wartezeit bis zum Abbruch eines Warenkorbs ab. Alpha: nur für das Emailit-Team zugänglich.

# Commerce-Einstellungen abrufen

Ruft die Commerce-Einstellungen des Workspaces ab. Ein Workspace, der sie nie geändert hat, erhält die Standardwerte. Erfordert einen API-Schlüssel mit dem Scope `full`.

> **Commerce ist in der Alpha:** Commerce steht nur dem Emailit-Team offen, solange wir es testen. Andere Anfragen geben `403` mit `error: "commerce_alpha"` zurück. API-Schlüssel funktionieren nur in Workspaces, die dem Emailit-Team gehören. Siehe [Wer Commerce nutzen kann](/de/docs/commerce/#who-can-use-commerce).

`GET /commerce/settings`

## Das Einstellungs-Objekt

- `object` (string): Immer `commerce_settings`.

- `currency` (string): Dreistelliger Code nach ISO 4217, verwendet für Bestellungen und Warenkörbe, die keine Währung angeben. Standardwert: `USD`.

- `attribution_click_days` (integer): Eine neue Bestellung wird der Kampagnen- oder Automatisierungs-E-Mail zugeordnet, die der Käufer zuletzt innerhalb dieser Anzahl von Tagen vor der Bestellung geklickt hat. Standardwert: `5`.

- `attribution_open_days` (integer): Ohne Klick wird die Bestellung der E-Mail zugeordnet, die der Käufer zuletzt innerhalb dieser Anzahl von Tagen geöffnet hat. Bei `0` werden nur Klicks gewertet. Standardwert: `1`.

- `cart_abandon_minutes` (integer): Der Warenkorb eines Kontakts mit Artikeln, der so viele Minuten lang nicht aktualisiert wird, gilt als abgebrochen und löst `cart.abandoned` aus. Standardwert: `60`.

**Anfrage** `GET /commerce/settings`

**cURL**

```bash
curl https://api.emailit.com/v2/commerce/settings \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "object": "commerce_settings",
  "currency": "USD",
  "attribution_click_days": 5,
  "attribution_open_days": 1,
  "cart_abandon_minutes": 60
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/commerce/get-settings/

## Commerce-Einstellungen aktualisieren — POST /commerce/settings

> Ändern Sie die Währung des Workspaces, die Zuordnungsfenster oder die Wartezeit bis zum Abbruch eines Warenkorbs. Alpha: nur für das Emailit-Team zugänglich.

# Commerce-Einstellungen aktualisieren

Ändert die Commerce-Einstellungen des Workspaces. Nur die Felder, die Sie senden, ändern sich. Die Zuordnung wird festgelegt, wenn eine Bestellung zum ersten Mal gespeichert wird; neue Fenster gelten also für Bestellungen, die danach gespeichert werden. Erfordert einen API-Schlüssel mit dem Scope `full`.

> **Commerce ist in der Alpha:** Commerce steht nur dem Emailit-Team offen, solange wir es testen. Andere Anfragen geben `403` mit `error: "commerce_alpha"` zurück. API-Schlüssel funktionieren nur in Workspaces, die dem Emailit-Team gehören. Siehe [Wer Commerce nutzen kann](/de/docs/commerce/#who-can-use-commerce).

`POST /commerce/settings`

## Anfrage-Body

- `currency` (string): Dreistelliger Code nach ISO 4217, etwa `EUR`. Wird für Bestellungen und Warenkörbe verwendet, die keine Währung angeben.

- `attribution_click_days` (integer): Klickfenster in Tagen, von 1 bis 30.

- `attribution_open_days` (integer): Öffnungsfenster in Tagen, von 0 bis 30. Bei `0` werden nur Klicks gewertet.

- `cart_abandon_minutes` (integer): Minuten ohne Aktualisierung, nach denen der Warenkorb eines Kontakts als abgebrochen gilt, von 15 bis 10.080 (7 Tage).

## Rückgabe

`200 OK` mit allen [Einstellungen](/de/docs/api-reference/commerce/get-settings/). Gibt `422` zurück, wenn ein Wert außerhalb des zulässigen Bereichs liegt.
**Anfrage** `POST /commerce/settings`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/commerce/settings \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "currency": "EUR", "attribution_open_days": 0, "cart_abandon_minutes": 120 }'
```

**200**

```json
{
  "object": "commerce_settings",
  "currency": "EUR",
  "attribution_click_days": 5,
  "attribution_open_days": 0,
  "cart_abandon_minutes": 120
}
```

**422**

```json
{
  "message": "Validation failed. cart_abandon_minutes: Must be a whole number from 15 to 10080.",
  "errors": {
    "cart_abandon_minutes": [
      "Must be a whole number from 15 to 10080."
    ]
  }
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/commerce/update-settings/

## Commerce-Übersicht abrufen — GET /commerce/overview

> Umsatz, Umsatz aus E-Mails, Kunden, Warenkörbe, eine Tagesreihe, Top-Produkte und Top-Kampagnen für einen Zeitraum. Alpha: nur für das Emailit-Team zugänglich.

# Commerce-Übersicht abrufen

Ruft die Zahlen hinter **Email Marketing → Commerce** für einen Zeitraum ab. Erfordert einen API-Schlüssel mit dem Scope `full`.

> **Commerce ist in der Alpha:** Commerce steht nur dem Emailit-Team offen, solange wir es testen. Andere Anfragen geben `403` mit `error: "commerce_alpha"` zurück. API-Schlüssel funktionieren nur in Workspaces, die dem Emailit-Team gehören. Siehe [Wer Commerce nutzen kann](/de/docs/commerce/#who-can-use-commerce).

Der Umsatz ist die Bestellsumme abzüglich Rückerstattungen, und stornierte Bestellungen zählen nicht. Beträge werden nach Währung gruppiert und nie umgerechnet, daher sind die meisten Felder Listen mit einem Eintrag pro Währung.

`GET /commerce/overview`

## Query-Parameter

- `from` (string): Beginn des Zeitraums, als Datum oder Datum mit Uhrzeit im Format ISO 8601. Standardwert: 30 Tage vor `to`.

- `to` (string): Ende des Zeitraums, nicht eingeschlossen. Standardwert: jetzt. Der Zeitraum kann bis zu 366 Tage lang sein.

## Rückgabe

- `object` (string): Immer `commerce_overview`.

- `from, to` (string): Der verwendete Zeitraum, im Format ISO 8601 in UTC.

- `totals` (object[]): Alle im Zeitraum aufgegebenen Bestellungen, pro Währung, die mit dem höchsten Umsatz zuerst: `currency`, `orders`, `revenue`, `buyers` und `average_order_value`.

- `attributed` (object[]): Einer E-Mail zugeordnete Bestellungen, pro `channel` (`campaigns` oder `automations`) und `currency`, mit `orders`, `revenue` und `buyers`.

- `customers` (object): - `new`: Kontakte, deren erste Bestellung im Zeitraum liegt. - `returning`: Kontakte, deren erste Bestellung vor `from` lag und die seit `from` erneut bestellt haben.

- `carts` (object): Warenkörbe, die zuletzt im Zeitraum aktualisiert wurden: `active`, `abandoned` und `recovered` (nach dem Abbruch konvertiert). `abandoned_by_currency` listet für die abgebrochenen Warenkörbe die Anzahl `carts` und den Gesamtwert `value` pro `currency` auf, der höchste Wert zuerst, und `abandoned_value` und `abandoned_currency` wiederholen den ersten Eintrag.

- `series` (object[]): Ein Eintrag pro Tag und Währung mit Bestellungen: `date` (`YYYY-MM-DD`), `currency`, `orders`, `revenue` und `attributed_revenue`.

- `top_products` (object[]): Bis zu 10 Produkte nach Umsatz der Positionen: `product_id` (die Produkt-ID in Ihrem Shop), `title`, `image_url`, `currency`, `quantity` und `revenue`.

- `top_campaigns` (object[]): Bis zu 5 Kampagnen nach zugeordnetem Umsatz: `campaign_id`, `name`, `currency`, `orders` und `revenue`.

Gibt `422` zurück, wenn `from` oder `to` kein gültiges Datum ist, `from` nicht vor `to` liegt oder der Zeitraum länger als 366 Tage ist.
**Anfrage** `GET /commerce/overview`

**cURL**

```bash
curl "https://api.emailit.com/v2/commerce/overview?from=2026-09-10&to=2026-10-10" \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "object": "commerce_overview",
  "from": "2026-09-10T00:00:00.000Z",
  "to": "2026-10-10T00:00:00.000Z",
  "totals": [
    {
      "currency": "USD",
      "orders": 1284,
      "revenue": 108422.6,
      "buyers": 1007,
      "average_order_value": 84.44
    }
  ],
  "attributed": [
    {
      "channel": "campaigns",
      "currency": "USD",
      "orders": 312,
      "revenue": 27140.3,
      "buyers": 288
    },
    {
      "channel": "automations",
      "currency": "USD",
      "orders": 158,
      "revenue": 13981.2,
      "buyers": 149
    }
  ],
  "customers": {
    "new": 604,
    "returning": 403
  },
  "carts": {
    "active": 37,
    "abandoned": 412,
    "recovered": 66,
    "abandoned_value": 35210.8,
    "abandoned_currency": "USD",
    "abandoned_by_currency": [
      { "currency": "USD", "carts": 412, "value": 35210.8 }
    ]
  },
  "series": [
    {
      "date": "2026-10-08",
      "currency": "USD",
      "orders": 51,
      "revenue": 4318.4,
      "attributed_revenue": 1702.9
    },
    {
      "date": "2026-10-09",
      "currency": "USD",
      "orders": 44,
      "revenue": 3720.15,
      "attributed_revenue": 1188.6
    }
  ],
  "top_products": [
    {
      "product_id": "8123456789",
      "title": "Trail running shoe",
      "image_url": "https://shop.example.com/images/trail-running-shoe.jpg",
      "currency": "USD",
      "quantity": 214,
      "revenue": 18190
    }
  ],
  "top_campaigns": [
    {
      "campaign_id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
      "name": "October newsletter",
      "currency": "USD",
      "orders": 214,
      "revenue": 18364.3
    }
  ]
}
```

**422**

```json
{
  "message": "Validation failed. from: Use an ISO from/to range of at most 366 days.",
  "errors": {
    "from": [
      "Use an ISO from/to range of at most 366 days."
    ]
  }
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/commerce/overview/

## Kaufprofil eines Kontakts abrufen — GET /contacts/{id}/commerce

> Rufen Sie die Kaufkennzahlen, das Abwanderungsrisiko, die letzten Bestellungen, den offenen Warenkorb und die zuletzt angesehenen Produkte eines Kontakts ab. Alpha: nur für das Emailit-Team zugänglich.

# Kaufprofil eines Kontakts abrufen

Ruft ab, was ein Kontakt gekauft und angesehen hat: die Kaufkennzahlen, die 10 letzten Bestellungen, den offenen Warenkorb und die zuletzt angesehenen Produkte. Die Weboberfläche zeigt dieselben Daten in der Karte **Purchases** auf der Seite des Kontakts. Erfordert einen API-Schlüssel mit dem Scope `full`.

> **Commerce ist in der Alpha:** Commerce steht nur dem Emailit-Team offen, solange wir es testen. Andere Anfragen geben `403` mit `error: "commerce_alpha"` zurück. API-Schlüssel funktionieren nur in Workspaces, die dem Emailit-Team gehören. Siehe [Wer Commerce nutzen kann](/de/docs/commerce/#who-can-use-commerce).

`GET /contacts/{id}/commerce`

## Pfadparameter

- `id` (string, erforderlich): Die Kontakt-ID (`con_...`) oder die E-Mail-Adresse des Kontakts. E-Mail-Adressen müssen Sie URL-kodieren.

## Rückgabe

- `object` (string): Immer `contact_commerce`.

- `contact_id` (string): Die Kontakt-ID (`con_...`).

- `metrics` (object): Kaufkennzahlen, die bei jedem Schreiben einer Bestellung neu berechnet werden. Sie zählen alle Bestellungen außer stornierten und ziehen Rückerstattungen ab. Hat der Kontakt in mehreren Währungen bestellt, zählen nur die Bestellungen in der Währung seiner letzten Bestellung. - `orders_count` (integer), `total_spent` (number), `average_order_value` (number), `currency` (string oder null). - `first_order_at`, `last_order_at` (string oder null). - `expected_next_order_at` (string oder null): die letzte Bestellung plus die durchschnittliche Zeit zwischen den Bestellungen des Kontakts. Ab der zweiten Bestellung gesetzt. - `churn_risk` (string oder null): `low`, `medium` oder `high`. Vergleicht die Zeit seit der letzten Bestellung mit dem durchschnittlichen Abstand zwischen den Bestellungen des Kontakts (mindestens 14 Tage) oder nach einer einzigen Bestellung mit 90 Tagen. Innerhalb des Abstands ist der Wert `low`, bis zum doppelten Abstand `medium`, danach `high`. `null` ohne Bestellungen. - `last_active_at` (string oder null): die letzte Aktivität auf Ihrer Website, die das Tracking-Skript gemeldet hat. - `timezone` (string oder null): die IANA-Zeitzone, die der Browser des Kontakts gemeldet hat. Wird beim [Versand zur Ortszeit](/de/docs/api-reference/campaigns/send/) verwendet.

- `orders` (object[]): Die 10 zuletzt aufgegebenen [Bestellungen](/de/docs/api-reference/orders/get/) des Kontakts.

- `orders_total` (integer): Anzahl der Bestellungen des Kontakts, einschließlich stornierter. Um sie seitenweise abzurufen, verwenden Sie [Bestellungen auflisten](/de/docs/api-reference/orders/list/) mit `contact_id`.

- `open_cart` (object | null): Der zuletzt aktualisierte [Warenkorb](/de/docs/api-reference/carts/get/) des Kontakts, der `active` oder `abandoned` ist und Artikel enthält, oder `null`.

- `recently_viewed` (object[]): Bis zu 12 Produkte, die der Kontakt in den letzten 90 Tagen angesehen hat, die neuesten zuerst, wie vom Tracking-Skript gemeldet. Archivierte und ausverkaufte Produkte werden ausgelassen. Jedes hat `id` (die Produkt-ID in Ihrem Shop), `title`, `url`, `image_url`, `price`, `price_formatted`, `currency` und `on_sale`.

Gibt `404` zurück, wenn kein Kontakt zu `id` passt.
**Anfrage** `GET /contacts/{id}/commerce`

**cURL**

```bash
curl https://api.emailit.com/v2/contacts/con_3EwrXnu9OaQWlfI1AyPUUEoYjQs/commerce \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "object": "contact_commerce",
  "contact_id": "con_3EwrXnu9OaQWlfI1AyPUUEoYjQs",
  "metrics": {
    "orders_count": 3,
    "total_spent": 276.3,
    "average_order_value": 92.1,
    "currency": "USD",
    "first_order_at": "2026-03-14T10:12:00.000Z",
    "last_order_at": "2026-10-08T14:32:10.000Z",
    "expected_next_order_at": "2027-01-20T16:42:15.000Z",
    "churn_risk": "low",
    "last_active_at": "2026-10-09T18:03:27.000Z",
    "timezone": "Europe/London"
  },
  "orders": [
    {
      "object": "order",
      "id": "ord_3aMEK4No62Zw8S1fcHNznAnnbfp",
      "external_id": "1042",
      "contact_id": "con_3EwrXnu9OaQWlfI1AyPUUEoYjQs",
      "email": "ada@example.com",
      "status": "paid",
      "currency": "USD",
      "subtotal": 89,
      "discount": null,
      "shipping": 5,
      "tax": 0,
      "total": 94,
      "refunded_amount": 0,
      "coupon_codes": [],
      "cart_id": null,
      "source": "api",
      "placed_at": "2026-10-08T14:32:10.000Z",
      "paid_at": "2026-10-08T14:32:11.204Z",
      "fulfilled_at": null,
      "canceled_at": null,
      "refunded_at": null,
      "attribution": null,
      "items": [
        {
          "product_id": "8123456789",
          "variant_id": null,
          "sku": "TRS-BLU-42",
          "title": "Trail running shoe",
          "quantity": 1,
          "unit_price": 89,
          "total": 89,
          "categories": [
            "Shoes",
            "Running"
          ],
          "url": "https://shop.example.com/products/trail-running-shoe",
          "image_url": "https://shop.example.com/images/trail-running-shoe.jpg"
        }
      ],
      "metadata": {},
      "created_at": "2026-10-08T14:32:11.204Z",
      "updated_at": "2026-10-08T14:32:11.204Z"
    }
  ],
  "orders_total": 3,
  "open_cart": null,
  "recently_viewed": [
    {
      "id": "8123456790",
      "title": "Merino running socks",
      "url": "https://shop.example.com/products/merino-running-socks",
      "image_url": "https://shop.example.com/images/merino-running-socks.jpg",
      "price": 9,
      "price_formatted": "$9.00",
      "currency": "USD",
      "on_sale": false
    }
  ]
}
```

**404**

```json
{
  "error": "Contact not found",
  "message": "Contact not found."
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/commerce/contact-commerce/
