# Připojení obchodu

> Posílejte produkty a objednávky z backendu svého obchodu a přidejte měřicí skript Emailitu, který zaznamenává zobrazení produktů, košíky a nákupy a rozpozná návštěvníky, kteří přicházejí z vašich e-mailů. Alfaverze: otevřená jen týmu Emailitu.

Obchod posílá Emailitu dva druhy dat: katalog a objednávky ze svého backendu přes API a to, co návštěvníci dělají na webu, přes měřicí skript [sledování událostí](/cs/docs/events/). Pro úplný obraz použijte obojí: API je spolehlivý záznam objednávek a skript přidává zobrazení produktů, košíky a návštěvníky, kteří přicházejí z vašich e-mailů.

> **E-commerce je v alfaverzi:** Dokud E-commerce testujeme, je otevřené jen týmu Emailitu. API a měřicí skript fungují jen ve workspace, které vlastní tým Emailitu. Viz [Kdo může E-commerce používat](/cs/docs/commerce/#who-can-use-commerce).

## Než začnete

- [API klíč](/cs/docs/developers/api-keys/) pro volání z backendu. Produkty, objednávky a košíky může posílat API klíč s oprávněním **Events Only**, stejný klíč, který posílá [události z vašeho backendu](/cs/docs/events/send-events/). Nemůže nic načítat, takže jeho odpovědi obsahují jen `object`, `id` a `external_id`. Pokud chcete data také načítat, spravovat kupony nebo měnit nastavení, použijte klíč s oprávněním **Full Access**.
- Pro měřicí skript oprávnění přidat skript na stránky vašeho obchodu.

## Posílejte data z backendu

### Produkty

Katalog pošlete endpointem [Hromadné vytvoření nebo úprava produktů](/cs/docs/api-reference/products/batch/) a znovu pokaždé, když se produkty změní. Každý produkt je identifikovaný ID produktu ve vašem obchodě, takže když ho pošlete znovu, aktualizuje se.

```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
    }]
  }'
```

Feedy produktů v e-mailech vynechávají archivované produkty a produkty se skladovou zásobou 0, takže `status` a `inventory_quantity` udržujte aktuální.

### Objednávky

Když zákazník vytvoří objednávku, pošlete ji endpointem [Vytvoření nebo úprava objednávky](/cs/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` je číslo objednávky ve vašem obchodě. Když pošlete stejné `id` znovu, objednávka se aktualizuje a nepřidá se další.
- Emailit připíše objednávku e-mailu, na který kupující naposledy klikl, nebo který naposledy otevřel. Viz [Jak se objednávky připisují](/cs/docs/commerce/#how-orders-are-credited-to-emails).
- Kupující se stane kontaktem, pokud jím ještě není. Pokud ho chcete také přihlásit k odběru, například když v pokladně zaškrtl políčko pro odběr newsletteru, přidejte `"accepts_marketing": true` a `audience_id`. `"create_contact": false` vytvoření kontaktu přeskočí. Příkaz `purchase` měřicího skriptu kontakt nikdy nevytvoří ani nepřihlásí k odběru.
- `cart_id` označí daný košík jako převedený na objednávku.

Když je objednávka zaplacená, vyřízená nebo zrušená, nebo když za ni vracíte peníze, pošlete změnu endpointem [Úprava objednávky](/cs/docs/api-reference/orders/update/), nebo objednávku pošlete znovu s novým `status`. Zrušené objednávky se do tržeb nezapočítávají a vrácené peníze se odečítají.

### Starší objednávky

Historii objednávek naimportujte endpointem [Hromadný import objednávek](/cs/docs/api-reference/orders/batch/), až 1 000 objednávek na jeden požadavek. Importy jsou ve výchozím stavu historické: doplní historii nákupů, metriky a doporučení, ale nepřipisují se e-mailům a nespouštějí automatizace.

## Měřicí skript

Měřicí skript zaznamenává, co návštěvníci dělají na vašem webu: zobrazení produktů, košík, nákupy a návštěvy. Rozpozná také návštěvníky, kteří přicházejí z vašich e-mailů, takže jejich aktivita patří k jejich kontaktu.

### Přidejte skript

1. **Vytvořte klíč pro měření.** Na stránce **Email API → Events** otevřete kartu **Tracking** a vyberte **Create tracking key**. Do pole **Allowed origins** zadejte domény svého obchodu, například `shop.example.com` nebo `*.example.com`. Pokud pole necháte prázdné, klíč přijme jakýkoli web.

2. **Přidejte úryvek na každou stránku,** před `</head>`. Karta **Tracking** ho zobrazuje s vyplněným klíčem:

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

   Klíče pro měření jsou veřejné: mohou jen odesílat události, nikdy číst data. Pokud už je na stránce skript [formulářů Emailitu](/cs/docs/forms/install/), ponechte oba.

Pokud chcete zaznamenávat i zobrazení stránky na každé stránce, přidejte do tagu skriptu `data-autotrack="pages"`. Zobrazení stránek aktualizují, kdy byl kontakt naposledy aktivní na vašem webu, a jeho časové pásmo; jako události se neukládají.

### Zaznamenávejte aktivitu v obchodě

Volejte tyto příkazy tam, kde k aktivitě dochází:

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

| Příkaz | Zaznamená |
| --- | --- |
| `product` | Zobrazení produktu. Produkt, který ve vašem katalogu ještě není, se přidá z těchto polí; produkty, které posíláte přes API, se nezmění. |
| `cart` | Celý aktuální košík, který nahradí předchozí verzi. Bez `id` se košík návštěvníka sleduje pod vlastním ID. Když se košík vyprázdní, pošlete prázdný seznam `items`. |
| `purchase` | Objednávku se stejnými poli jako [API pro objednávky](/cs/docs/api-reference/orders/create/). Zároveň převede košík návštěvníka na objednávku. Objednávky raději posílejte z backendu: blokovače reklam mohou volání z prohlížeče zastavit. Pokud děláte obojí, použijte stejné `id` objednávky, aby se objednávka nezapočítala dvakrát. Skript nikdy nezmění objednávku, kterou jste poslali z backendu, a nikdy nevytvoří kontakt ani ho nepřihlásí k odběru. |
| `page` | Zobrazení stránky. S `data-autotrack="pages"` se odesílá na každé stránce. |

### Identifikujte návštěvníky

Aktivita se započítá kontaktu, jakmile skript ví, kdo návštěvník je:

- **Z odkazu v e-mailu.** Když kontakt klikne v e-mailu z kampaně nebo automatizace na odkaz, který vede na váš web, odkaz nese podepsaný parametr `_eit`. Skript ho uloží a odstraní z adresního řádku. Odkazy ho dostanou, když je zapnuté měření prokliků a odkaz vede na povolenou doménu některého klíče pro měření, nebo u klíčů bez povolených domén na vaši odesílací doménu.
- **Když se přihlásí nebo dokončí objednávku,** zavolejte `identify` s jeho e-mailovou adresou nebo ID kontaktu:

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

- **Když se odhlásí,** zavolejte `emailit("reset")`, aby ho skript v tomto prohlížeči zapomněl.

Zobrazení produktů a košíky z doby před identifikací návštěvníka se přesunou ke kontaktu. Skript také zaznamená časové pásmo prohlížeče, které používá odesílání v [místním čase příjemce](/cs/docs/campaigns/sending-options/#recipients-local-time), a kdy byl kontakt naposledy aktivní na vašem webu.

`emailit("debug", true)` vypisuje do konzole prohlížeče, co skript odesílá.

### Kde se aktivita zobrazí

Aktivita v obchodě se ukládá do stejného logu událostí jako vaše ostatní události. Ze zobrazení produktů se stanou události [`product.viewed`](/cs/docs/webhooks/events/product/viewed/), z nových nebo změněných košíků [`cart.updated`](/cs/docs/webhooks/events/cart/updated/) a z nákupů [`order.placed`](/cs/docs/webhooks/events/order/placed/). Uvidíte je na stránce **Email API → Events** a v aktivitě kontaktu a webhooky je mohou odebírat. `product.viewed` a `cart.updated` nejsou součástí **All events**, takže je odebírejte podle názvu. Viz [Události e-commerce](/cs/docs/commerce/#events).

## Ověřte, že vše funguje

- **Email Marketing → Commerce** ukazuje vaše produkty a objednávky a karta **Carts** ukazuje košíky ze skriptu.
- **Email API → Events** vypisuje události `product.viewed`, `cart.updated` a `order.placed`, jak návštěvníci prohlížejí a nakupují.
- Otevřete kontakt, který objednal: panel **Purchases** ukazuje jeho objednávky, celkovou útratu a nedávno zobrazené produkty.
- Po kampani se objednávky, které jí byly připsány, zobrazují na její kartě **Revenue**.

## Související

  - [E-commerce](/cs/docs/commerce/): Přiřazení tržeb, nastavení a stránky sekce Commerce.
  - [API pro objednávky](/cs/docs/api-reference/orders/create/): Všechna pole objednávky.

---
Zdroj: https://emailit.com/cs/docs/commerce/connect-your-shop/
