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

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 WooCommerce z Brevo przez Tajo, aby uzyskać pełną synchronizację danych e-commerce. Wykorzystaj WooCommerce REST API do synchronizacji klientów, zamówień, produktów i kuponów w ukierunkowanych kampaniach marketingowych oraz zautomatyzowanych przepływach pracy.

## Przegląd

| Właściwość | Wartość |
| --- | --- |
| **Platforma** | WooCommerce (WordPress) |
| **Kategoria** | E-commerce |
| **Poziom konfiguracji** | Średni |
| **Integracja oficjalna** | Nie |
| **Synchronizowane dane** | Klienci, Zamówienia, Produkty, Kupony |
| **Dostępne Skills** | 10 |

## Funkcje

- **Synchronizacja klientów** - Synchronizacja danych klientów w czasie rzeczywistym do kontaktów Brevo
- **Śledzenie zamówień** - Pełne śledzenie zdarzeń cyklu życia zamówienia dla flow po zakupie
- **Synchronizacja katalogu produktów** - Synchronizuj produkty i wariacje do rekomendacji e-mailowych
- **Zarządzanie kuponami** - Synchronizuj kody kuponów dla kampanii promocyjnych
- **Obsługa webhooków** - Aktualizacje w czasie rzeczywistym przez webhooki WooCommerce
- **Porzucone koszyki** - Śledź i odzyskuj porzucone koszyki
- **Obsługa multi-site** - Podłącz instalacje multisite WordPress z WooCommerce
- **Niestandardowe meta pola** - Mapuj niestandardowe meta WooCommerce na atrybuty Brevo

## Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

1. Witrynę WordPress z zainstalowaną i aktywowaną wtyczką WooCommerce
2. Włączone WooCommerce REST API (Settings > Advanced > REST API)
3. Wygenerowane Consumer Key i Consumer Secret
4. Twoja witryna musi używać HTTPS do uwierzytelniania API
5. Konto Brevo z dostępem do API
6. Konto Tajo z danymi dostępowymi API

## Uwierzytelnianie

### Klucze REST API

WooCommerce używa par Consumer Key i Consumer Secret do uwierzytelniania. Wygeneruj je w WooCommerce > Settings > Advanced > REST API.

#### OAuth 1.0a (witryny HTTPS)

```bash
curl https://yourstore.com/wp-json/wc/v3/orders \
  -u "consumer_key:consumer_secret"
```

#### Uwierzytelnianie przez query string (HTTPS)

```bash
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"
```

### Poziomy uprawnień

| Uprawnienie | Dostęp |
| --- | --- |
| **Read** | Tylko odczyt zasobów |
| **Write** | Tworzenie i edycja zasobów |
| **Read/Write** | Pełny dostęp CRUD |

## Konfiguracja

### Podstawowa konfiguracja

```yaml
connectors:
  woocommerce:
    enabled: true
    store_url: "https://yourstore.com"
    consumer_key: "ck_your_consumer_key"
    consumer_secret: "cs_your_consumer_secret"
    api_version: "wc/v3"
    verify_ssl: true

    # Data sync options
    sync:
      customers: true
      orders: true
      products: true
      coupons: true

    # Brevo list assignment
    lists:
      all_customers: 50
      buyers: 51
      abandoned_cart: 52
```

### Mapowanie pól klienta

Zmapuj pola klienta WooCommerce na atrybuty Brevo:

```yaml
customer_mapping:
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  billing.phone: SMS
  billing.company: COMPANY
  billing.city: CITY
  billing.state: STATE
  billing.country: COUNTRY
  billing.postcode: ZIP

  # E-commerce metrics (computed)
  orders_count: ORDER_COUNT
  total_spent: TOTAL_SPENT
  date_created: SIGNUP_DATE

  # Meta fields
  meta_data.loyalty_points: LOYALTY_POINTS
  meta_data.preferred_category: PREF_CATEGORY
```

### Konfiguracja webhooków

Zarejestruj webhooki w WooCommerce > Settings > Advanced > Webhooks:

