BigCommerce Integrationsleitfaden

Dieser Leitfaden führt dich durch die Integration von Tajo mit deinem BigCommerce-Shop, um Kundenengagement, Loyalty-Programme und Marketing-Automatisierung freizuschalten.

Überblick

Mit der Tajo-BigCommerce-Integration kannst du:

  • Kundendaten automatisch aus deinem BigCommerce-Shop synchronisieren
  • Bestellungen und Produkte für personalisiertes Marketing verfolgen
  • Loyalty-Programme mit Punkten, Tiers und Prämien betreiben
  • Marketing-Kampagnen automatisieren über Brevo (E-Mail, SMS, WhatsApp)
  • Kunden segmentieren nach Kaufverhalten und Engagement
  • Multi-Storefront-Betrieb unterstützen

Voraussetzungen

Bevor du mit der Integration startest, stelle sicher, dass du Folgendes hast:

  • BigCommerce-Shop in einem beliebigen Tarif (Standard, Plus, Pro oder Enterprise)
  • Tajo-Konto mit aktivem Abonnement
  • Brevo-Konto (optional, für Marketing-Automatisierung)
  • Shop-API-Zugangsdaten (API-Konto mit passenden Scopes)

Schritt 1: Tajo-App installieren

Aus dem BigCommerce-App-Marketplace

  1. Öffne dein BigCommerce-Control-Panel
  2. Navigiere zu Apps → Marketplace
  3. Suche nach „Tajo“
  4. Klicke auf Get This App
  5. Prüfe die Berechtigungen und klicke auf Install
  6. Folge dem Setup-Wizard, um dein Tajo-Konto zu verbinden

API-Konfiguration

Nach der Installation richtest du den API-Zugang ein:

{
"api_credentials": {
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"access_token": "your_access_token",
"store_hash": "your_store_hash"
},
"scopes": [
"store_v2_customers",
"store_v2_orders",
"store_v2_products",
"store_cart",
"store_checkout"
]
}

Schritt 2: Datensynchronisation konfigurieren

Einstellungen für die Kundensynchronisation

Lege fest, welche Kundendaten synchronisiert werden:

{
"sync_settings": {
"customers": {
"enabled": true,
"sync_frequency": "real-time",
"fields": [
"email",
"first_name",
"last_name",
"phone",
"company",
"customer_group_id",
"store_credit",
"addresses",
"date_created"
]
},
"orders": {
"enabled": true,
"sync_frequency": "real-time",
"include_products": true,
"include_shipping": true,
"include_coupons": true
},
"products": {
"enabled": true,
"sync_frequency": "hourly",
"include_variants": true,
"include_images": true,
"include_custom_fields": true
}
}
}

Webhook-Konfiguration

Tajo registriert die folgenden BigCommerce-Webhooks:

WebhookZweck
store/customer/createdNeue Kunden zu Tajo & Brevo synchronisieren
store/customer/updatedKundenprofile aktuell halten
store/order/createdKäufe erfassen, Loyalty-Punkte vergeben
store/order/statusUpdatedStatus-basierte Kampagnen auslösen
store/cart/createdWarenkorb für Abandonment-Tracking
store/cart/updatedWarenkorb-Abandonment-Sequenzen aktualisieren
store/product/updatedProduktkatalog synchron halten

Multi-Storefront-Unterstützung

Für BigCommerce Enterprise mit mehreren Storefronts:

{
"multi_storefront": {
"enabled": true,
"storefronts": [
{
"channel_id": 1,
"name": "Main Store",
"loyalty_program": "default"
},
{
"channel_id": 2,
"name": "Wholesale",
"loyalty_program": "b2b_program"
},
{
"channel_id": 3,
"name": "International",
"loyalty_program": "global_program"
}
],
"sync_across_channels": true
}
}

Schritt 3: Loyalty-Programm einrichten

Punktesystem konfigurieren

const pointsConfig = {
// Punkte pro ausgegebenem Dollar
purchasePoints: {
enabled: true,
rate: 1, // 1 Punkt je 1 $
roundingMode: 'floor'
},
// Bonus-Aktionen
bonusPoints: {
accountCreation: 100,
firstPurchase: 200,
reviewSubmitted: 50,
referralMade: 500,
birthdayBonus: 100,
newsletterSignup: 25
},
// Multiplikatoren je Kundengruppe
customerGroupMultipliers: {
'Retail': 1.0,
'VIP': 1.5,
'Wholesale': 0.5,
'Platinum': 2.0
}
};

Loyalty-Tiers

const loyaltyTiers = [
{
name: 'Bronze',
minPoints: 0,
benefits: [
'1 point per $1 spent',
'Birthday bonus points',
'Member-only promotions'
]
},
{
name: 'Silver',
minPoints: 1000,
benefits: [
'1.25x points multiplier',
'Free shipping on orders $50+',
'Early access to sales'
]
},
{
name: 'Gold',
minPoints: 5000,
benefits: [
'1.5x points multiplier',
'Free shipping on all orders',
'Exclusive product access',
'Priority support'
]
},
{
name: 'Platinum',
minPoints: 15000,
benefits: [
'2x points multiplier',
'Free express shipping',
'VIP experiences',
'Dedicated account manager'
]
}
];

Schritt 4: B2B-Kundenverwaltung

Firmenkonten

BigCommerce bringt B2B-Funktionen mit, die in Tajo integrieren:

const b2bConfig = {
companyAccounts: {
enabled: true,
syncCompanyData: true,
fields: [
'company_name',
'tax_id',
'credit_limit',
'payment_terms',
'price_list'
]
},
// B2B-spezifische Loyalty-Regeln
b2bLoyalty: {
orderVolumeBonus: {
threshold: 10000,
bonusMultiplier: 1.5
},
reorderPoints: {
enabled: true,
rate: 0.5 // 0.5 Punkte je 1 $ bei Nachbestellungen
}
}
};

