Shopify-connector

Shopify-connector

Verbind je Shopify-winkel met Brevo voor volledige klantdatasynchronisatie, abandoned-cart-recovery en geautomatiseerde marketingcampagnes.

Overzicht

EigenschapWaarde
PlatformShopify
CategorieE-commerce
SetupcomplexiteitEenvoudig
Officiële integratieJa
Gesynchroniseerde dataKlanten, Bestellingen, Producten, Winkelwagens, Events
Beschikbare skills12

Functies

  • Realtime klantsync - Klantdata direct gesynchroniseerd naar Brevo-contacten
  • Ordertracking - Order-events voor post-purchase-flows
  • Productcatalogus-sync - Producten beschikbaar voor aanbevelingen
  • Winkelwagenherstel - Volg en herstel verlaten winkelwagens
  • Browsegedrag - Tracking van paginaweergaven en productinteresse
  • Multi-store-ondersteuning - Verbind meerdere Shopify-winkels

Vereisten

Voordat je begint, zorg dat je beschikt over:

  1. Een Shopify-winkel met admin-toegang
  2. Een Brevo-account met API-toegang
  3. Een Tajo-account

Installatie

Optie 1: Shopify App Store (aanbevolen)

  1. Bezoek de Tajo-app in de Shopify App Store
  2. Klik op “Add app”
  3. Verleen de gevraagde permissies
  4. Verbind je Brevo-account

Optie 2: Handmatige installatie

Stap 1: Maak een Shopify-app

  1. Ga naar je Shopify-admin → Settings → Apps and sales channels
  2. Klik op “Develop apps” → “Create an app”
  3. Noem hem “Tajo Integration”

Stap 2: Configureer API-scopes

Activeer deze scopes:

read_customers
write_customers
read_orders
read_products
read_checkouts
write_script_tags

Stap 3: Installeer de app

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

Stap 4: Configureer webhooks

Tajo registreert automatisch deze webhooks:

WebhookDoel
customers/createSynchronisatie nieuwe klant
customers/updateWijzigingen in klantgegevens
customers/deleteVerwijdering van klant
orders/createEvents voor geplaatste bestellingen
orders/updatedWijzigingen in orderstatus
checkouts/createWinkelwagen aangemaakt
checkouts/updateWinkelwagen bijgewerkt

Configuratie

Basisopzet

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

Veldmapping

Koppel Shopify-velden aan Brevo-contactattributen:

Standaard-mappings

Parameter Type Description
email required
string

E-mailadres van de klant (unieke identifier)

first_name optional
string

Koppelt aan FIRSTNAME-attribuut

last_name optional
string

Koppelt aan LASTNAME-attribuut

phone optional
string

Koppelt aan SMS-attribuut voor WhatsApp/sms

accepts_marketing optional
boolean

Bepaalt de abonnementsstatus

orders_count optional
integer

Totaal aantal bestellingen

total_spent optional
number

Lifetime-klantwaarde

tags optional
array

Klanttags uit Shopify

Custom attribuutmapping

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

Productsync

Synchroniseer producten voor e-mailaanbevelingen:

sync:
products:
enabled: true
include_variants: true
include_images: true
categories_as_tags: true
# Filter products
filter:
status: active
exclude_tags: ["hidden", "wholesale-only"]

Voorraadtracking

Activeer synchronisatie van voorraadniveaus:

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

Events

Klant-events

EventTriggerUse case
customer_createdNieuwe klantregistratieWelkomstserie
customer_updatedProfielwijzigingenDatasync
customer_tags_addedTags toegewezenSegmentupdates

Order-events

EventTriggerUse case
order_placedCheckout afgerondOrderbevestiging
order_fulfilledBestelling verzondenVerzendnotificatie
order_cancelledBestelling geannuleerdAnnuleringsmail
order_refundedTerugbetaling verwerktTerugbetalingsbevestiging

Cart-events

EventTriggerUse case
cart_createdItems toegevoegd aan winkelwagenBrowse-tracking
cart_updatedWinkelwagen aangepastWaardetracking
cart_abandonedGeen checkout binnen 30 minRecovery-e-mails

Ingeschakelde skills

De Shopify-connector schakelt deze skills in:

SkillBeschrijving
Customer SyncRealtime-klantsync
Order EventsOrder-lifecycle-tracking
Abandoned CartWinkelwagenherstel-e-mails
Welcome SeriesOnboarding van nieuwe klanten
Post-PurchaseOrder-opvolging
Win-BackReactivering van inactieve klanten
Browse AbandonmentOpvolging van productinteresse
ReplenishmentHerbestel-herinneringen

Codevoorbeelden

Connector initialiseren

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

Voer initiële sync uit

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

Cart-events tracken

Voeg het Tajo-script toe aan je Shopify-thema:

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

Custom webhook-handler

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

Dashboardmetrics

Monitor je Shopify-verbinding in het Tajo-dashboard:

  • Syncstatus: Realtime-conditie van de verbinding
  • Gesynchroniseerde klanten: Totaal aantal contacten uit Shopify
  • Getrackte bestellingen: Verwerkte order-events
  • Winkelwagenherstel: Prestaties van abandoned-cart
  • Foutpercentage: Mislukte sync-pogingen

Webhook-logs

Bekijk de deliverystatus van webhooks:

Terminal window
tajo connectors logs shopify --type webhook --last 24h

Synchronisatiegeschiedenis

Raadpleeg historische sync-operaties:

Terminal window
tajo connectors history shopify --limit 10

Probleemoplossing

Veelvoorkomende problemen

API-ratelimits

Shopify hanteert API-ratelimits van 2 requests/seconde. Gebruik batch-sync voor grote historische imports.

ProbleemOorzaakOplossing
Webhook niet ontvangenApp-permissiesHerinstalleer de app met de juiste scopes
Klant niet gesynchroniseerdOntbrekende e-mailShopify vereist een e-mailadres voor klanten
Producten ontbrekenProductstatusControleer of het product op “active” staat
Winkelwagen niet getracktScript niet geladenVerifieer script in theme.liquid

Debugmodus

Activeer uitgebreide logging:

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

Verbinding testen

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

Best practices

  1. Begin met een testwinkel - Gebruik eerst een development store
  2. Doe de initiële sync buiten drukke uren - Grote syncs kunnen traag zijn
  3. Koppel custom-attributen - Vertrouw niet alleen op de standaardmappings
  4. Schakel winkelwagentracking in - Cruciaal voor abandoned-cart-recovery
  5. Monitor webhook-gezondheid - Stel alerts in voor mislukte leveringen
  6. Gebruik batch-imports - Voor historische data van meer dan 10.000 records

Beveiliging

  • OAuth 2.0 - Veilige tokengebaseerde authenticatie
  • Webhook-verificatie - HMAC-handtekeningvalidatie
  • Versleutelde opslag - API-inloggegevens versleuteld opgeslagen
  • Gescopede toegang - Alleen minimaal benodigde permissies

Gerelateerde resources

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AI-assistent

Hallo! Stel me vragen over de documentatie.

Start gratis met Brevo