---
title: "Konektor Shopify"
description: "Kompletny przewodnik integracji Shopify do synchronizacji klientów, zamówień, produktów i zdarzeń koszyka z Brevo."
url: https://tajo.io/pl/docs/connectors/ecommerce/shopify/
markdown: https://tajo.io/pl/docs/connectors/ecommerce/shopify.md
lang: pl-PL
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.

# Konektor Shopify

Status konektora: W trakcie W budowie. Jeszcze niezweryfikowany.

| Pole źródłowe | Pole docelowe | Przykładowa wartość |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Połącz swój sklep Shopify z Brevo, aby uzyskać pełną synchronizację danych klientów, odzyskiwanie porzuconych koszyków i automatyzowane kampanie marketingowe.

## Przegląd

| Właściwość | Wartość |
| --- | --- |
| **Platforma** | Shopify |
| **Kategoria** | E-commerce |
| **Poziom konfiguracji** | Łatwy |
| **Integracja oficjalna** | Nie |
| **Synchronizowane dane** | Klienci, Zamówienia, Produkty, Koszyki, Zdarzenia |
| **Dostępne Skills** | 12 |

## Funkcje

- **Synchronizacja klientów w czasie rzeczywistym** - Dane klientów natychmiast synchronizowane do kontaktów Brevo
- **Śledzenie zamówień** - Zdarzenia zamówień dla flow po zakupie
- **Synchronizacja katalogu produktów** - Produkty dostępne do rekomendacji
- **Porzucone koszyki** - Śledź i odzyskuj porzucone koszyki
- **Zachowanie przeglądania** - Śledzenie wyświetleń stron i zainteresowania produktami
- **Obsługa multi-store** - Podłącz wiele sklepów Shopify

## Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

1. Sklep Shopify z dostępem administratora
2. Konto Brevo z dostępem do API
3. Konto Tajo

## Instalacja

### Opcja 1: Shopify App Store (zalecane)

