موصل WooCommerce

موصل WooCommerce

اربط متجر WooCommerce الخاص بك مع Brevo من خلال Tajo لمزامنة كاملة لبيانات التجارة الإلكترونية. استفد من WooCommerce REST API لمزامنة العملاء والطلبات والمنتجات وبيانات القسائم لحملات تسويقية مستهدفة وسير عمل آلي.

نظرة عامة

الخاصيةالقيمة
المنصةWooCommerce (WordPress)
الفئةالتجارة الإلكترونية
تعقيد الإعدادمتوسط
تكامل رسميلا
البيانات المُزامَنةعملاء، طلبات، منتجات، قسائم
المهارات المتاحة10

الميزات

  • مزامنة العملاء - مزامنة بيانات العملاء الآنية مع جهات اتصال Brevo
  • تتبع الطلبات - تتبع كامل لأحداث دورة حياة الطلبات لتدفقات ما بعد الشراء
  • مزامنة كتالوج المنتجات - مزامنة المنتجات والمتغيرات لتوصيات البريد الإلكتروني
  • إدارة القسائم - مزامنة رموز القسائم للحملات الترويجية
  • دعم Webhook - تحديثات آنية عبر webhooks WooCommerce
  • استرداد السلات المهجورة - تتبع واسترداد السلات المهجورة
  • دعم متعدد المواقع - ربط تثبيتات WordPress multisite لـ WooCommerce
  • حقول Meta المخصصة - ربط meta المخصصة في WooCommerce بسمات Brevo

المتطلبات الأساسية

قبل البدء، تأكد من توفر ما يلي:

  1. موقع WordPress مع إضافة WooCommerce مُثبَّتة ومُفعَّلة
  2. WooCommerce REST API مفعّلة (Settings > Advanced > REST API)
  3. مفتاح API Consumer Key وConsumer Secret مُولَّدَين
  4. يجب أن يستخدم موقعك HTTPS لمصادقة API
  5. حساب Brevo مع وصول إلى API
  6. حساب Tajo مع بيانات اعتماد API

المصادقة

مفاتيح REST API

يستخدم WooCommerce أزواج Consumer Key وConsumer Secret للمصادقة. ولِّدها في WooCommerce > Settings > Advanced > REST API.

OAuth 1.0a (مواقع HTTPS)

Terminal window
curl https://yourstore.com/wp-json/wc/v3/orders \
-u "consumer_key:consumer_secret"

مصادقة سلسلة الاستعلام (HTTPS)

Terminal window
curl "https://yourstore.com/wp-json/wc/v3/orders?consumer_key=ck_xxx&consumer_secret=cs_xxx"

مستويات الصلاحيات

الصلاحيةالوصول
Readعرض الموارد فقط
Writeإنشاء الموارد وتحريرها
Read/Writeوصول CRUD كامل

الإعداد

الإعداد الأساسي

connectors:
woocommerce:
enabled: true
store_url: "https://yourstore.com"
consumer_key: "ck_your_consumer_key"
consumer_secret: "cs_your_consumer_secret"
api_version: "wc/v3"
verify_ssl: true
# Data sync options
sync:
customers: true
orders: true
products: true
coupons: true
# Brevo list assignment
lists:
all_customers: 50
buyers: 51
abandoned_cart: 52

تعيين حقول العميل

ربط حقول عملاء WooCommerce بسمات Brevo:

customer_mapping:
email: email
first_name: FIRSTNAME
last_name: LASTNAME
billing.phone: SMS
billing.company: COMPANY
billing.city: CITY
billing.state: STATE
billing.country: COUNTRY
billing.postcode: ZIP
# E-commerce metrics (computed)
orders_count: ORDER_COUNT
total_spent: TOTAL_SPENT
date_created: SIGNUP_DATE
# Meta fields
meta_data.loyalty_points: LOYALTY_POINTS
meta_data.preferred_category: PREF_CATEGORY

إعداد Webhook

سجّل webhooks في WooCommerce > Settings > Advanced > Webhooks:

webhooks:
- topic: "customer.created"
event: "customer_created"
- topic: "customer.updated"
event: "customer_updated"
- topic: "order.created"
event: "order_placed"
- topic: "order.updated"
event: "order_updated"
- topic: "order.completed"
event: "order_fulfilled"
- topic: "order.refunded"
event: "order_refunded"
- topic: "coupon.created"
event: "coupon_created"
- topic: "product.created"
event: "product_added"
- topic: "product.updated"
event: "product_updated"

نقاط نهاية واجهة البرمجة

الطريقةنقطة النهايةالوصف
GET/wc/v3/customersسرد العملاء
POST/wc/v3/customersإنشاء عميل
GET/wc/v3/customers/{id}الحصول على عميل
PUT/wc/v3/customers/{id}تحديث عميل
GET/wc/v3/ordersسرد الطلبات
POST/wc/v3/ordersإنشاء طلب
GET/wc/v3/orders/{id}الحصول على طلب
GET/wc/v3/productsسرد المنتجات
GET/wc/v3/products/{id}الحصول على منتج
GET/wc/v3/products/{id}/variationsسرد متغيرات المنتج
GET/wc/v3/couponsسرد القسائم
GET/wc/v3/reports/salesالحصول على تقارير المبيعات
GET/wc/v3/reports/top_sellersالحصول على الأكثر مبيعًا
POST/wc/v3/webhooksإنشاء webhook

أمثلة على الكود

تهيئة موصل WooCommerce

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect WooCommerce store
await tajo.connectors.connect('woocommerce', {
storeUrl: 'https://yourstore.com',
consumerKey: process.env.WC_CONSUMER_KEY,
consumerSecret: process.env.WC_CONSUMER_SECRET
});

