الانتقال إلى المحتوى
boutoraMatajirمتاجر

REST API ‏/api/v1

قراءة المنتجات والمخزون والطلبات والعملاء ونقاط Webhooks وتعديلها. مبالغ صحيحة بأصغر وحدة، وتواريخ ISO 8601 بتوقيت UTC، وCORS مغلق: الواجهة مصممة لخوادمك.

الموارد

  • GET /products, /products/{id}catalog:read
  • POST, PATCH /products, /products/{id}catalog:write
  • POST /inventory/adjustmentsinventory:write
  • GET /orders, /orders/{id}orders:read
  • POST /orders/{id}/transitionsorders:write
  • GET /customers, /customers/{id}customers:read
  • GET, POST, DELETE /webhooks, /webhooks/{id}webhooks:write

الترقيم عبر ?limit=1..100 و ?cursor=، مع ترتيب ثابت من الأحدث إلى الأقدم. تنفّذ عمليات الكتابة قواعد العمل نفسها في لوحة التاجر تمامًا: حصص الباقة، ومخزون لا ينزل تحت الصفر، وانتقالات طلبات مضبوطة، وسجل تدقيق.

TOKEN=axi_live_…
BASE=https://16-192-144-250.nip.io/api/v1

curl -s "$BASE/orders?status=NEW,CONFIRMED" \
  -H "Authorization: Bearer $TOKEN"

curl -s -X POST "$BASE/products" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Bissap 1 L","price":1500}'

تحمل كل استجابة Axi-Api-Version و X-Request-Id.

  • رمز حامل، والمتجر مستنتَج

    Authorization: Bearer axi_live_… يُستمد المتجر من الرمز: لا يوجد أي معامل يسمح باستهداف متجر آخر.

  • النطاق الفعلي

    صلاحيات الرمز مقاطَعة مع باقتك ودور منشئه، ويُعاد حسابها مع كل طلب.

  • منع التكرار إلزامي على POST

    يُحفظ Idempotency-Key لمدة 24 ساعة: الطلب نفسه يعيد الاستجابة المحفوظة بدل تنفيذه مرتين.

  • أخطاء RFC 9457

    application/problem+json برمز ثابت، والصلاحية المطلوبة، وrequest_id يُرسل إلى الدعم.

الوصول إلى REST API وعدد نقاط Webhooks حسب الباقة
الباقةREST APIWebhooks
Starterغير مشمولةغير مشمولة
Businessقراءة فقط (GET)نقطتان
Scaleقراءة وكتابة10 نقاط
Enterpriseقراءة وكتابةغير محدودة

Webhooks صادرة موقّعة

تستدعي Boutora خادمك عند كل حدث. حمولة في حدها الأدنى، وتوقيع HMAC، وإعادة محاولة حتى 24 ساعة، وتحقق من SSRF قبل كل إرسال.

الأحداث

الطلبات
order.createdorder.updatedorder.status_changedorder.paidorder.refundedorder.cancelled
الكتالوج
product.createdproduct.updatedproduct.deletedinventory.updated
العملاء وخدمة ما بعد البيع
customer.createdcustomer.updatedreturn.createdreturn.status_changedgiftcard.issued
الخدمة
app.ping
Axi-Event: order.created
Axi-Webhook-Id: evt_3f2a…
Axi-Signature: t=1760184000,v1=5f2b…

v1 = hex(HMAC-SHA256(secret, t + "." + raw_body))
  • أعِد استجابة 2xx في أقل من 10 ثوانٍ، وعالِج في الخلفية.
  • إعادة المحاولة بعد دقيقة، ثم 5 دقائق، ثم 30 دقيقة، ثم ساعتين، ثم 6 ساعات، ثم 12 ساعة، ثم 24 ساعة.
  • أزِل التكرار اعتمادًا على Axi-Webhook-Id: التسليم مضمون مرة واحدة على الأقل.
  • تدوير السر: يُرسل توقيعان لمدة 24 ساعة.
  • HTTPS فقط، وتُرفض العناوين الخاصة والأسماء الداخلية.