```yaml
webhooks:
  - topic: "customer.created"
    event: "customer_created"
  - topic: "customer.updated"
    event: "customer_updated"
  - topic: "order.created"
    event: "order_placed"
  - topic: "order.updated"
    event: "order_updated"
  - topic: "order.completed"
    event: "order_fulfilled"
  - topic: "order.refunded"
    event: "order_refunded"
  - topic: "coupon.created"
    event: "coupon_created"
  - topic: "product.created"
    event: "product_added"
  - topic: "product.updated"
    event: "product_updated"
```

## Endpointy API

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `/wc/v3/customers` | Lista klientów |
| `POST` | `/wc/v3/customers` | Utwórz klienta |
| `GET` | `/wc/v3/customers/{id}` | Pobierz klienta |
| `PUT` | `/wc/v3/customers/{id}` | Zaktualizuj klienta |
| `GET` | `/wc/v3/orders` | Lista zamówień |
| `POST` | `/wc/v3/orders` | Utwórz zamówienie |
| `GET` | `/wc/v3/orders/{id}` | Pobierz zamówienie |
| `GET` | `/wc/v3/products` | Lista produktów |
| `GET` | `/wc/v3/products/{id}` | Pobierz produkt |
| `GET` | `/wc/v3/products/{id}/variations` | Lista wariacji produktu |
| `GET` | `/wc/v3/coupons` | Lista kuponów |
| `GET` | `/wc/v3/reports/sales` | Pobierz raporty sprzedaży |
| `GET` | `/wc/v3/reports/top_sellers` | Pobierz bestsellery |
| `POST` | `/wc/v3/webhooks` | Utwórz webhook |

## Przykłady kodu

### Inicjalizacja konektora WooCommerce

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect WooCommerce store
await tajo.connectors.connect('woocommerce', {
  storeUrl: 'https://yourstore.com',
  consumerKey: process.env.WC_CONSUMER_KEY,
  consumerSecret: process.env.WC_CONSUMER_SECRET
});
```

### Pobieranie i synchronizacja klientów

```javascript
// Fetch customers using WooCommerce REST API
const WooCommerce = require('@woocommerce/woocommerce-rest-api').default;

const api = new WooCommerce({
  url: 'https://yourstore.com',
  consumerKey: process.env.WC_CONSUMER_KEY,
  consumerSecret: process.env.WC_CONSUMER_SECRET,
  version: 'wc/v3'
});

// List customers with pagination
const response = await api.get('customers', {
  per_page: 100,
  page: 1,
  orderby: 'registered_date',
  order: 'desc'
});

const customers = response.data;
// [{ id, email, first_name, last_name, billing, shipping, ... }]

