نظرة عامة
واجهة API لربط أي متجر على المنصة بأنظمة خارجية: نظام برق للرد الآلي، أنظمة المحاسبة والمخزون، Zapier / n8n، أو تطبيقاتك الخاصة.
https://stores.barq-wa.com/api/v1التوثيق والرموز
صاحب المتجر ينشئ الرموز من: لوحة المتجر ← الإعدادات ← رموز API. لكل رمز اسم وصلاحيات وتاريخ انتهاء اختياري، ويظهر مرة واحدة فقط عند إنشائه، ويمكن حذفه في أي وقت فيتوقف فوراً.
أرسل الرمز في كل طلب:
Authorization: Bearer stk_2_aBcD...
بديل: الهيدر X-Store-Token. لا تضع الرمز في الرابط أو في كود يعمل في المتصفح.
الصلاحيات
| الصلاحية | نقاط الاتصال |
|---|---|
store.read | GET /store GET /categories |
products.read | GET /products GET /products/{id} |
orders.read | GET /orders/{number} GET /customers/orders |
chat | POST /chat |
* | كل الصلاحيات (يُستخدم لرمز برق) |
الأخطاء والحدود
| الكود | المعنى |
|---|---|
401 | الرمز مفقود أو غير صحيح أو منتهي. |
402 | المتجر متوقف لانتهاء الاشتراك. |
403 | المتجر موقوف من الإدارة، أو الرمز لا يملك الصلاحية المطلوبة. |
404 | العنصر غير موجود (أو الطلب لا يطابق رقم الجوال). |
422 | خطأ في المدخلات — التفاصيل في errors. |
429 | تجاوز الحد: 300 طلب/دقيقة لكل متجر، و150 لـ /chat. |
{"status": false, "message": "Invalid or missing store API token."}
نقاط الاتصال
بيانات المتجر: الاسم، الرابط، الهاتف، البريد، العنوان، رمز العملة، طرق الدفع، إعدادات الشحن.
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, "...": "..." }
}
}
الأقسام الفعّالة.
{"data": [{"id": 3, "name": "أحذية", "slug": "shoes", "parent_id": null}]}
قائمة المنتجات الفعّالة مع الوصف والصور والسعر النهائي (بعد الخصم) والمخزون.
| المعامل | الوصف |
|---|---|
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}
}
منتج واحد مع المتغيرات (مثل المقاس واللون). 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"}
]}}
حالة طلب برقمه. 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 | مرفوض |
آخر 10 طلبات لرقم جوال (مفيد عندما يكتب العميل في واتساب "وين طلبي؟").
curl -X GET "https://stores.barq-wa.com/api/v1/customers/orders?phone=%2B970599000000" \
-H "Authorization: Bearer stk_XXXXXXXX" \
-H "Accept: application/json"
يستخدم محرك الرد الآلي الخاص بالمتجر (ردود مجانية أو ذكاء اصطناعي حسب إعدادات المتجر) ويحفظ المحادثة في سجل المتجر.
| الحقل | الوصف |
|---|---|
phone * | جوال العميل — يحدد المحادثة. |
message * | نص الرسالة (حتى 1000 حرف). |
name | اسم العميل. |
channel | whatsapp (افتراضي) | 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"}
| الحدث | متى |
|---|---|
| طلب جديد | عند اكتمال الطلب (الموقع أو التطبيق أو نقطة البيع) — للزبون، ولصاحب المتجر إن فُعّل. |
| تغيّر الحالة | تم التأكيد، في الطريق، تم التوصيل، ملغي، مرفوض. |
| تم الدفع | عند تحوّل حالة الدفع إلى «مدفوع». |
كل رسالة وحالتها (أُرسلت / فشلت وسبب الفشل) تظهر في سجل الرسائل في نفس الصفحة.