44 أداة MCP لإدارة متجر.

تتحقق كل أداة من صلاحية الرمز وحدود الباقة، ولا ترى إلا متجرًا واحدًا. ويُسجَّل كل تعديل في سجل التدقيق.

المتجر

  • get_store_overview

    الهوية والباقة والعملة والأرقام الرئيسية: مبيعات اليوم وآخر 7 و30 يومًا، ومتوسط السلة، والطلبات قيد المعالجة، والأكثر مبيعًا.

    قراءة
  • list_webhook_deliveries

    عمليات تسليم Webhooks الصادرة: الحالة والمحاولات ورمز HTTP والخطأ؛ مع التصفية حسب النقطة والحالة والحدث.

    قراءة
  • list_saved_sections

    أقسام القالب المحفوظة: الاسم والنوع والصفحات المتوافقة والاستخدام وحد الباقة.

    قراءة
  • get_tax_settings

    الإعدادات الضريبية: تحصيل الضريبة من عدمه، والأسعار الشاملة أو غير الشاملة، والنظام، والهوية الضريبية، والنسب حسب البلد والفئة، والفواتير الصادرة.

    قراءة

الكتالوج

  • search_products

    بحث بالنص أو الحالة أو الوسم أو المجموعة، مع ترقيم الصفحات.

    قراءة
  • get_product

    بطاقة كاملة: المتغيرات والخيارات والإضافات والمخزون والمجموعات.

    قراءة
  • create_product

    ينشئ منتجًا، كمسودة افتراضيًا، ضمن حدود الباقة.

    كتابة
  • update_product

    العنوان والوصف والسعر والتخفيض والحالة والوسوم والمجموعات.

    كتابة
  • update_variant_price_stock

    سعر متغير ومستوى مخزونه، مع حفظ السجل.

    كتابة
  • list_collections

    المجموعات اليدوية والتلقائية مع عدد منتجاتها.

    قراءة
  • add_products_to_collection

    يضيف منتجات إلى مجموعة يدوية.

    كتابة
  • get_catalog_sync_status

    كتالوج واتساب / Meta: روابط الخلاصات، وحالة المزامنة، والمنتجات التي رفضتها Meta وسبب الرفض.

    قراءة
  • trigger_catalog_sync

    يبدأ مزامنة كاملة لكتالوج واتساب (6 مرات في الساعة كحد أقصى).

    كتابة
  • set_metafield

    يملأ حقلًا مخصصًا (معرّفًا في Boutora) لمنتج أو متغير أو مجموعة، أو يمحوه؛ مع التحقق من القيمة حسب نوعها.

    كتابة
  • list_product_files

    ملفات منتج رقمي مبيع: الاسم والحجم والنوع والإصدار. دون أي مفتاح تخزين أو رابط.

    قراءة

المخزون

  • adjust_inventory

    إدخال أو إخراج من المخزون مع ذكر السبب، دون النزول تحت الصفر.

    كتابة
  • list_low_stock

    المنتجات النافدة والمنخفضة المخزون، من الأكثر إلحاحًا إلى الأقل.

    قراءة
  • list_locations

    المستودعات والمتاجر ونقاط الاستلام: الدور، وإمكانية الاستلام، وعدد المنتجات المخزّنة.

    قراءة
  • get_inventory_levels

    المخزون في كل موقع وإجمالي مخزون كل منتج متابَع، مع الإشارة إلى الفروقات والبيع الزائد.

    قراءة
  • transfer_stock

    ينقل وحدات من موقع إلى آخر (دون تغيير الإجمالي)؛ يلزم التأكيد لأكثر من 50 وحدة.

    كتابة