Integration der Kundengruppen

// BigCommerce-Kundengruppen Tajo-Segmenten zuordnen
const customerGroupMapping = {
'Retail': {
tajoSegment: 'retail_customers',
loyaltyTier: 'Bronze',
emailList: 'retail_newsletter'
},
'Wholesale': {
tajoSegment: 'wholesale_customers',
loyaltyTier: 'Silver',
emailList: 'wholesale_updates'
},
'VIP': {
tajoSegment: 'vip_customers',
loyaltyTier: 'Gold',
emailList: 'vip_exclusive'
}
};

Schritt 5: Warenkorbabbruch-Wiedergewinnung

Warenkorb-Tracking

// BigCommerce Cart-Webhook-Handler
async function handleCartWebhook(event) {
const cart = await bigcommerce.carts.get(event.data.cartId);
if (!cart.customer_id && !cart.email) {
return; // Ohne Identität kein Tracking möglich
}
await tajo.carts.track({
customerId: cart.customer_id,
email: cart.email,
cartId: cart.id,
items: cart.line_items.physical_items.map(item => ({
productId: item.product_id,
variantId: item.variant_id,
title: item.name,
quantity: item.quantity,
price: item.sale_price || item.list_price,
image: item.image_url
})),
totalPrice: cart.cart_amount,
currency: cart.currency.code,
checkoutUrl: cart.redirect_urls?.checkout_url
});
}

Wiedergewinnungs-Sequenz

{
"abandoned_cart_sequence": {
"trigger": {
"event": "cart_abandoned",
"delay": "1 hour"
},
"messages": [
{
"delay": "1 hour",
"channel": "email",
"template": "cart_reminder_1",
"subject": "You left something behind!"
},
{
"delay": "24 hours",
"channel": "email",
"template": "cart_reminder_2",
"subject": "Your cart is waiting - 10% off inside"
},
{
"delay": "72 hours",
"channel": "sms",
"template": "cart_sms_final"
}
],
"exit_conditions": [
"order_completed",
"cart_emptied",
"unsubscribed"
]
}
}

Schritt 6: Marketing-Automatisierung

Kundensegmente

const bigcommerceSegments = [
// Kaufverhalten
{
name: 'First-Time Buyers',
conditions: { orders_count: 1 }
},
{
name: 'Repeat Customers',
conditions: { orders_count: { $gte: 2 } }
},
{
name: 'High-Value Customers',
conditions: { total_spent: { $gte: 1000 } }
},
// Kundengruppen
{
name: 'Wholesale Accounts',
conditions: { customer_group: 'Wholesale' }
},
// Engagement
{
name: 'At-Risk Customers',
conditions: {
last_order_date: { $lt: '-90 days' },
orders_count: { $gte: 2 }
}
}
];

Automatisierte Kampagnen

// Trigger bei Bestellstatus-Wechsel
bigcommerce.webhooks.on('store/order/statusUpdated', async (event) => {
const order = await bigcommerce.orders.get(event.data.orderId);
const customer = await tajo.customers.getByEmail(order.billing_address.email);
switch (event.data.status.new_status) {
case 'Shipped':
await brevo.trackEvent(customer.email, 'order_shipped', {
orderId: order.id,
trackingNumber: order.tracking_number,
carrier: order.shipping_carrier
});
break;
case 'Completed':
// Loyalty-Punkte vergeben
const points = calculatePoints(order, customer);
await tajo.loyalty.awardPoints(customer.id, points);
// Bewertungsanfrage nach 14 Tagen anstoßen
await brevo.scheduleEvent(customer.email, 'review_request', {
orderId: order.id,
products: order.products
}, { delay: '14 days' });
break;
}
});

Schritt 7: Analytics

Dashboard-Kennzahlen

const dashboardMetrics = {
customers: {
total: await tajo.analytics.count('customers'),
byChannel: await tajo.analytics.groupBy('customers', 'channel_id'),
newThisMonth: await tajo.analytics.count('customers', {
created_at: { $gte: 'this_month' }
})
},
revenue: {
total: await tajo.analytics.sum('orders.total'),
byChannel: await tajo.analytics.groupBy('orders', 'channel_id', {
aggregate: 'sum',
field: 'total'
}),
averageOrderValue: await tajo.analytics.avg('orders.total')
},
loyalty: {
activeMembers: await tajo.analytics.count('loyalty_members'),
pointsIssued: await tajo.analytics.sum('points.awarded'),
redemptionRate: await tajo.analytics.pointsRedemptionRate()
}
};

Fehlersuche

API-Rate-Limits

// Rate-Limiting umsetzen
async function bigcommerceApiCall(endpoint, options, retries = 3) {
for (let i = 0; i < retries; i++) {
try {
const response = await fetch(endpoint, options);
if (response.status === 429) {
const retryAfter = response.headers.get('X-Rate-Limit-Time-Reset-Ms');
await sleep(parseInt(retryAfter) || Math.pow(2, i) * 1000);
continue;
}
return response;
} catch (error) {
if (i === retries - 1) throw error;
}
}
}

Webhook-Verifizierung

// BigCommerce-Webhook-Signatur prüfen
function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('base64');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
);
}

Nächste Schritte

  1. Brevo-Integration konfigurieren für E-Mail-/SMS-Kampagnen
  2. Webhooks einrichten für Echtzeit-Events
  3. Kundensegmente erstellen für gezieltes Marketing
  4. E-Mail-Templates bauen für automatisierte Kampagnen

Support

Subscribe to updates

developer-docs

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

auto-detect
AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.