// Pagination info from headers
const totalPages = response.headers['x-wp-totalpages'];
const totalItems = response.headers['x-wp-total'];
```

### Obsługa zdarzeń webhooków

```javascript
// WooCommerce webhook handler
app.post('/webhooks/woocommerce', async (req, res) => {
  const topic = req.headers['x-wc-webhook-topic'];
  const signature = req.headers['x-wc-webhook-signature'];

  // Verify webhook signature
  const expectedSignature = crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(JSON.stringify(req.body))
    .digest('base64');

  if (signature !== expectedSignature) {
    return res.status(401).send('Invalid signature');
  }

  // Forward to Tajo
  await tajo.connectors.handleWebhook('woocommerce', {
    topic,
    payload: req.body
  });

  res.status(200).send('OK');
});
```

### Operacje wsadowe

```javascript
// Batch create, update, and delete products
const batchResponse = await api.post('products/batch', {
  create: [
    { name: 'New Product', type: 'simple', regular_price: '19.99' }
  ],
  update: [
    { id: 123, regular_price: '24.99' }
  ],
  delete: [456]
});
```

## Limity zapytań

Samo WooCommerce nie narzuca limitów API, ale leżący pod spodem serwer WordPress i dostawca hostingu mogą wprowadzać ograniczenia:

| Czynnik | Typowy limit | Szczegóły |
| --- | --- | --- |
| **Hosting współdzielony** | 50-100 zap./min | Różnie w zależności od hosta |
| **Zarządzany hosting WP** | 200-500 zap./min | WP Engine, Kinsta itd. |
| **Self-hosted** | Brak twardego limitu | Ograniczony zasobami serwera |
| **Na stronę** | Maks. 100 rekordów | Domyślnie 10 |
| **Operacje wsadowe** | 100 elementów/wsad | Utwórz, zaktualizuj lub usuń |

Wydajność serwera

Duże sklepy WooCommerce mogą doświadczać wolnych odpowiedzi API. Używaj paginacji, ogranicz pola parametrem `_fields` i planuj synchronizacje masowe poza godzinami szczytu.

## Rozwiązywanie problemów

| Problem | Przyczyna | Rozwiązanie |
| --- | --- | --- |
| `401 Unauthorized` | Nieprawidłowe klucze API | Wygeneruj ponownie Consumer Key/Secret w ustawieniach WooCommerce |
| `403 Forbidden` | Niewystarczające uprawnienia | Ustaw klucz API na dostęp Read/Write |
| Błędy certyfikatu SSL | Nieprawidłowy SSL na witrynie | Upewnij się, że certyfikat SSL jest ważny; ustaw `verify_ssl: false` tylko do testów |
| Webhooki nie uruchamiają się | WordPress cron wyłączony | Włącz WP-Cron lub skonfiguruj crona na poziomie serwera |
| Wolne odpowiedzi API | Duża baza danych | Zoptymalizuj bazę WordPress, użyj parametru `_fields` |
| Brak niestandardowych pól | Meta dane nieujawnione | Użyj pola `meta_data`, aby uzyskać dostęp do niestandardowych meta |
| Problemy z paginacją | Domyślny rozmiar strony | Ustaw jawnie parametr `per_page` (maks. 100) |

## Najlepsze praktyki

1. **Używaj webhooków do synchronizacji w czasie rzeczywistym** - Konfiguruj webhooki WooCommerce zamiast odpytywać API
2. **Weryfikuj podpisy webhooków** - Zawsze waliduj nagłówek `X-WC-Webhook-Signature`
3. **Paginuj wszystkie żądania listowe** - Używaj parametrów `page` i `per_page`; sprawdzaj nagłówek `X-WP-TotalPages`
4. **Używaj parametru `_fields`** - Żądaj tylko potrzebnych pól, aby zmniejszyć rozmiar odpowiedzi i poprawić wydajność
5. **Operacje wsadowe** - Używaj endpointów wsadowych do masowych operacji tworzenia/aktualizacji/usuwania (do 100 elementów)
6. **Planuj duże synchronizacje** - Uruchamiaj wstępne pełne synchronizacje poza godzinami szczytu, aby nie obciążać serwera
7. **Włącz HTTPS** - WooCommerce API wymaga HTTPS do uwierzytelniania OAuth

## Bezpieczeństwo

- **OAuth 1.0a** - Bezpieczne uwierzytelnianie przez pary Consumer Key/Secret
- **Podpisy webhooków HMAC** - Weryfikacja podpisu SHA-256 dla przychodzących webhooków
- **Wymagany HTTPS** - API wymaga szyfrowania TLS do uwierzytelniania
- **Zakresy uprawnień** - Klucze API można ustawić na Read, Write lub Read/Write
- **Bezpieczeństwo WordPress** - Korzyści z aktualizacji bezpieczeństwa rdzenia WordPress
- **Kwestie PCI** - Dane płatności obsługiwane są przez bramki płatnicze WooCommerce, nie są ujawniane przez API

## Powiązane zasoby

- [Konektor Shopify](https://tajo.io/pl/docs/connectors/ecommerce/shopify)
- [Konektor BigCommerce](https://tajo.io/pl/docs/connectors/ecommerce/bigcommerce)
- [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)
