ملخص
تتيح لك واجهات برمجة تطبيقات BigCommerce إدارة المنتجات، الطلبات، العملاء، وعمليات المتجر بشكل برمجي وفعال. يمكنك المصادقة عبر رموز API أو OAuth، واستدعاء نقاط نهاية REST على api.bigcommerce.com، والتعامل مع Webhooks لتلقّي التحديثات الفورية. لاختبار عمليات التكامل ومشاركتها مع فريقك، استخدم Apidog لحفظ استدعاءات API والتحقق من صحة الاستجابات.
مقدمة
تدعم BigCommerce أكثر من 60,000 متجر إلكتروني. كل متجر يحتاج إلى تكامل مخصص: مزامنة مخزون، معالجة طلبات، إدارة عملاء، وتنفيذ عمليات دفع. هنا يأتي دور الـ APIs.
توفر المنصة ثلاث واجهات API رئيسية:
- Storefront API (للتجارة بدون واجهة أمامية)
- Management API (لإدارة الكواليس)
- Payments API (للمعاملات)
أغلب المطورين يتعاملون مع Management API لإدارة المنتجات، الطلبات، والعملاء.
غالبًا ما يكون التنقل بين وثائق المصادقة وWebhooks ومراجع API مربكًا. في هذا الدليل ستجد الخطوات العملية لإدارة المنتجات، الطلبات، العملاء، وWebhooks مع كيفية المصادقة واختبار عمليات التكامل قبل الإطلاق.
💡 إذا كنت تبني تكاملات لـ BigCommerce، سيساعدك Apidog على تصميم، اختبار، وتوثيق استدعاءات API بسهولة. احفظ الطلبات كمجموعات، استخدم متغيرات البيئة للمتاجر المختلفة، وتحكم في صحة الاستجابات. اكتشف الأخطاء مبكرًا قبل وصولها للعملاء الحقيقيين.
اختبر واجهات برمجة تطبيقات BigCommerce الخاصة بك باستخدام Apidog - مجانًا.
بنهاية الدليل ستكون قادرًا على:
- إعداد مصادقة BigCommerce
- إدارة المنتجات والمتغيرات والمخزون
- معالجة الطلبات وبيانات العملاء
- إعداد Webhooks للتحديثات الفورية
- اختبار وتوثيق عمليات التكامل باستخدام Apidog
المصادقة: الوصول إلى متجرك
الطريقة الأولى: رموز API (للتكاملات المخصصة)
لبناء اسكربت أو خدمة لمتجر واحد، استخدم رموز API.
خطوات إعداد حساب API:
- اذهب للوحة تحكم متجرك.
- الإعدادات ← حسابات API ← إنشاء حساب API.
- اختر "رمز API V3/V2".
- حدد النطاقات المطلوبة (منتجات، طلبات، عملاء، إلخ).
- احفظ بيانات الاعتماد.
تحصل على:
- عنوان URL للمتجر:
mystore.mybigcommerce.com - رمز الوصول:
abc123def456... - معرف العميل:
abc123... - سر العميل:
xyz789...
مثال استدعاء API:
curl -X GET "https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products" \
-H "X-Auth-Token: {access-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
store-hash هو الجزء بعد /stores/ في مسار API.
الطريقة الثانية: OAuth (لتطبيقات المتجر)
إذا كنت تطور تطبيقًا لسوق BigCommerce، استخدم OAuth.
تدفق OAuth:
- المستخدم يثبت التطبيق.
- BigCommerce يعيد التوجيه إلى عنوان callback مع رمز.
- خادمك يستبدل الرمز برمز وصول.
- خزّن الرمز لاستخدامه في استدعاءات API لاحقًا.
تبادل الرمز بالوصول:
const response = await fetch('https://login.bigcommerce.com/oauth2/token', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
client_id: process.env.BC_CLIENT_ID,
client_secret: process.env.BC_CLIENT_SECRET,
redirect_uri: 'https://yourapp.com/auth/callback',
grant_type: 'authorization_code',
code: authCode,
scope: 'store_v2_default store_v3_products'
})
})
const { access_token, context } = await response.json()
// استخدم access_token في استدعاءات API
// context يحتوي على store_hash
استخدام الرمز:
curl -X GET "https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products" \
-H "X-Auth-Token: {access-token}" \
-H "Content-Type: application/json"
إدارة المنتجات والكتالوج
سرد المنتجات
GET https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products
X-Auth-Token: {token}
Accept: application/json
استجابة نموذجية:
{
"data": [
{
"id": 174,
"name": "Plain T-Shirt",
"type": "physical",
"sku": "PLAIN-T",
"price": 29.99,
"sale_price": 24.99,
"inventory_level": 150,
"inventory_tracking": "product",
"is_visible": true,
"categories": [23, 45],
"brand_id": 12
}
],
"meta": {
"pagination": {
"total": 500,
"count": 50,
"page": 1,
"per_page": 50
}
}
}
إنشاء منتج
POST https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products
X-Auth-Token: {token}
Content-Type: application/json
{
"name": "Premium Hoodie",
"type": "physical",
"sku": "HOODIE-PREM",
"price": 79.99,
"description": "Premium cotton blend hoodie",
"weight": 1.5,
"width": 20,
"height": 28,
"depth": 2,
"inventory_level": 100,
"inventory_tracking": "product",
"is_visible": true,
"categories": [23]
}
تحديث متغيرات المنتج
PUT https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products/{product-id}/variants/{variant-id}
X-Auth-Token: {token}
Content-Type: application/json
{
"sku": "HOODIE-PREM-BLK-M",
"price": 79.99,
"inventory_level": 50,
"option_values": [
{
"option_display_name": "Color",
"label": "Black"
},
{
"option_display_name": "Size",
"label": "Medium"
}
]
}
إدارة المخزون
تحديث مستوى المنتج:
PUT https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products/{product-id}
X-Auth-Token: {token}
Content-Type: application/json
{
"inventory_level": 75
}
تحديث مخزون متغير:
PUT https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products/{product-id}/variants/{variant-id}
Content-Type: application/json
{
"inventory_level": 25
}
الطلبات والتسليم
سرد الطلبات
GET https://api.bigcommerce.com/stores/{store-hash}/v2/orders
X-Auth-Token: {token}
Accept: application/json
استجابة نموذجية:
[
{
"id": 115,
"status": "Awaiting Fulfillment",
"status_id": 11,
"customer_id": 45,
"date_created": "2026-03-24T10:30:00+00:00",
"subtotal_ex_tax": 149.99,
"total_inc_tax": 162.49,
"items_total": 2,
"items_shipped": 0,
"shipping_address": {
"first_name": "John",
"last_name": "Doe",
"street_1": "123 Main St",
"city": "Austin",
"state": "Texas",
"zip": "78701",
"country": "United States"
}
}
]
الحصول على تفاصيل الطلب
GET https://api.bigcommerce.com/stores/{store-hash}/v2/orders/{order-id}
X-Auth-Token: {token}
الحصول على منتجات الطلب
GET https://api.bigcommerce.com/stores/{store-hash}/v2/orders/{order-id}/products
X-Auth-Token: {token}
تحديث حالة الطلب
PUT https://api.bigcommerce.com/stores/{store-hash}/v2/orders/{order-id}
X-Auth-Token: {token}
Content-Type: application/json
{
"status_id": 12
}
معرفات شائعة:
- 0: غير مكتمل
- 11: بانتظار التسليم
- 12: مكتمل
- 5: ملغي
- 4: مسترد
إنشاء شحنة (تسليم)
POST https://api.bigcommerce.com/stores/{store-hash}/v2/orders/{order-id}/shipments
X-Auth-Token: {token}
Content-Type: application/json
{
"tracking_number": "1Z999AA10123456784",
"carrier": "UPS",
"shipping_method": "UPS Ground",
"items": [
{
"order_product_id": 234,
"quantity": 1
}
]
}
العملاء والتجزئة
سرد العملاء
GET https://api.bigcommerce.com/stores/{store-hash}/v3/customers
X-Auth-Token: {token}
Accept: application/json
استجابة نموذجية:
{
"data": [
{
"id": 45,
"email": "john.doe@example.com",
"first_name": "John",
"last_name": "Doe",
"company": "Acme Corp",
"phone": "512-555-1234",
"customer_group_id": 1,
"notes": "VIP customer",
"tax_exempt_category": "",
"date_created": "2025-11-15T09:30:00+00:00",
"date_modified": "2026-03-20T14:22:00+00:00"
}
]
}
إنشاء عميل
POST https://api.bigcommerce.com/stores/{store-hash}/v3/customers
X-Auth-Token: {token}
Content-Type: application/json
{
"email": "jane.smith@example.com",
"first_name": "Jane",
"last_name": "Smith",
"phone": "512-555-5678",
"customer_group_id": 2
}
تحديث العميل
PUT https://api.bigcommerce.com/stores/{store-hash}/v3/customers/{customer-id}
X-Auth-Token: {token}
Content-Type: application/json
{
"notes": "Repeat customer - priority support",
"customer_group_id": 3
}
Webhooks للتحديثات الفورية
Webhooks ترسل إشعارات لتطبيقك عند حدوث أحداث بالمتجر، ما يلغي الحاجة للاستعلام الدوري.
إنشاء Webhook
POST https://api.bigcommerce.com/stores/{store-hash}/v3/hooks
X-Auth-Token: {token}
Content-Type: application/json
{
"scope": "store/order/created",
"destination": "https://yourapp.com/webhooks/orders",
"is_active": true
}
أمثلة النطاقات:
-
store/order/created- طلب جديد -
store/order/updated- تحديث حالة الطلب -
store/order/archived- أرشفة الطلب -
store/product/created- إضافة منتج -
store/product/updated- تعديل منتج -
store/product/deleted- حذف منتج -
store/customer/created- عميل جديد -
store/inventory/updated- تحديث المخزون
التحقق من توقيعات Webhook
تحقق من التوقيع لضمان أصالة Webhook:
import crypto from 'crypto'
function verifyWebhook(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex')
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
)
}
app.post('/webhooks/orders', (req, res) => {
const signature = req.headers['x-bc-webhook-signature']
const payload = JSON.stringify(req.body)
if (!verifyWebhook(payload, signature, process.env.BC_CLIENT_SECRET)) {
return res.status(401).send('Invalid signature')
}
// معالجة الـ webhook
console.log('تم إنشاء الطلب:', req.body.data.id)
res.status(200).send('OK')
})
اختبار واجهات برمجة تطبيقات BigCommerce باستخدام Apidog
تتطلب APIs من BigCommerce رؤوسًا موحدة ومصادقة دقيقة. يوفر Apidog بيئة متقدمة لاختبار وتوثيق هذه العمليات.
1. إعداد البيئة
أنشئ بيئات منفصلة لكل متجر:
# متجر الإنتاج
STORE_HASH: abc123
ACCESS_TOKEN: xyz789
BASE_URL: https://api.bigcommerce.com/stores/abc123
# متجر التجربة
STORE_HASH: staging456
ACCESS_TOKEN: staging_token
BASE_URL: https://api.bigcommerce.com/stores/staging456
2. سكربتات ما قبل الطلب
لإضافة رؤوس المصادقة تلقائيًا:
pm.request.headers.add({
key: 'X-Auth-Token',
value: pm.environment.get('ACCESS_TOKEN')
})
pm.request.headers.add({
key: 'Accept',
value: 'application/json'
})
3. التحقق من صحة الاستجابات
تأكد أن المنتجات تحتوي الحقول المطلوبة:
pm.test('يجب أن تحتوي المنتجات على الحقول المطلوبة', () => {
const response = pm.response.json()
response.data.forEach(product => {
pm.expect(product).to.have.property('id')
pm.expect(product).to.have.property('name')
pm.expect(product).to.have.property('price')
pm.expect(product.price).to.be.above(0)
})
})
pm.test('الترقيم يعمل', () => {
const response = pm.response.json()
pm.expect(response.meta.pagination).to.have.property('total')
pm.expect(response.meta.pagination.page).to.eql(1)
})
اختبر واجهات برمجة تطبيقات BigCommerce باستخدام Apidog - مجانًا
الأخطاء الشائعة والإصلاحات
401 غير مصرح به
السبب: رمز وصول غير صالح أو مفقود.
الإصلاح:
- تحقق من وجود رأس
X-Auth-Token. - تأكد أن الرمز لم يُلغى.
- تحقق من صلاحيات حساب API.
403 ممنوع
السبب: الرمز صالح لكن يفتقر للنطاق المطلوب.
الإصلاح:
- تحقق من أذونات API.
- أضف النطاق اللازم.
- أنشئ رمز جديد بأذونات موسعة.
404 غير موجود
السبب: نقطة نهاية أو معرف مورد غير صحيح.
الإصلاح:
- تأكد من صحة store hash.
- تحقق من إصدار API في العنوان (V2 أو V3).
- تأكد من وجود معرف المورد.
429 عدد كبير من الطلبات
السبب: تجاوز حد المعدل.
الإصلاح: المنتجات: 10,000/ساعة. الطلبات: 30,000/ساعة. راقب رأس X-Rate-Limit-Remaining وطبّق backoff.
async function callWithBackoff(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fn()
if (response.status === 429) {
const retryAfter = response.headers.get('X-Rate-Limit-Reset')
await new Promise(r => setTimeout(r, retryAfter * 1000))
} else {
return response
}
}
}
422 كيان غير قابل للمعالجة
السبب: خطأ في صحة البيانات.
الإصلاح: تحقق من الاستجابة:
{
"errors": {
"price": "Price must be greater than zero",
"sku": "SKU already exists"
}
}
البدائل والمقارنات
| الميزة | BigCommerce | Shopify | WooCommerce |
|---|---|---|---|
| إصدار API | V2 و V3 | REST و GraphQL | REST |
| حدود المعدل | 10-30 ألف/ساعة | 2/دقيقة | يعتمد على الاستضافة |
| Webhooks | نعم | نعم | نعم (إضافة) |
| GraphQL | لا | نعم | لا |
| جودة SDK | جيد | ممتاز | PHP فقط |
| متعدد المتاجر | نعم | لا | لا |
V3 API من BigCommerce أكثر اتساقًا من Shopify، بينما يوفر Shopify مرونة استعلام أكبر عبر GraphQL.
حالات الاستخدام الواقعية
- مزامنة المخزون متعددة القنوات: استخدم Products API لمزامنة المخزون بين BigCommerce، Amazon، والمتاجر الفعلية، وجرّب نقاط النهاية باستخدام Apidog قبل كل نشر.
- أتمتة الطلبات: استخدم Webhooks لتفعيل التسليم عند إنشاء طلب. حدّث أرقام التتبع عبر Orders API. قوائم الانتقاء تصل للمستودع تلقائيًا عبر Webhook.
- تجزئة العملاء: استخدم Customers API لتقسيم العملاء اعتمادًا على سجل الشراء. أضف عملاء VIP إلى مجموعة أسعار خاصة. نفّذ التكامل أسبوعيًا عبر مهمة مجدولة.
الخاتمة
ملخص ما تعلمته:
- المصادقة تتم عبر رموز API أو OAuth.
- V3 Catalog API لإدارة المنتجات والمتغيرات.
- V2 Orders API لمعالجة الطلبات والتسليم.
- V3 Customers API لإدارة بيانات العملاء.
- Webhooks تدفع التحديثات الفورية.
- استخدم Apidog لاختبار وتوثيق التكاملات بموثوقية.
خطوات عملية:
- أنشئ حساب API في BigCommerce.
- نفّذ أول استدعاء API لسرد المنتجات.
- أضف Webhook لإنشاء الطلبات.
- احفظ استدعاءاتك في Apidog.
- ابنِ تكاملاتك.
اختبر واجهات برمجة تطبيقات BigCommerce باستخدام Apidog - مجانًا
الأسئلة الشائعة
ما الفرق بين V2 و V3؟
V3 أحدث وأكثر اتساقًا (منتجات، فئات، عملاء)، بينما V2 للطلبات فقط. ستحتاج غالبًا لكليهما.
كيف أجد store hash؟
من عنوان URL لإدارة متجرك:
https://store-abc123.mybigcommerce.com/manage
الجزء abc123 هو store hash.
هل يمكنني استخدام API على متجر تجريبي؟
نعم، بميزات كاملة، مثالي للتطوير.
ما حد المعدل؟
منتجات: 10,000/ساعة.
طلبات: 30,000/ساعة.
تحقق من X-Rate-Limit-Remaining في كل استجابة.
كيف أتعامل مع الترقيم؟
استخدم معلمات page وlimit. تحقق من meta.pagination:
let allProducts = []
let page = 1
while (true) {
const response = await fetch(
`${baseUrl}/v3/catalog/products?page=${page}&limit=100`,
{ headers: { 'X-Auth-Token': token } }
)
const data = await response.json()
allProducts.push(...data.data)
if (page >= data.meta.pagination.total_pages) break
page++
}
هل يمكنني تحميل صور المنتجات؟
نعم:
POST https://api.bigcommerce.com/stores/{store-hash}/v3/catalog/products/{product-id}/images
Content-Type: application/json
{
"image_url": "https://example.com/image.jpg",
"is_thumbnail": true
}
كيف أتعامل مع العملات والمتاجر المتعددة؟
كل متجر له عملة أساسية. العملات المتعددة تدار عبر واجهة المتجر فقط. لإدارة متاجر متعددة، أنشئ حسابات API منفصلة واستخدم بيئات مختلفة في Apidog.
ماذا لو فشل Webhook؟
BigCommerce تعيد المحاولة بتراجع أسي. بعد 5 محاولات فاشلة خلال 24 ساعة، يتم تعطيل Webhook. راقب نقاط النهاية وتلقّى تنبيهات عند الفشل.

Top comments (0)