جلب ومزامنة العملاء

// جلب العملاء باستخدام WooCommerce REST API
const WooCommerce = require('@woocommerce/woocommerce-rest-api').default;
const api = new WooCommerce({
url: 'https://yourstore.com',
consumerKey: process.env.WC_CONSUMER_KEY,
consumerSecret: process.env.WC_CONSUMER_SECRET,
version: 'wc/v3'
});
// سرد العملاء مع التقسيم
const response = await api.get('customers', {
per_page: 100,
page: 1,
orderby: 'registered_date',
order: 'desc'
});
const customers = response.data;
// [{ id, email, first_name, last_name, billing, shipping, ... }]
// معلومات التقسيم من الترويسات
const totalPages = response.headers['x-wp-totalpages'];
const totalItems = response.headers['x-wp-total'];

التعامل مع أحداث Webhook

// WooCommerce webhook handler
app.post('/webhooks/woocommerce', async (req, res) => {
const topic = req.headers['x-wc-webhook-topic'];
const signature = req.headers['x-wc-webhook-signature'];
// التحقق من توقيع webhook
const expectedSignature = crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(JSON.stringify(req.body))
.digest('base64');
if (signature !== expectedSignature) {
return res.status(401).send('Invalid signature');
}
// إعادة التوجيه إلى Tajo
await tajo.connectors.handleWebhook('woocommerce', {
topic,
payload: req.body
});
res.status(200).send('OK');
});

العمليات المجمّعة

// إنشاء وتحديث وحذف المنتجات بالجملة
const batchResponse = await api.post('products/batch', {
create: [
{ name: 'New Product', type: 'simple', regular_price: '19.99' }
],
update: [
{ id: 123, regular_price: '24.99' }
],
delete: [456]
});

حدود المعدل

لا يفرض WooCommerce نفسه حدود معدل API، لكن خادم WordPress الأساسي ومزود الاستضافة قد يفرضان حدودًا:

العاملالحد النموذجيالتفاصيل
استضافة مشتركة50-100 طلب/دقيقةيختلف حسب المضيف
استضافة WP المُدارة200-500 طلب/دقيقةWP Engine، Kinsta، إلخ
استضافة ذاتيةلا يوجد حد صلبمحدود بموارد الخادم
لكل صفحة100 سجل كحد أقصىالافتراضي 10
العمليات المجمّعة100 عنصر/دفعةإنشاء، تحديث، أو حذف

أداء الخادم

قد تواجه متاجر WooCommerce الكبيرة استجابات API بطيئة. استخدم التقسيم، وحدّد الحقول باستخدام معامل _fields، وجدول المزامنات بالجملة خلال ساعات عدم الذروة.

استكشاف الأخطاء وإصلاحها

المشكلةالسببالحل
401 Unauthorizedمفاتيح API غير صالحةأعد توليد Consumer Key/Secret في إعدادات WooCommerce
403 Forbiddenصلاحيات غير كافيةاضبط مفتاح API على Read/Write
أخطاء شهادة SSLSSL غير صالح على الموقعتأكد من صلاحية شهادة SSL؛ اضبط verify_ssl: false للاختبار فقط
Webhooks لا تعملWordPress cron معطَّلفعّل WP-Cron أو اضبط cron على مستوى الخادم
استجابات API بطيئةقاعدة بيانات كبيرةحسّن قاعدة بيانات WordPress، استخدم معامل _fields
حقول مخصصة مفقودةبيانات Meta غير معروضةاستخدم حقل meta_data للوصول إلى meta المخصصة
مشاكل التقسيمحجم الصفحة الافتراضياضبط per_page صراحةً (الحد الأقصى 100)

أفضل الممارسات

  1. استخدم webhooks للمزامنة الآنية - اضبط webhooks WooCommerce بدلاً من استطلاع API
  2. تحقق من توقيعات webhook - تحقق دائمًا من ترويسة X-WC-Webhook-Signature
  3. قسّم جميع طلبات القائمة - استخدم معاملات page وper_page؛ تحقق من ترويسة X-WP-TotalPages
  4. استخدم معامل _fields - اطلب فقط الحقول اللازمة لتقليل حجم الاستجابة وتحسين الأداء
  5. العمليات المجمّعة - استخدم نقاط نهاية الدفعات لعمليات الإنشاء/التحديث/الحذف بالجملة (حتى 100 عنصر)
  6. جدولة المزامنات الكبيرة - شغّل المزامنات الكاملة الأولية خلال ساعات عدم الذروة لتجنب إجهاد الخادم
  7. فعّل HTTPS - يتطلب WooCommerce API بروتوكول HTTPS لمصادقة OAuth

الأمان

  • OAuth 1.0a - مصادقة آمنة عبر أزواج Consumer Key/Secret
  • توقيعات HMAC webhook - التحقق من توقيع SHA-256 لـ webhooks الواردة
  • HTTPS مطلوب - يتطلب API تشفير TLS للمصادقة
  • تحديد نطاق الصلاحيات - يمكن تعيين مفاتيح API على Read أو Write أو Read/Write
  • أمان WordPress - يستفيد من تحديثات أمان WordPress الأساسية
  • اعتبارات PCI - تُعالَج بيانات الدفع بواسطة بوابات دفع WooCommerce، ولا تُعرَض عبر API

موارد ذات صلة

Subscribe to updates

developer-docs

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

مساعد AI

مرحباً! اسألني أي شيء عن الوثائق.

ابدأ مجانًا مع Brevo