Konektor Shopify
Konektor Shopify
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 | Tak |
| 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:
- Sklep Shopify z dostępem administratora
- Konto Brevo z dostępem do API
- Konto Tajo
Instalacja
Opcja 1: Shopify App Store (zalecane)
- Odwiedź aplikację Tajo w Shopify App Store
- Kliknij „Add app”
- Udziel wymaganych uprawnień
- Połącz swoje konto Brevo
Opcja 2: Instalacja manualna
Krok 1: Utwórz aplikację Shopify
- Przejdź do panelu administracyjnego Shopify → Settings → Apps and sales channels
- Kliknij „Develop apps” → „Create an app”
- Nazwij ją „Tajo Integration”
Krok 2: Skonfiguruj zakresy API
Włącz następujące zakresy:
read_customerswrite_customersread_ordersread_productsread_checkoutswrite_script_tagsKrok 3: Zainstaluj aplikację
# Using Tajo CLItajo connectors install shopify \ --shop-url your-store.myshopify.com \ --api-key $SHOPIFY_API_KEY \ --api-secret $SHOPIFY_API_SECRETKrok 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
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: 7Mapowanie 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
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: RECENCYSynchronizacja produktów
Synchronizuj produkty do rekomendacji e-mailowych:
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:
sync: inventory: enabled: true low_stock_threshold: 10 out_of_stock_events: trueZdarzenia
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 | Synchronizacja klientów w czasie rzeczywistym |
| Order Events | Śledzenie cyklu życia zamówień |
| 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
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Shopify storeawait 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ę
// Full historical syncawait tajo.connectors.sync('shopify', { type: 'full', resources: ['customers', 'orders', 'products'], since: '2023-01-01'});
// Check sync statusconst 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:
<!-- 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.tajo.io/shopify.js"></script>Niestandardowy handler webhooków
// Handle Shopify webhooks manuallyapp.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:
tajo connectors logs shopify --type webhook --last 24hHistoria synchronizacji
Sprawdź historyczne operacje synchronizacji:
tajo connectors history shopify --limit 10Rozwią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:
connectors: shopify: debug: true log_level: verbose log_webhooks: trueTest połączenia
tajo connectors test shopify# ✓ API connection successful# ✓ Webhooks registered# ✓ Products accessible# ✓ Customers readable# ✓ Orders readableNajlepsze praktyki
- Zacznij od sklepu testowego - Najpierw użyj sklepu deweloperskiego
- Uruchom wstępną synchronizację poza godzinami szczytu - Duże synchronizacje mogą być powolne
- Mapuj niestandardowe atrybuty - Nie polegaj wyłącznie na mapowaniach domyślnych
- Włącz śledzenie koszyka - Kluczowe dla odzyskiwania porzuconych koszyków
- Monitoruj kondycję webhooków - Skonfiguruj alerty dla nieudanych dostaw
- 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ń