---
title: "Przewodnik po integracji z Shopify | Tajo"
description: "Jak Tajo łączy sklep Shopify z Brevo: synchronizacja webhooków przez aplikację Shopify, reguły synchronizacji, które buduje agent, a zatwierdza człowiek, oraz narzędzia Shopify przez MCP."
url: https://tajo.io/pl/docs/ecommerce-platforms/shopify/
markdown: https://tajo.io/pl/docs/ecommerce-platforms/shopify.md
lang: pl-PL
author: "Set Noa"
author_url: https://tajo.io/pl/set-noa/
robots: noindex
---

Poproś o wcześniejszy dostęp

Podaj imię i firmowy adres e-mail. Wyślemy Ci link potwierdzający prośbę o dostęp do Tajo.

# Przewodnik po integracji z Shopify

[Set Noa](https://tajo.io/pl/set-noa/)

Tajo łączy Shopify z Brevo w dwóch miejscach. Aplikacja Shopify Tajo zamienia webhooki Shopify w zapisy w Brevo, gdy tylko nadejdą. Reguły synchronizacji, które buduje agent, a zatwierdza człowiek, przenoszą rekordy do Brevo według harmonogramu. Ta strona opisuje oba mechanizmy, a potem narzędzia Shopify, które Tajo udostępnia przez MCP.

## Wymagania wstępne

Zanim zaczniesz integrację, upewnij się, że masz:

- **Sklep Shopify** w dowolnym planie (Basic, Shopify, Advanced lub Plus)
- **Konto Tajo** (Tajo jest we wczesnym dostępie)
- **Konto Brevo**, czyli miejsce docelowe synchronizacji
- **Dostęp administratora** do Twojego sklepu Shopify

## Krok 1: Połącz swój sklep Shopify

Tajo jest we wczesnym dostępie. Aplikacji Shopify nie ma w Shopify App Store i nie ma linku do samodzielnej instalacji. [Skontaktuj się z zespołem](https://tajo.io/pl/contact), żeby wszystko skonfigurować. Gdy Twój obszar roboczy Tajo będzie gotowy:

1. W Tajo otwórz **Connections**.
2. Wpisz domenę myshopify.com swojego sklepu i wybierz **Connect Shopify**. Shopify pokaże zakresy uprawnień, o które prosi Tajo, i po ich zatwierdzeniu przekieruje Cię z powrotem do Tajo.
3. Sprawdź, do czego służy każdy zakres i co Tajo zapisuje z powrotem w Shopify, w artykule [Wyjaśnienie uprawnień Shopify](https://tajo.io/pl/resources/help/integrations/shopify-permissions-explained/).

## Krok 2: Co aplikacja Shopify Tajo wysyła do Brevo

Aplikacja weryfikuje każdy webhook Shopify, zapisuje go, umieszcza w kolejce i od razu przetwarza. Tematy klientów i produktów najpierw czekają około czterech sekund. Nie ma okna wsadowego. Nieudane zadanie jest ponawiane z narastającym odstępem (backoff).

### Tematy webhooków

Aplikacja Shopify Tajo subskrybuje te tematy webhooków Shopify:

| Tematy webhooków | Cel |
| --- | --- |
| `customers/create`, `customers/update`, `customers/delete` | Utrzymywanie aktualnych kontaktów w Brevo |
| `orders/create`, `orders/updated`, `orders/fulfilled`, `orders/cancelled` | Zdarzenia zamówień i metryki zamówień dla Brevo |
| `orders/paid`, `refunds/create` | Naliczanie i odejmowanie punktów lojalnościowych |
| `checkouts/create`, `checkouts/update` | Odzyskiwanie porzuconych checkoutów w Brevo |
| `products/create`, `products/update`, `products/delete` | Utrzymywanie aktualnego katalogu produktów w Brevo |
| `inventory_levels/update` | Utrzymywanie aktualnych stanów magazynowych produktów w Brevo |
| `collections/create`, `collections/update`, `collections/delete` | Utrzymywanie aktualnych kolekcji |
| `companies/*`, `company_contacts/*`, `company_locations/*` (create, update, delete) | Synchronizacja firm B2B |
| `app/uninstalled`, `app/scopes_update`, `app_subscriptions/update` | Cykl życia aplikacji |

Obsługiwane są także obowiązkowe webhooki prywatności Shopify (żądanie danych klienta, usunięcie danych klienta, usunięcie danych sklepu). Aplikacja nie subskrybuje `carts/*`. Porzucone koszyki pochodzą z tematów `checkouts/*`.

Co trafia do Brevo:

| Zdarzenie Shopify | W Brevo |
| --- | --- |
| Klient utworzony lub zaktualizowany | Kontakt zostaje utworzony lub zaktualizowany z imieniem i nazwiskiem, adresem email i zgodą marketingową. W płatnych planach aplikacja dodaje tagi, liczbę zamówień, wydaną kwotę i ostatnie zamówienie. |
| Klient usunięty | Kontakt zostaje wypisany, a nie usunięty |
| Zamówienie utworzone, zaktualizowane, opłacone, zrealizowane lub anulowane | Zamówienie przez API zamówień Brevo oraz zdarzenia `order_paid`, `order_completed` i `order_cancelled` |
| Zwrot utworzony | Zdarzenie `order_refunded`. Jeśli prowadzisz program lojalnościowy Brevo przez Tajo, punkty są odejmowane proporcjonalnie. |
| Zamówienie opłacone, z programem lojalnościowym Brevo | Punkty przyznane według Twojej stawki punktów za dolara |
| Checkout utworzony lub zaktualizowany, z adresem email i produktami | Zdarzenia `cart_updated` i `cart_abandoned`. O tym, kiedy wysłać wiadomość, decyduje Twoja automatyzacja w Brevo. |
| Produkt lub kolekcja utworzone, zaktualizowane lub usunięte | Katalog produktów i kategorie w Brevo |
| Zaktualizowany stan magazynowy | Stan produktu w katalogu Brevo. Gdy wariant przechodzi z 0 do wartości powyżej 0, każdy kupujący, który poprosił o powiadomienie, otrzymuje zdarzenie `back_in_stock`, raz na każde uzupełnienie stanu. |

Aplikacja nie dodaje przycisku „Powiadom mnie” do Twojego motywu. Prośba o powiadomienie o dostępności musi pochodzić z Twojego sklepu, na przykład z przycisku, który sam dodasz.

### Istniejące dane

Przy instalacji aplikacja importuje Twoich istniejących klientów jako kontakty Brevo. Pełną synchronizację historyczną uruchamiasz ze strony synchronizacji w aplikacji. W płatnych planach importuje ona również produkty, kolekcje, firmy i zamówienia.

## Krok 3: Zbuduj regułę synchronizacji z agentem

Reguła synchronizacji to deklaratywna definicja jednej synchronizacji: zasób źródłowy, akcja w Brevo, mapowanie pól i filtr. Nie piszesz jej ręcznie. Opisujesz ją, agent ją buduje, a człowiek ją zatwierdza.

1. W Tajo otwórz **Agents** i poproś **Brevo Integration Architect** o synchronizację zwykłym językiem. Na przykład: „Wysyłaj do Brevo jako kontakty tych klientów Shopify, którzy zgodzili się na email marketing”.
2. Agent sprawdza konektor Shopify. Jego próbka zwraca nazwy i typy pól, nigdy wartości dotyczące klientów.
3. Proponuje regułę z mapowaniem pól i filtrem, następnie waliduje mapowanie pól względem akcji Brevo i wykonuje próbne uruchomienie (dry run) szkicu. Żaden z tych kroków nie odczytuje rekordów klientów.
4. Zapisuje regułę jako szkic. Możesz też zacząć od szablonu w **Connections > Syncs and mappings > New sync from template**.
5. **Request publish approval** uruchamia podgląd na Twoim sklepie. Odczytuje najwyżej 10 rekordów, niczego nie zapisuje w Brevo i nie przesuwa kursora. Zapisuje wyłącznie liczby: rekordy pobrane, kwalifikujące się, zmapowane i odrzucone przez filtr, a także błędy mapowania. Jeśli podgląd się nie powiedzie, prośba o zatwierdzenie nie powstaje.
6. Człowiek zatwierdza prośbę na stronie **Approvals**, podając pisemne uzasadnienie. Zatwierdzenie jest powiązane ze skrótem SHA-256 reguły i wygasa po 30 minutach. Na stronie reguły pojawia się wtedy **Publish approved version**.

Edycja opublikowanej reguły przywraca ją do stanu szkicu. Zanim znów zostanie uruchomiona, ponownie przechodzi przez podgląd i zatwierdzenie.

### Prawdziwa reguła

Tak wygląda szablon **Shopify customers -> Brevo contacts** w definicji Tajo:

```ts
sourceSlug: "shopify",
sourceResource: "customers",
destinationSlug: "brevo",
destinationAction: "upsert_contact",
fieldMap: [
  { source: "email", destination: "email", transform: "toLowerCase" },
  { source: "first_name", destination: "attributes.FIRSTNAME" },
  { source: "last_name", destination: "attributes.LASTNAME" },
  { source: "phone", destination: "attributes.PHONE" },
  { source: "total_spent", destination: "attributes.TOTAL_SPENT", transform: "toNumber" },
  { source: "orders_count", destination: "attributes.ORDERS_COUNT", transform: "toNumber" },
  { source: "tajo_email_marketing_consent", destination: "attributes.OPT_IN", transform: "toBoolean" },
  { source: "tags", destination: "attributes.SHOPIFY_TAGS" },
  { source: "id", destination: "attributes.SHOPIFY_ID", transform: "toString" },
  { source: "created_at", destination: "attributes.SHOPIFY_CREATED_AT" },
  { source: "updated_at", destination: "attributes.SHOPIFY_UPDATED_AT" },
],
filterExpression:
  "($json.tajo_email_marketing_consent === true) && ($json.tajo_email_suppressed === false)",
```

Filtr jest sprawdzeniem zgody. Tajo wyprowadza obie wartości z pola Shopify `email_marketing_consent.state` lub ze starszej flagi `accepts_marketing`. Reguły, która zapisuje kontakty w Brevo, nie da się bez niego opublikować. Drugi szablon Shopify, **Shopify orders → Brevo orders**, rejestruje w Brevo zamówienia kupujących, którzy zgodzili się na marketing przy składaniu zamówienia.

### Kiedy reguła działa

- Reguły synchronizacji kontaktów działają domyślnie co 15 minut. Każde uruchomienie zaczyna się od kursora reguły.
- Strona aktywnej reguły ma przycisk **Test run (1 batch)**.
- Aktywna, opublikowana reguła **Shopify orders → Brevo orders** również działa co 15 minut. Jej pierwsze zaplanowane uruchomienie zaczyna się kilka minut przed tym momentem i nie wysyła starszych zamówień. Każde kolejne uruchomienie wysyła zamówienia zaktualizowane od poprzedniego.
- Wcześniejsze zamówienia trafiają do Brevo tylko wtedy, gdy uruchomisz regułę samodzielnie: przyciskiem **Test run (1 batch)** albo prosząc agenta **Sync Operator** o jej uruchomienie.
- Reguła zamówień działa według harmonogramu tylko z filtrem zgody kupującego na marketing (opt-in) z szablonu. Reguła z edytowanym filtrem działa tylko wtedy, gdy uruchomisz ją samodzielnie.
- Po pięciu kolejnych nieudanych uruchomieniach reguła sama się wstrzymuje, a jej strona pokazuje ostatni błąd. Usuń przyczynę, a potem opublikuj regułę ponownie.

Każde uruchomienie widnieje w historii uruchomień reguły z liczbą rekordów odczytanych, zapisanych i nieudanych oraz czasem trwania.

## Co konektor Shopify odczytuje i zapisuje

Reguły synchronizacji zapisują tylko w miejscu docelowym, tutaj w Brevo. Nigdy nie zapisują niczego w Shopify.

Aplikacja Shopify Tajo prosi o 12 zakresów uprawnień i wykonuje w Shopify krótką listę zapisów, takich jak rezygnacje ze zgody i tagi lojalnościowe. Artykuł [Wyjaśnienie uprawnień Shopify](https://tajo.io/pl/resources/help/integrations/shopify-permissions-explained/) wymienia każdy zakres i każdy zapis wraz z tym, co go wywołuje.

Agenci i hosty MCP docierają do sklepu przez konektor Shopify:

| Odczyty | Zapisy |
| --- | --- |
| Szczegóły sklepu, klienci (lista i wyszukiwanie), zamówienia, produkty, metapola klientów, stany magazynowe, status eksportu zbiorczego | Metapola klientów i tagi klientów oraz rozpoczęcie eksportu zbiorczego. Każdy zapis jest przygotowywany jako propozycja i wykonywany dopiero po zatwierdzeniu. |

Konektor deklaruje też korektę stanów magazynowych. Wymaga ona zakresu `write_inventory`, o który aplikacja Shopify Tajo nie prosi.

## Krok 4: Korzystaj z narzędzi Shopify przez MCP

Tajo udostępnia konektor Shopify jako serwer MCP pod adresem `https://alto.tajo.io/mcp/connectors/shopify`. Dodaj go do Claude Code:

```bash
claude mcp add --transport http tajo-shopify https://alto.tajo.io/mcp/connectors/shopify
```

Host wykrywa serwer OAuth Tajo i otwiera logowanie do Tajo. Dostęp mają tylko konta z wczesnym dostępem. Serwer udostępnia 12 narzędzi:

| Narzędzie | Co robi |
| --- | --- |
| `preview_tajo_shopify_app` | Interaktywny podgląd aplikacji Shopify Tajo, renderowany jako MCP UI |
| `get_shop` | Szczegóły sklepu |
| `search_customers` | Wyszukuje klientów w składni zapytań Shopify, np. `tag:tajo-vip` lub `total_spent:>100` |
| `list_customers` | Lista klientów z paginacją |
| `list_orders` | Lista zamówień z paginacją |
| `list_products` | Lista produktów z wariantami, zdjęciami i stanami magazynowymi |
| `get_customer_metafields` | Odczytuje metapola klienta |
| `get_inventory_levels` | Odczytuje stan magazynowy wariantu we wszystkich lokalizacjach |
| `poll_bulk_export` | Sprawdza eksport zbiorczy i po jego zakończeniu zwraca link do pobrania |
| `calculate_rewards_profile` | Oblicza poziom, punkty i saldo nagród klienta na podstawie zsynchronizowanych danych handlowych |
| `shopify_propose` | Przygotowuje jeden zapis w Shopify jako propozycję. Nic nie jest wysyłane. |
| `shopify_apply` | Wykonuje zatwierdzoną propozycję |

## Rozwiązywanie problemów

- Kontakty nie pojawiają się w Brevo: zobacz [brakujące kontakty w Brevo](https://tajo.io/pl/resources/help/troubleshooting/contacts-missing-in-brevo/).
- Reguła się nie uruchamia albo sama się wstrzymała: zobacz [dane się nie synchronizują](https://tajo.io/pl/resources/help/troubleshooting/data-not-syncing/).

## Kolejne kroki

- [Zrozumienie synchronizacji danych](https://tajo.io/pl/resources/help/getting-started/understanding-data-sync/), czyli jak działają reguły synchronizacji
- [Wyjaśnienie uprawnień Shopify](https://tajo.io/pl/resources/help/integrations/shopify-permissions-explained/), każdy zakres i każdy zapis
- [Shopify + Brevo](https://tajo.io/pl/docs/integrations/shopify-brevo), przewodnik po integracji
- [Skontaktuj się z zespołem](https://tajo.io/pl/contact), żeby wszystko skonfigurować
