نظرة عامة

واجهة API لربط أي متجر على المنصة بأنظمة خارجية: نظام برق للرد الآلي، أنظمة المحاسبة والمخزون، Zapier / n8n، أو تطبيقاتك الخاصة.

الرابط الأساسي: https://stores.barq-wa.com/api/v1
نفس الرابط لكل المتاجر — الرمز (Token) هو الذي يحدد المتجر. جميع الردود JSON بترميز UTF-8.

التوثيق والرموز

صاحب المتجر ينشئ الرموز من: لوحة المتجر ← الإعدادات ← رموز API. لكل رمز اسم وصلاحيات وتاريخ انتهاء اختياري، ويظهر مرة واحدة فقط عند إنشائه، ويمكن حذفه في أي وقت فيتوقف فوراً.

أرسل الرمز في كل طلب:

Authorization: Bearer stk_2_aBcD...

بديل: الهيدر X-Store-Token. لا تضع الرمز في الرابط أو في كود يعمل في المتصفح.

الصلاحيات

الصلاحيةنقاط الاتصال
store.readGET /store GET /categories
products.readGET /products GET /products/{id}
orders.readGET /orders/{number} GET /customers/orders
chatPOST /chat
*كل الصلاحيات (يُستخدم لرمز برق)

الأخطاء والحدود

الكودالمعنى
401الرمز مفقود أو غير صحيح أو منتهي.
402المتجر متوقف لانتهاء الاشتراك.
403المتجر موقوف من الإدارة، أو الرمز لا يملك الصلاحية المطلوبة.
404العنصر غير موجود (أو الطلب لا يطابق رقم الجوال).
422خطأ في المدخلات — التفاصيل في errors.
429تجاوز الحد: 300 طلب/دقيقة لكل متجر، و150 لـ /chat.
{"status": false, "message": "Invalid or missing store API token."}

نقاط الاتصال

store.read/storeGET

بيانات المتجر: الاسم، الرابط، الهاتف، البريد، العنوان، رمز العملة، طرق الدفع، إعدادات الشحن.

curl -X GET "https://stores.barq-wa.com/api/v1/store" \
  -H "Authorization: Bearer stk_XXXXXXXX" \
  -H "Accept: application/json"
{
  "data": {
    "id": 2, "name": "متجر الأمل", "url": "https://amal.example.com",
    "email": "owner@amal.com", "phone": "+970 599000000", "address": "الخليل",
    "currency_symbol": "$", "cash_on_delivery": true, "online_payment": false,
    "shipping": { "shipping_setup_method": 10, "...": "..." }
  }
}
store.read/categoriesGET

الأقسام الفعّالة.

{"data": [{"id": 3, "name": "أحذية", "slug": "shoes", "parent_id": null}]}
products.read/productsGET

قائمة المنتجات الفعّالة مع الوصف والصور والسعر النهائي (بعد الخصم) والمخزون.

المعاملالوصف
searchبحث ذكي بالاسم أو SKU (عربي/إنجليزي) — يرجع أفضل النتائج مرتبة بدون ترقيم.
category_idتصفية حسب القسم.
updated_sinceتاريخ — للمزامنة: فقط المنتجات المعدّلة بعده.
page, per_pageالترقيم (الافتراضي 20، الأقصى 100).
curl -X GET "https://stores.barq-wa.com/api/v1/products?per_page=50&page=1" \
  -H "Authorization: Bearer stk_XXXXXXXX" \
  -H "Accept: application/json"
{
  "data": [{
    "id": 12, "name": "حذاء رياضي أسود", "sku": "SH-12", "slug": "black-sneakers",
    "price": "45.00", "price_text": "$45.00", "old_price": "60.00", "old_price_text": "$60.00",
    "in_stock": true, "stock": 14,
    "image": "https://.../thumb.png", "images": ["https://.../shoe.png"],
    "url": "https://amal.example.com/product/black-sneakers", "category_id": 3,
    "description": "...", "shipping_and_return": "..."
  }],
  "meta": {"total": 120, "current_page": 1, "last_page": 3, "per_page": 50}
}
products.read/products/{id}GET