الطلبات

  • list_orders

    الطلبات مصفّاة حسب الحالة أو الدفع أو الفترة أو المرجع.

    قراءة
  • get_order

    التفاصيل والدفع والسجل والحالات التالية الممكنة.

    قراءة
  • update_order_status

    يتقدّم بالطلب وفق دورة حياة الطلب في Boutora (مع تحديث المخزون وإشعار العميل).

    كتابة
  • add_order_note

    ملاحظة داخلية في السجل، لا يراها العميل أبدًا.

    كتابة
  • list_digital_downloads

    صلاحيات تنزيل المنتجات الرقمية: التنزيلات المستخدمة والحد وتاريخ الانتهاء وآخر تنزيل. دون أي رابط أو رمز.

    قراءة
  • create_shipment

    ينشئ شحنة، ولو جزئية، مع مندوب داخلي أو شركة شحن، ورمز التسليم الذي يُعطى للمشتري.

    كتابة
  • update_shipment_status

    يتقدّم بالشحنة عبر الانتقالات المسموح بها فقط؛ والشحنة التي انطلقت لا تُلغى.

    كتابة

العملاء

  • list_customers

    العملاء مع طلباتهم والمبلغ المنفق وآخر زيارة.

    قراءة
  • get_customer

    بيانات التواصل وموافقة واتساب والولاء والسجل.

    قراءة

التسويق

  • create_discount_code

    كود خصم بنسبة مئوية أو بمبلغ ثابت أو بتوصيل مجاني، مع تاريخ صلاحية.

    كتابة
  • list_discount_codes

    أكواد الخصم وصلاحيتها وعدد مرات استخدامها.

    قراءة
  • list_automatic_discounts

    الخصومات التلقائية (الباقات، اشترِ 2 واحصل على 1 مجانًا، الشرائح)، مع ملخص في جملة والحالة.

    قراءة
  • create_automatic_discount

    ينشئ خصمًا تلقائيًا؛ يلزم التأكيد إذا تجاوز 50% أو متوسط السلة أو كان باقة بنصف السعر.

    كتابة
  • set_automatic_discount_active

    يفعّل خصمًا تلقائيًا أو يعطّله.

    كتابة
  • list_blog_posts

    مقالات المدونة: الحالة (المجدول الذي حلّ موعده = منشور)، والتاريخ، والتصنيف، والوسوم، والعنوان العام.

    قراءة
  • create_blog_post

    ينشئ مسودة مقال (لا تُنشر أبدًا) بصيغة Markdown محدودة ودون صور؛ ضمن حصة المقالات في الباقة.

    كتابة

بطاقات الهدايا

  • list_gift_cards

    بطاقات الهدايا ورصيدها وحالتها؛ آخر 4 أحرف من الكود فقط.

    قراءة
  • issue_gift_card

    يُصدر بطاقة هدية (التأكيد مطلوب دائمًا)؛ ولا يُعاد الكود إلى المساعد أبدًا.

    كتابة
  • grant_store_credit

    يضيف رصيدًا إلى حساب عميل مع ذكر السبب (التأكيد مطلوب دائمًا، ويتطلب أيضًا customers:read).

    كتابة

المرتجعات

  • list_returns

    طلبات الإرجاع حسب الحالة، مع فصل نصوص المشتري.

    قراءة
  • get_return

    تفاصيل الإرجاع: المنتجات والسبب والمبالغ والسجل والحالات التالية.

    قراءة
  • update_return_status

    يوافق على الإرجاع أو يرفضه (مع السبب) أو يلغيه أو يستلمه أو يسوّيه وفق دورة حياته.

    كتابة

التحليلات

  • sales_report

    المبيعات حسب اليوم أو الأسبوع أو المنتج، مقارنة بالفترة السابقة.

    قراءة
  • pos_daily_report

    مبيعات اليوم في نقطة البيع: العدد ورقم المعاملات ووسائل الدفع والنقد المتوقع والمعدود وفروقات الأسعار دون اتصال.

    قراءة

اطلب، والمساعد ينفّذ.