1. Odwiedź [aplikację Tajo w Shopify App Store](https://apps.shopify.com/tajo)
2. Kliknij „Add app”
3. Udziel wymaganych uprawnień
4. Połącz swoje konto Brevo

### Opcja 2: Instalacja manualna

#### Krok 1: Utwórz aplikację Shopify

1. Przejdź do panelu administracyjnego Shopify → Settings → Apps and sales channels
2. Kliknij „Develop apps” → „Create an app”
3. Nazwij ją „Tajo Integration”

#### Krok 2: Skonfiguruj zakresy API

Włącz następujące zakresy:

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

#### Krok 3: Zainstaluj aplikację

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

#### Krok 4: Skonfiguruj webhooki

Tajo automatycznie rejestruje następujące webhooki:

| Webhook | Cel |
| --- | --- |
| `customers/create` | Synchronizacja nowego klienta |
| `customers/update` | Zmiany danych klienta |
| `customers/delete` | Usunięcie klienta |
| `orders/create` | Zdarzenia złożenia zamówienia |
| `orders/updated` | Zmiany statusu zamówienia |
| `checkouts/create` | Utworzenie koszyka |
| `checkouts/update` | Aktualizacja koszyka |

## Konfiguracja

### Podstawowa konfiguracja

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

### Mapowanie pól

Zmapuj pola Shopify na atrybuty kontaktów Brevo:

#### Mapowania domyślne

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | E-mail klienta (unikalny identyfikator) |
| `first_name` optional | string | Mapuje się na atrybut FIRSTNAME |
| `last_name` optional | string | Mapuje się na atrybut LASTNAME |
| `phone` optional | string | Mapuje się na atrybut SMS dla WhatsApp/SMS |
| `accepts_marketing` optional | boolean | Kontroluje status subskrypcji |
| `orders_count` optional | integer | Łączna liczba zamówień |
| `total_spent` optional | number | Wartość klienta w całym cyklu życia |
| `tags` optional | array | Tagi klienta z Shopify |

#### Niestandardowe mapowanie atrybutów

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

### Synchronizacja produktów

Synchronizuj produkty do rekomendacji e-mailowych:

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

### Śledzenie stanów magazynowych

Włącz synchronizację poziomów magazynowych:

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

## Zdarzenia

### Zdarzenia klienta

| Zdarzenie | Wyzwalacz | Zastosowanie |
| --- | --- | --- |
| `customer_created` | Rejestracja nowego klienta | Seria powitalna |
| `customer_updated` | Zmiany profilu | Synchronizacja danych |
| `customer_tags_added` | Przypisanie tagów | Aktualizacje segmentów |

### Zdarzenia zamówień

| Zdarzenie | Wyzwalacz | Zastosowanie |
| --- | --- | --- |
| `order_placed` | Zakończony checkout | Potwierdzenie zamówienia |
| `order_fulfilled` | Wysyłka zamówienia | Powiadomienie o wysyłce |
| `order_cancelled` | Anulowanie zamówienia | E-mail o anulowaniu |
| `order_refunded` | Przetworzony zwrot | Potwierdzenie zwrotu |

### Zdarzenia koszyka

| Zdarzenie | Wyzwalacz | Zastosowanie |
| --- | --- | --- |
| `cart_created` | Dodanie produktów do koszyka | Śledzenie przeglądania |
| `cart_updated` | Modyfikacja koszyka | Śledzenie wartości koszyka |
| `cart_abandoned` | Brak checkoutu przez 30 min | E-maile odzyskujące |

## Włączane Skills

Konektor Shopify włącza następujące Skills:

| Skill | Opis |
| --- | --- |
| [Customer Sync](https://tajo.io/pl/docs/skills/data-sync/customer-sync) | Synchronizacja klientów w czasie rzeczywistym |
| Order Events | Śledzenie cyklu życia zamówień |
| [Abandoned Cart](https://tajo.io/pl/docs/skills/email-marketing/abandoned-cart) | E-maile odzyskujące koszyk |
| Welcome Series | Onboarding nowych klientów |
| Post-Purchase | Follow-up po zamówieniu |
| Win-Back | Reaktywacja nieaktywnych klientów |
| Browse Abandonment | Follow-up zainteresowania produktem |
| Replenishment | Przypomnienia o ponownym zamówieniu |

## Przykłady kodu

### Inicjalizacja konektora

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

### Uruchom wstępną synchronizację

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

### Śledzenie zdarzeń koszyka

Dodaj skrypt Tajo do swojego motywu Shopify:

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

Adres `example.com` powyżej jest symbolem zastępczym, dopóki endpoint Tajo nie będzie dostępny.

### Niestandardowy handler webhooków

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

### Metryki dashboardu

Monitoruj swoje połączenie Shopify w dashboardzie Tajo:

- **Status synchronizacji**: Kondycja połączenia w czasie rzeczywistym
- **Zsynchronizowani klienci**: Łączna liczba kontaktów z Shopify
- **Śledzone zamówienia**: Przetworzone zdarzenia zamówień
- **Odzyskiwanie koszyków**: Wyniki odzyskiwania porzuconych koszyków
- **Wskaźnik błędów**: Nieudane próby synchronizacji

### Logi webhooków

Wyświetl status dostarczania webhooków:

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

### Historia synchronizacji

Sprawdź historyczne operacje synchronizacji:

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

## Rozwiązywanie problemów

### Typowe problemy

Limity API

Shopify ma limity API wynoszące 2 żądania/sekundę. Dla dużych importów historycznych używaj synchronizacji wsadowej.

| Problem | Przyczyna | Rozwiązanie |
| --- | --- | --- |
| Webhook nie dotarł | Uprawnienia aplikacji | Zainstaluj ponownie aplikację z poprawnymi zakresami |
| Klient nie zsynchronizowany | Brak adresu e-mail | Shopify wymaga e-maila dla klientów |
| Brak produktów | Status produktu | Sprawdź, czy produkt ma status „active” |
| Koszyk nie śledzony | Skrypt nie załadowany | Zweryfikuj skrypt w theme.liquid |

### Tryb debug

Włącz szczegółowe logowanie:

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

### Test połączenia

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

## Najlepsze praktyki

1. **Zacznij od sklepu testowego** - Najpierw użyj sklepu deweloperskiego
2. **Uruchom wstępną synchronizację poza godzinami szczytu** - Duże synchronizacje mogą być powolne
3. **Mapuj niestandardowe atrybuty** - Nie polegaj wyłącznie na mapowaniach domyślnych
4. **Włącz śledzenie koszyka** - Kluczowe dla odzyskiwania porzuconych koszyków
5. **Monitoruj kondycję webhooków** - Skonfiguruj alerty dla nieudanych dostaw
6. **Używaj importów wsadowych** - Dla danych historycznych powyżej 10 000 rekordów

## Bezpieczeństwo

- **OAuth 2.0** - Bezpieczne uwierzytelnianie oparte na tokenach
- **Weryfikacja webhooków** - Walidacja podpisu HMAC
- **Szyfrowane przechowywanie** - Dane uwierzytelniające API szyfrowane w spoczynku
- **Ograniczony dostęp** - Tylko minimum wymaganych uprawnień

## Powiązane zasoby

- [Konektor WooCommerce](https://tajo.io/pl/docs/connectors/ecommerce/woocommerce)
- [Skill synchronizacji klientów](https://tajo.io/pl/docs/skills/data-sync/customer-sync)
- [Skill porzuconego koszyka](https://tajo.io/pl/docs/skills/email-marketing/abandoned-cart)
- [Brevo Contacts API](https://tajo.io/pl/docs/contact-management)