منتج واحد مع المتغيرات (مثل المقاس واللون). parent_id يربط المتغيرات المتداخلة (مثال: لون ← مقاس).

curl -X GET "https://stores.barq-wa.com/api/v1/products/12" \
  -H "Authorization: Bearer stk_XXXXXXXX" \
  -H "Accept: application/json"
{"data": { "...": "نفس حقول المنتج", "variations": [
  {"id": 7, "parent_id": null, "attribute": "اللون", "name": "أسود", "price": 45, "sku": "SH-12-BL"},
  {"id": 8, "parent_id": 7, "attribute": "المقاس", "name": "42", "price": 45, "sku": "SH-12-BL-42"}
]}}
orders.read/orders/{number}?phone=GET

حالة طلب برقمه. phone إلزامي ويجب أن يطابق جوال صاحب الطلب (آخر 8 أرقام) لحماية بيانات العملاء.

curl -X GET "https://stores.barq-wa.com/api/v1/orders/2710251?phone=0599000000" \
  -H "Authorization: Bearer stk_XXXXXXXX" \
  -H "Accept: application/json"
{"data": {
  "id": 51, "serial": "2710251", "status": 7, "status_text": "في الطريق إليك",
  "payment_status": "unpaid", "total": "52.00", "total_text": "$52.00",
  "date": "2026-10-27 18:19:06", "url": "https://amal.example.com/account/order-details/51"
}}
statusالمعنى
1قيد المراجعة
5تم التأكيد
7في الطريق
10تم التوصيل
15ملغي
20مرفوض
orders.read/customers/orders?phone=GET

آخر 10 طلبات لرقم جوال (مفيد عندما يكتب العميل في واتساب "وين طلبي؟").

curl -X GET "https://stores.barq-wa.com/api/v1/customers/orders?phone=%2B970599000000" \
  -H "Authorization: Bearer stk_XXXXXXXX" \
  -H "Accept: application/json"
chat/chatPOST

يستخدم محرك الرد الآلي الخاص بالمتجر (ردود مجانية أو ذكاء اصطناعي حسب إعدادات المتجر) ويحفظ المحادثة في سجل المتجر.

الحقلالوصف
phone *جوال العميل — يحدد المحادثة.
message *نص الرسالة (حتى 1000 حرف).
nameاسم العميل.
channelwhatsapp (افتراضي) | facebook | instagram | api
curl -X POST "https://stores.barq-wa.com/api/v1/chat" \
  -H "Authorization: Bearer stk_XXXXXXXX" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+970599000000","name":"محمد","message":"عندكم حذاء رياضي؟"}'
{"data": {
  "reply": "وجدت لك هذه المنتجات:\n• حذاء رياضي أسود — $45.00",
  "products": [{ "id": 12, "name": "حذاء رياضي أسود", "price_text": "$45.00", "url": "..." }],
  "order": null, "source": "rules", "message_id": 120
}}

رسائل واتساب عبر برق (من المتجر إلى برق)

يضبطها صاحب المتجر من: الإعدادات ← الرد الآلي ← الربط مع برق بلصق رابط الويب هوك وWebhook Secret اللذين ينشئهما برق للعميل (المتجر). عند كل حدث يكتب المتجر نص الرسالة ويرسل:

POST https://barq.example.com/.../webhooks_clients/incoming.php?key=wh_xxxx
Content-Type: application/json
X-Webhook-Secret: whsec_xxxx

{"to": "970599000000", "message": "…", "media_type": "text", "external_reference": "store2_order51_order_created"}
الحدثمتى
طلب جديدعند اكتمال الطلب (الموقع أو التطبيق أو نقطة البيع) — للزبون، ولصاحب المتجر إن فُعّل.
تغيّر الحالةتم التأكيد، في الطريق، تم التوصيل، ملغي، مرفوض.
تم الدفععند تحوّل حالة الدفع إلى «مدفوع».

كل رسالة وحالتها (أُرسلت / فشلت وسبب الفشل) تظهر في سجل الرسائل في نفس الصفحة.