يقرأ بياناتك الحقيقية في Boutora، ويقترح، ثم لا ينفّذ إلا بالصلاحيات التي منحتها له.

  • «ما المنتجات النافدة؟»

    قائمة بالمنتجات النافدة، في ضوء مبيعاتك هذا الشهر.

  • «أنشئ كود خصم بنسبة 10% لعطلة نهاية الأسبوع.»

    تم إنشاء الكود بمدته وحد استخدامه، مع رسالة جاهزة للإرسال.

  • «لخّص مبيعات هذا الأسبوع.»

    تطور رقم المعاملات، ومتوسط السلة، والطلبات التي يجب تجهيزها أولًا.

  • «انقل الطلب AX-7K3P9Q إلى «قيد التجهيز».»

    طُبّق الانتقال عبر آلة الحالات، وأُبلغ العميل.

إجابات توضيحية: لكل مساعد أسلوبه في الصياغة.

مع المساعد الذي تستخدمه أصلًا.

عنوان واحد فقط عليك تذكّره: 16-192-144-250.nip.io/api/mcp.

  • Claude.ai

    موصل مخصص، واتصال بنقرة واحدة (OAuth 2.1 + PKCE)

    ابتداءً من Business

  • ChatGPT

    وضع المطوّر، وموصل MCP مع OAuth

    ابتداءً من Business

  • Claude Desktop وClaude Code

    رمز API، وأمر واحد للصق

    جميع الباقات

  • Cursor وVS Code وWindsurf

    ملف mcp.json مع رمزك

    جميع الباقات

  • وكلاؤك وأتمتتك

    أي عميل MCP عبر HTTP: n8n وMake والسكربتات الخاصة

    جميع الباقات

واجهة متجر عامة يقرؤها الذكاء الاصطناعي.

يمكن لكل متجر منشور أن يفتح كتالوجه للمساعدات الذكية: تعثر على المنتجات، وتتحقق من التوفر والتوصيل، ثم تجهّز سلة يؤكدها المشتري بنفسه.

  • get_store_info

    التعريف بالمتجر، ومواعيد العمل، وجهة الاتصال عبر واتساب، والتوصيل، والمدفوعات، والشروط.

  • search_catalog

    المنتجات المعروضة للبيع، وأسعارها الحالية، وتوفّرها.

  • get_product

    البطاقة العامة: المتغيرات والإضافات والصور.

  • check_availability

    يتحقق من إمكانية طلب سلة الآن.

  • get_delivery_options

    مناطق التوصيل ورسومه، ومواعيد الاستلام.

  • create_checkout_link

    يجهّز سلة: يفتح المشتري الرابط ويؤكد طلبه بنفسه.

POST /api/mcp/store/{slug}
GET  /s/{slug}/llms.txt

دون مصادقة، ومحدودة حسب عنوان IP، ويمكن تعطيلها في أي وقت. لا بيانات للعملاء ولا طلبات ولا مدفوعات. تفاصيل رؤيتنا في صفحة الذكاء الاصطناعي.

متجر تطبيقات لتذهب أبعد.

يثبّت التجار التطبيقات من لوحة تحكمهم بأذونات واضحة. ويُنشئ المطوّرون تطبيقاتهم ويختبرونها وينشرونها، ثم يعرضونها على جميع المتاجر.

  1. تثبيت بنقرة واحدة

    الأذونات المطلوبة معروضة قبل التثبيت، وإلغاء التثبيت متاح في أي وقت.

  2. مساحة المطوّر

    إنشاء التطبيقات، ومعرّفات OAuth، وتثبيت تجريبي على متجرك، ومراجعة قبل النشر.

  3. تطبيقات مدمجة

    تظهر واجهتك داخل لوحة تحكم التاجر، مع رمز جلسة يُتحقَّق منه على الخادم.

صلاحيات وصول تتحكم فيها.

القواعد نفسها المطبّقة على فريقك: كلٌّ يرى ما يحتاجه فقط.

  • رموز API لكل متجر

    تُعرض مرة واحدة فقط، وتُخزَّن مجزّأة، مع انتهاء صلاحية وتدوير وإلغاء فوري.

  • OAuth 2.1 للاتصال بنقرة واحدة

    PKCE إلزامي، ورموز صالحة ساعة واحدة تُجدَّد بالتدوير، وصفحة موافقة من Boutora.

  • عزل صارم

    كل وصول مرتبط بمتجر واحد. وتحدّ باقتك ودورك مما يمكنه فعله.

  • السجل والحصص

    يُسجَّل كل طلب لمدة 30 يومًا، وتحمي الحصص بالدقيقة واليوم متجرك.

