دليل التكامل مع BigCommerce
يرشدك هذا الدليل خلال دمج Tajo مع متجرك على BigCommerce للاستفادة من إمكانات تفاعل العملاء وبرامج الولاء وأتمتة التسويق.
نظرة عامة
يتيح لك التكامل بين Tajo وBigCommerce ما يلي:
- مزامنة بيانات العملاء تلقائياً من متجرك على BigCommerce
- تتبّع الطلبات والمنتجات من أجل تسويق مخصّص
- تشغيل برامج الولاء بالنقاط والمستويات والمكافآت
- أتمتة الحملات التسويقية عبر Brevo (البريد الإلكتروني وSMS وواتساب)
- تقسيم العملاء حسب سلوك الشراء والتفاعل
- دعم تشغيل واجهات متاجر متعدّدة
المتطلّبات المسبقة
قبل بدء التكامل، تأكّد من توفّر ما يلي:
- متجر BigCommerce على أي خطّة (Standard أو Plus أو Pro أو Enterprise)
- حساب Tajo باشتراك نشط
- حساب Brevo (اختياري، لأتمتة التسويق)
- بيانات اعتماد API للمتجر (حساب API بالنطاقات المناسبة)
الخطوة 1: تثبيت تطبيق Tajo
من متجر تطبيقات BigCommerce
- انتقل إلى لوحة تحكّم BigCommerce لديك
- اذهب إلى Apps ← Marketplace
- ابحث عن “Tajo”
- انقر على Get This App
- راجع الأذونات وانقر على Install
- اتبع معالج الإعداد لربط حساب Tajo الخاص بك
تهيئة API
بعد التثبيت، اضبط الوصول إلى API:
{ "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" ]}الخطوة 2: تهيئة مزامنة البيانات
إعدادات مزامنة العملاء
اضبط بيانات العملاء التي تريد مزامنتها:
{ "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
يسجّل Tajo خطافات BigCommerce التالية:
| Webhook | الغرض |
|---|---|
store/customer/created | مزامنة العملاء الجدد إلى Tajo وBrevo |
store/customer/updated | إبقاء ملفات العملاء محدَّثة |
store/order/created | تتبّع المشتريات ومنح نقاط الولاء |
store/order/statusUpdated | إطلاق حملات مبنية على الحالة |
store/cart/created | تتبّع السلة لرصد الترك |
store/cart/updated | تحديث سلاسل استعادة السلة المتروكة |
store/product/updated | إبقاء كتالوج المنتجات مُزامَناً |
دعم واجهات المتاجر المتعدّدة
لعملاء BigCommerce Enterprise الذين لديهم واجهات متاجر متعدّدة:
{ "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 }}الخطوة 3: إعداد برنامج الولاء
تهيئة نظام النقاط
const pointsConfig = { // Points per dollar spent purchasePoints: { enabled: true, rate: 1, // 1 point per $1 roundingMode: 'floor' },
// Bonus actions bonusPoints: { accountCreation: 100, firstPurchase: 200, reviewSubmitted: 50, referralMade: 500, birthdayBonus: 100, newsletterSignup: 25 },
// Customer group multipliers customerGroupMultipliers: { 'Retail': 1.0, 'VIP': 1.5, 'Wholesale': 0.5, 'Platinum': 2.0 }};مستويات الولاء
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' ] }];الخطوة 4: إدارة عملاء B2B
حسابات الشركات
يدعم BigCommerce ميزات B2B التي تتكامل مع Tajo:
const b2bConfig = { companyAccounts: { enabled: true, syncCompanyData: true, fields: [ 'company_name', 'tax_id', 'credit_limit', 'payment_terms', 'price_list' ] },
// B2B-specific loyalty rules b2bLoyalty: { orderVolumeBonus: { threshold: 10000, bonusMultiplier: 1.5 }, reorderPoints: { enabled: true, rate: 0.5 // 0.5 points per $1 on reorders } }};التكامل مع مجموعات العملاء
// Map BigCommerce customer groups to Tajo segmentsconst 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' }};الخطوة 5: استعادة السلات المتروكة
تتبّع السلة
// BigCommerce cart webhook handlerasync function handleCartWebhook(event) { const cart = await bigcommerce.carts.get(event.data.cartId);
if (!cart.customer_id && !cart.email) { return; // Can't track without identity }
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 });}سلسلة الاستعادة
{ "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" ] }}الخطوة 6: أتمتة التسويق
شرائح العملاء
const bigcommerceSegments = [ // Purchase behavior { 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 } } },
// Customer groups { name: 'Wholesale Accounts', conditions: { customer_group: 'Wholesale' } },
// Engagement { name: 'At-Risk Customers', conditions: { last_order_date: { $lt: '-90 days' }, orders_count: { $gte: 2 } } }];الحملات المؤتمتة
// Order status change triggersbigcommerce.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': // Award loyalty points const points = calculatePoints(order, customer); await tajo.loyalty.awardPoints(customer.id, points);
// Trigger review request after 14 days await brevo.scheduleEvent(customer.email, 'review_request', { orderId: order.id, products: order.products }, { delay: '14 days' }); break; }});الخطوة 7: التحليلات
مقاييس لوحة التحكم
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() }};استكشاف الأخطاء وإصلاحها
حدود معدّل API
// Implement rate limitingasync 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
// Verify BigCommerce webhook signaturefunction verifyWebhook(payload, signature, secret) { const expected = crypto .createHmac('sha256', secret) .update(payload) .digest('base64');
return crypto.timingSafeEqual( Buffer.from(expected), Buffer.from(signature) );}الخطوات التالية
- تهيئة التكامل مع Brevo لحملات البريد الإلكتروني وSMS
- إعداد Webhooks للأحداث الفورية
- إنشاء شرائح العملاء للتسويق الموجَّه
- بناء قوالب البريد الإلكتروني للحملات المؤتمتة
الدعم
- دعم التكامل: [email protected]
- توثيق BigCommerce: developer.bigcommerce.com
- مرجع API: docs.tajo.io/api
- تواصل مع الدعم: /ar/contact