Shopify konektor
Shopify konektor
Poveži svoju Shopify trgovinu s Brevom za potpunu sinkronizaciju podataka o kupcima, povrat napuštenih košarica i automatizirane marketinške kampanje.
Pregled
| Svojstvo | Vrijednost |
|---|---|
| Platforma | Shopify |
| Kategorija | E-commerce |
| Složenost postavljanja | Jednostavno |
| Službena integracija | Da |
| Sinkronizirani podaci | Kupci, narudžbe, proizvodi, košarice, događaji |
| Dostupni skills | 12 |
Značajke
- Sinkronizacija kupaca u stvarnom vremenu - Podaci o kupcima trenutno se sinkroniziraju s Brevo kontaktima
- Praćenje narudžbi - Događaji narudžbi za post-purchase tokove
- Sinkronizacija kataloga proizvoda - Proizvodi dostupni za preporuke
- Napuštanje košarice - Prati i vraćaj napuštene košarice
- Ponašanje pregledavanja - Praćenje pregleda stranica i interesa za proizvode
- Podrška za više trgovina - Poveži više Shopify trgovina
Preduvjeti
Prije nego što počneš, provjeri imaš li:
- Shopify trgovinu s admin pristupom
- Brevo račun s API pristupom
- Tajo račun
Instalacija
Opcija 1: Shopify App Store (preporučeno)
- Posjeti Tajo aplikaciju u Shopify App Storeu
- Klikni “Add app”
- Odobri tražena dopuštenja
- Poveži svoj Brevo račun
Opcija 2: Ručna instalacija
Korak 1: Stvori Shopify aplikaciju
- Idi u Shopify admin → Settings → Apps and sales channels
- Klikni “Develop apps” → “Create an app”
- Nazovi je “Tajo Integration”
Korak 2: Konfiguriraj API scopeove
Omogući ove scopeove:
read_customerswrite_customersread_ordersread_productsread_checkoutswrite_script_tagsKorak 3: Instaliraj aplikaciju
# Using Tajo CLItajo connectors install shopify \ --shop-url your-store.myshopify.com \ --api-key $SHOPIFY_API_KEY \ --api-secret $SHOPIFY_API_SECRETKorak 4: Konfiguriraj webhookove
Tajo automatski registrira ove webhookove:
| Webhook | Svrha |
|---|---|
customers/create | Sinkronizacija novog kupca |
customers/update | Promjene podataka kupca |
customers/delete | Uklanjanje kupca |
orders/create | Događaji kreiranja narudžbe |
orders/updated | Promjene statusa narudžbe |
checkouts/create | Kreirana košarica |
checkouts/update | Ažurirana košarica |
Konfiguracija
Osnovno postavljanje
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: 7Mapiranje polja
Mapiraj Shopify polja na Brevo atribute kontakta:
Zadana mapiranja
| Parameter | Type | Description |
|---|---|---|
email required | string | Email kupca (jedinstveni identifikator) |
first_name optional | string | Mapira se na FIRSTNAME atribut |
last_name optional | string | Mapira se na LASTNAME atribut |
phone optional | string | Mapira se na SMS atribut za WhatsApp/SMS |
accepts_marketing optional | boolean | Kontrolira status pretplate |
orders_count optional | integer | Ukupan broj narudžbi |
total_spent optional | number | Životna vrijednost kupca |
tags optional | array | Tagovi kupca iz Shopifyja |
Mapiranje prilagođenih atributa
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: RECENCYSinkronizacija proizvoda
Sinkroniziraj proizvode za email preporuke:
sync: products: enabled: true include_variants: true include_images: true categories_as_tags: true
# Filter products filter: status: active exclude_tags: ["hidden", "wholesale-only"]Praćenje zaliha
Omogući sinkronizaciju razine zaliha:
sync: inventory: enabled: true low_stock_threshold: 10 out_of_stock_events: trueDogađaji
Događaji kupaca
| Događaj | Okidač | Slučaj korištenja |
|---|---|---|
customer_created | Registracija novog kupca | Welcome serija |
customer_updated | Promjene profila | Sinkronizacija podataka |
customer_tags_added | Dodijeljeni tagovi | Ažuriranja segmenata |
Događaji narudžbi
| Događaj | Okidač | Slučaj korištenja |
|---|---|---|
order_placed | Dovršena kupnja | Potvrda narudžbe |
order_fulfilled | Narudžba poslana | Obavijest o dostavi |
order_cancelled | Narudžba otkazana | Email o otkazivanju |
order_refunded | Obrađen povrat novca | Potvrda povrata novca |
Događaji košarice
| Događaj | Okidač | Slučaj korištenja |
|---|---|---|
cart_created | Artikli dodani u košaricu | Praćenje pregledavanja |
cart_updated | Košarica izmijenjena | Praćenje vrijednosti košarice |
cart_abandoned | Nema kupnje u 30 min | Emailovi za povrat |
Omogućeni skills
Shopify konektor omogućuje ove skills:
| Skill | Opis |
|---|---|
| Customer Sync | Sinkronizacija kupaca u stvarnom vremenu |
| Order Events | Praćenje životnog ciklusa narudžbe |
| Abandoned Cart | Emailovi za povrat košarice |
| Welcome Series | Onboarding novih kupaca |
| Post-Purchase | Follow-up nakon narudžbe |
| Win-Back | Ponovna angažiranost neaktivnih kupaca |
| Browse Abandonment | Follow-up za interes za proizvod |
| Replenishment | Podsjetnici za ponovnu kupnju |
Primjeri koda
Inicijaliziraj konektor
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});Pokreni početnu sinkronizaciju
// 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// }Prati događaje košarice
Dodaj Tajo skriptu u svoju Shopify temu:
<!-- 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>Prilagođeni webhook handler
// 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');});Praćenje
Metrike dashboarda
Prati svoju Shopify konekciju u Tajo dashboardu:
- Status sinkronizacije: Zdravlje konekcije u stvarnom vremenu
- Sinkronizirani kupci: Ukupno kontakata iz Shopifyja
- Praćene narudžbe: Obrađeni događaji narudžbi
- Povrat košarice: Performanse napuštenih košarica
- Stopa grešaka: Neuspjeli pokušaji sinkronizacije
Logovi webhookova
Pregledaj status isporuke webhookova:
tajo connectors logs shopify --type webhook --last 24hPovijest sinkronizacije
Provjeri povijesne operacije sinkronizacije:
tajo connectors history shopify --limit 10Rješavanje problema
Uobičajeni problemi
Ograničenja API stope
Shopify ima API ograničenja od 2 zahtjeva/sekundi. Koristi batch sinkronizaciju za velike povijesne uvoze.
| Problem | Uzrok | Rješenje |
|---|---|---|
| Webhook nije primljen | Dopuštenja aplikacije | Ponovo instaliraj aplikaciju s ispravnim scopeovima |
| Kupac nije sinkroniziran | Nedostaje email | Shopify zahtijeva email za kupce |
| Proizvodi nedostaju | Status proizvoda | Provjeri je li proizvod “active” statusa |
| Košarica nije praćena | Skripta nije učitana | Provjeri skriptu u theme.liquid |
Debug način
Omogući opsežno logiranje:
connectors: shopify: debug: true log_level: verbose log_webhooks: trueTestiraj konekciju
tajo connectors test shopify# ✓ API connection successful# ✓ Webhooks registered# ✓ Products accessible# ✓ Customers readable# ✓ Orders readableNajbolje prakse
- Počni s testnom trgovinom - Prvo koristi development trgovinu
- Pokreni početnu sinkronizaciju izvan radnog vremena - Velike sinkronizacije mogu biti spore
- Mapiraj prilagođene atribute - Ne oslanjaj se samo na zadana mapiranja
- Omogući praćenje košarice - Ključno za povrat napuštenih košarica
- Prati zdravlje webhookova - Postavi upozorenja za neuspjele isporuke
- Koristi batch uvoze - Za povijesne podatke preko 10.000 zapisa
Sigurnost
- OAuth 2.0 - Sigurna autentifikacija temeljena na tokenima
- Verifikacija webhookova - Validacija HMAC potpisa
- Šifrirano pohranjivanje - API vjerodajnice šifrirane u mirovanju
- Ograničen pristup - Samo minimalna potrebna dopuštenja