موصل الذكاء الاصطناعي مشمول في كل باقة

Starter
قراءة وكتابة، 3 رموز
Business
كامل، OAuth، 10 رموز
Scale
كامل، رموز غير محدودة
Enterprise
كامل، حصص حسب الطلب

الصلاحيات

  • معلومات المتجرstore:read
  • قراءة الكتالوجcatalog:read
  • تعديل الكتالوجcatalog:write
  • ضبط المخزونinventory:write
  • قراءة الطلباتorders:read
  • معالجة الطلباتorders:write
  • بيانات العملاءcustomers:read
  • إحصاءات المبيعاتanalytics:read
  • أكواد الخصمmarketing:write
  • بطاقات الهدايا والأرصدةgiftcards:write
  • المحتوىcontent:write
  • Webhookswebhooks:write
  • قالب المتجرtheme:write

الأسئلة الشائعة

يُقدَّم المرجع الكامل (الأدوات وOAuth والأمثلة ورموز الأخطاء) مع حسابك.

ما الفرق بين REST API وخادم MCP؟
كلاهما يتعامل مع المتجر نفسه بقواعد العمل نفسها والرموز نفسها. واجهة REST API مصممة لخوادمك: مسارات ثابتة، وترقيم بالمؤشر، ومنع التكرار، ومواصفة OpenAPI. أما خادم MCP فمصمم للمساعدات الذكية: يعرض أدوات موصوفة بلغة طبيعية، يختارها Claude أو ChatGPT بنفسه.
ما الباقات التي تتيح الوصول إلى REST API؟
القراءة فقط (GET) ابتداءً من باقة Business، والقراءة والكتابة ابتداءً من Scale. وتتبع Webhooks الصادرة المنطق نفسه: نقطتان في Business، و10 في Scale، وبلا حدود في Enterprise. أما موصل MCP فمشمول في جميع الباقات، بما فيها الفترة التجريبية.
كيف أتحقق من توقيع Webhook؟
يحمل كل إرسال ترويسة Axi-Signature بالصيغة t=timestamp,v1=signature، حيث v1 هو HMAC-SHA256 للنص «timestamp.raw_body» باستخدام سرّك whsec_. احسبه على الجسم الخام المستلَم، وقارن في زمن ثابت، وارفض ما يتجاوز فارق 300 ثانية. وأثناء تدوير السر، تُرسل قيمتا v1 لمدة 24 ساعة.
ما هو MCP؟
بروتوكول سياق النموذج (Model Context Protocol) معيار مفتوح يتيح لمساعد ذكي استخدام أدوات خارجية. تعرض Boutora خادم MCP عبر Streamable HTTP دون حالة: يستطيع Claude أو ChatGPT أو Cursor الاطلاع على متجرك وإدارته بطلب منك.
هل يمكن لمساعد أن يطلب بدلًا من عميل؟
لا. على الواجهة العامة، أقصى ما يفعله المساعد هو تجهيز رابط سلة: والمشتري هو دائمًا من يفتح الرابط، ويختار التوصيل، ويؤكد طلبه.
هل بيانات عملائي محمية؟
لا تُرسل الأسماء والهواتف والعناوين إلا بصلاحية «بيانات العملاء». ولا ترسل Webhooks أي بيانات شخصية افتراضيًا. ويُسجَّل كل طلب، ويُلغى كل وصول بنقرة واحدة، وتُخزَّن الأسرار مجزّأة أو مشفّرة: لا تستطيع Boutora نفسها قراءتها.

جرّب مع متجرك الخاص.

أنشئ رمزًا في دقيقتين من صفحة موصلات الذكاء الاصطناعي، أو اربط Claude.ai بنقرة واحدة ابتداءً من باقة Business.

بائع أمام كشكه في السوق