Shopify Connector
Shopify Connector
Forbind din Shopify-butik til Brevo for komplet synkronisering af kundedata, genoprettelse af forladte kurve og automatiserede marketingkampagner.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Shopify |
| Kategori | E-handel |
| Opsætningskompleksitet | Let |
| Officiel integration | Ja |
| Synkroniserede data | Kunder, ordrer, produkter, kurve, hændelser |
| Tilgængelige skills | 12 |
Funktioner
- Realtidssynkronisering af kunder - Kundedata synkroniseres øjeblikkeligt til Brevo-kontakter
- Ordresporing - Ordrehændelser til flows efter køb
- Produktkatalogsynkronisering - Produkter tilgængelige til anbefalinger
- Kurvforladelse - Spor og genopret forladte kurve
- Browseadfærd - Sporing af sidevisninger og produktinteresse
- Multi-butik-understøttelse - Forbind flere Shopify-butikker
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En Shopify-butik med administratoradgang
- En Brevo-konto med API-adgang
- En Tajo-konto
Installation
Mulighed 1: Shopify App Store (anbefalet)
- Besøg Tajo-appen i Shopify App Store
- Klik “Add app”
- Giv de ønskede rettigheder
- Forbind din Brevo-konto
Mulighed 2: Manuel installation
Trin 1: Opret en Shopify-app
- Gå til din Shopify-admin → Settings → Apps and sales channels
- Klik “Develop apps” → “Create an app”
- Navngiv den “Tajo Integration”
Trin 2: Konfigurér API-scopes
Aktivér disse scopes:
read_customerswrite_customersread_ordersread_productsread_checkoutswrite_script_tagsTrin 3: Installér appen
# Using Tajo CLItajo connectors install shopify \ --shop-url your-store.myshopify.com \ --api-key $SHOPIFY_API_KEY \ --api-secret $SHOPIFY_API_SECRETTrin 4: Konfigurér webhooks
Tajo registrerer automatisk disse webhooks:
| Webhook | Formål |
|---|---|
customers/create | Synkronisering af ny kunde |
customers/update | Ændringer i kundedata |
customers/delete | Fjernelse af kunde |
orders/create | Hændelser om afgivne ordrer |
orders/updated | Ændringer i ordrestatus |
checkouts/create | Kurv oprettet |
checkouts/update | Kurv opdateret |
Konfiguration
Grundlæggende opsætning
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: 7Feltmapping
Knyt Shopify-felter til Brevo-kontaktattributter:
Standardmappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Kundens e-mail (unik identifikator) |
first_name optional | string | Mapper til FIRSTNAME-attribut |
last_name optional | string | Mapper til LASTNAME-attribut |
phone optional | string | Mapper til SMS-attribut for WhatsApp/SMS |
accepts_marketing optional | boolean | Styrer abonnementsstatus |
orders_count optional | integer | Samlet antal ordrer |
total_spent optional | number | Kundens livstidsværdi |
tags optional | array | Kundetags fra Shopify |
Brugerdefineret attributmapping
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: RECENCYProduktsynkronisering
Synkronisér produkter til e-mailanbefalinger:
sync: products: enabled: true include_variants: true include_images: true categories_as_tags: true
# Filter products filter: status: active exclude_tags: ["hidden", "wholesale-only"]Lagersporing
Aktivér synkronisering af lagerniveau:
sync: inventory: enabled: true low_stock_threshold: 10 out_of_stock_events: trueHændelser
Kundehændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
customer_created | Ny kundetilmelding | Velkomstserie |
customer_updated | Profilændringer | Datasynkronisering |
customer_tags_added | Tags tildelt | Segmentopdateringer |
Ordrehændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
order_placed | Checkout fuldført | Ordrebekræftelse |
order_fulfilled | Ordre afsendt | Forsendelsesnotifikation |
order_cancelled | Ordre annulleret | Annulleringsmail |
order_refunded | Refusion behandlet | Refusionsbekræftelse |
Kurvhændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
cart_created | Varer lagt i kurv | Browse-sporing |
cart_updated | Kurv ændret | Sporing af kurvværdi |
cart_abandoned | Ingen checkout i 30 min. | Genoprettelsesmails |
Aktiverede skills
Shopify-konnektoren aktiverer disse skills:
| Skill | Beskrivelse |
|---|---|
| Customer Sync | Realtidssynkronisering af kunder |
| Order Events | Sporing af ordrelivscyklus |
| Abandoned Cart | E-mails til genoprettelse af kurv |
| Welcome Series | Onboarding af nye kunder |
| Post-Purchase | Opfølgning efter ordre |
| Win-Back | Genengagér inaktive kunder |
| Browse Abandonment | Opfølgning på produktinteresse |
| Replenishment | Genbestillingspåmindelser |
Kodeeksempler
Initialisér konnektor
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});Kør indledende synkronisering
// 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// }Spor kurvhændelser
Tilføj Tajo-scriptet til dit Shopify-tema:
<!-- 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>Brugerdefineret 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');});Overvågning
Dashboard-metrikker
Overvåg din Shopify-forbindelse i Tajo-dashboardet:
- Synkroniseringsstatus: Realtids-forbindelsestilstand
- Synkroniserede kunder: Samlet antal kontakter fra Shopify
- Sporede ordrer: Behandlede ordrehændelser
- Kurvgenoprettelse: Performance for forladte kurve
- Fejlrate: Mislykkede synkroniseringsforsøg
Webhook-logfiler
Se webhook-leveringsstatus:
tajo connectors logs shopify --type webhook --last 24hSynkroniseringshistorik
Tjek historiske synkroniseringsoperationer:
tajo connectors history shopify --limit 10Fejlfinding
Almindelige problemer
API-ratebegrænsninger
Shopify har API-ratebegrænsninger på 2 forespørgsler/sekund. Brug batch-synkronisering til store historiske importer.
| Problem | Årsag | Løsning |
|---|---|---|
| Webhook ikke modtaget | App-rettigheder | Geninstallér appen med de korrekte scopes |
| Kunde ikke synkroniseret | Manglende e-mail | Shopify kræver e-mail for kunder |
| Produkter mangler | Produktstatus | Tjek, at produktet har statussen “active” |
| Kurv ikke sporet | Script ikke indlæst | Verificér script i theme.liquid |
Fejlfindingstilstand
Aktivér udførlig logning:
connectors: shopify: debug: true log_level: verbose log_webhooks: trueTest forbindelse
tajo connectors test shopify# ✓ API connection successful# ✓ Webhooks registered# ✓ Products accessible# ✓ Customers readable# ✓ Orders readableBest practices
- Start med en testbutik - Brug en udviklingsbutik først
- Kør indledende synkronisering uden for arbejdstid - Store synkroniseringer kan være langsomme
- Map brugerdefinerede attributter - Stol ikke kun på standardmappings
- Aktivér kurvsporing - Kritisk for genoprettelse af forladte kurve
- Overvåg webhook-sundhed - Opsæt advarsler for mislykkede leveringer
- Brug batch-importer - Til historiske data over 10.000 poster
Sikkerhed
- OAuth 2.0 - Sikker tokenbaseret autentifikation
- Webhook-verifikation - HMAC-signaturvalidering
- Krypteret lagring - API-legitimationsoplysninger krypteres i hvile
- Scoped adgang - Kun minimumskrævede rettigheder