انتقل إلى المقال
Aniq-UI

E-Commerceمرجع واجهة API

مرجع واجهة API

كل مسار تقدّمه واجهة API، ومن يحق له استدعاؤه، وكيف يعمل تسجيل الدخول والصلاحيات والأخطاء وتقسيم النتائج إلى صفحات.

لحزمة الحزمة الكاملة

العنوان الأساسي وصيغة الاستجابة

يُقدَّم كل مسار تحت البادئة /api. محليًا، العنوان الأساسي هو http://localhost:8000/api. وعلى الخادم، هو عنوان واجهة API الخاصة بك متبوعًا بـ /api، وهي القيمة نفسها التي تقرؤها الواجهتان الأماميتان من NEXT_PUBLIC_API_BASE_URL (متغيرات البيئة).

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

الغلاف
{
  "success": true,
  "data": { },
  "message": ""
}

يحتوي data على النتيجة. وmessage جملة قصيرة تملؤها بعض عمليات الكتابة، مترجمة إلى لغة الطلب، وتكون فارغة في غير ذلك.

فحص السلامة هو المسار الوحيد خارج الغلاف. لا يحتاج إلى رمز:

الطرفية
curl http://localhost:8000/api/health
الاستجابة
{"status":"ok"}

يُجيب بـ 503 مع {"status":"unavailable"} ما دامت قاعدة البيانات غير قابلة للوصول أو لا تحتوي على جداول، فيمكن لموازن الأحمال استخدامه كفحص للجاهزية.

الأخطاء

يُجيب الطلب الفاشل برمز حالة HTTP المطابق وبالغلاف نفسه، مع success: false وdata: null، ومع المشكلات لكل حقل عند فشل التحقق:

الاستجابة (400)
{
  "success": false,
  "data": null,
  "message": "<the first field's problem>",
  "errors": {
    "email": ["<the problem with email>"]
  }
}
الحالةمتى
400فشل حقل في التحقق، أو يحتوي جسم الطلب على حقل لا يقبله المسار. الحقول غير المعروفة تُرفض، ولا يتم تجاهلها.
401الرمز مفقود، أو منتهي الصلاحية، أو يخص الجمهور الآخر. وكذلك تسجيل الدخول الفاشل، سواء لم يكن للبريد حساب أو كانت كلمة المرور خاطئة.
402غرفة القياس في عرض تجريبي عام، عندما لا يرسل المتسوّق مفتاحه الخاص.
403أدوار المسؤول لا تمنح الصلاحية التي يتطلبها المسار: «ليس لديك صلاحية للقيام بهذا الإجراء».
404لا يوجد سجل كهذا.
409تتعارض عملية الكتابة مع سجل موجود، مثل بريد إلكتروني أو slug أو SKU مستخدم بالفعل.
429محاولات كثيرة من عنوان واحد على مسار تسجيل الدخول أو التسجيل أو كلمة المرور أو التتبّع، أو تجارب قياس كثيرة. على مسارات تسجيل الدخول، تحدد ترويسة Retry-After عدد الثواني التي يجب انتظارها.
503ميزة غير مُعدّة: رفع الملفات من دون مخزن، أو ميزة ذكاء اصطناعي من دون مفتاحها، أو فحص السلامة قبل وجود الجداول.
500فشل غير متوقع. تبقى الرسالة عامة وتذهب التفاصيل إلى سجل واجهة API.

تجيب عمليات الكتابة الناجحة بـ 201 مع POST وبـ 200 مع الطرق الأخرى.

التقسيم إلى صفحات والترتيب

تأخذ القوائم page، بدءًا من 1، وpage_count، وهو حجم الصفحة. تحتوي الصفحة على 100 صف كحد أقصى: الحجم الأكبر يُقرأ 100، والأصغر يُقرأ 1، والحجم المفقود أو غير المقروء يعود إلى القيمة الافتراضية للقائمة. وتجيب القائمة بشكل واحد:

الاستجابة
{
  "success": true,
  "data": { "data": [ ], "page": 1, "limit": 15, "total": 35, "totalPages": 3 },
  "message": ""
}
القائمةحجم الصفحة الافتراضي
المنتجات، والفئات، والعملاء، وطلبات الإدارة15
الموظفون، والأدوار، والإعدادات، والتقييمات، وطلبات العميل الخاصة10
/api/products/featured (limit)8
/api/products/:id/related (limit)4
  • يحدد order=asc أو order=desc الاتجاه في المنتجات والفئات والعملاء والطلبات. الفئات تصاعدية افتراضيًا، والبقية من الأحدث إلى الأقدم.
  • تُرتَّب المنتجات أيضًا بـ sort: created_at أو updated_at أو price أو rating أو best_selling. والقيمة غير المعروفة تعود إلى الافتراضي، أي الأحدث تحديثًا أولًا مع حسم التعادل بـ id. ويضع order_by_featured=true المنتجات المميزة والأكثر مبيعًا أولًا.
  • تُصفّى قائمة المنتجات حسب search (الاسم بأي من اللغتين، أو SKU)، وcategory_id، وis_active، وis_featured، وis_best_seller، وmin_price، وmax_price، وtag، وon_sale.

اللغة

أرسل لغة القارئ في الترويسة Accept-Language: en أو ar كما هو مرفق. تُعامَل ar-SA كعربية، وأي لغة لا تملكها واجهة API يُجاب عنها بالإنجليزية. لا يوجد معامل استعلام للغة.

  • تُترجم رسائل الخطأ وmessage الخاصة بعمليات الكتابة الناجحة.
  • النص المحفوظ باللغتين، مثل أسماء المنتجات والفئات، يعود بالشكل { "en": "...", "ar": "..." } ويختار العميل إحداهما.

المصادقة

يسجّل العملاء والموظفون الدخول عبر نقاط نهاية مختلفة، مقابل جداول مختلفة، ويتلقون رموزًا لا تقبلها إلا مساراتهم الخاصة.

الجمهورتسجيل الدخولالرمز في الإجابةمقبول على
العميلPOST /api/auth/customer/logindata.token، مع data.userمسارات العملاء
الموظفونPOST /api/auth/logindata.access_token، مع data.admin (الأدوار والصلاحيات)مسارات الإدارة
  • كلاهما رمز JWT موقّع بـ JWT_SECRET. أرسلهما بالشكل Authorization: Bearer <token>.
  • يبقى الرمز صالحًا لمدة JWT_EXPIRATION، وهي 7d افتراضيًا (متغيرات البيئة). ويُبلغ تسجيل دخول الموظفين بالقيمة نفسها في expires_in.
  • لا توجد نقطة نهاية للتجديد. عندما تنتهي صلاحية الرمز، يجيب الطلب التالي بـ 401 ويسجّل العميل الدخول من جديد.
  • يُرفض رمز العميل على مسارات الإدارة، ورمز الموظف على مسارات العملاء، مع أن كليهما يستخدم السر نفسه.
  • يُجيب تسجيل الدخول الفاشل بـ 401 مع رسالة واحدة، سواء لم يكن للبريد حساب أو كانت كلمة المرور خاطئة.
  • تقبل مسارات تسجيل الدخول والتسجيل وكلمة المرور وتتبّع الطلب 10 محاولات في الدقيقة من العنوان الواحد، تُحتسب لكل مسار. وبعد ذلك تُجيب بـ 429 مع ترويسة Retry-After. يُحفظ العدّ في ذاكرة واجهة API، فيبدأ من جديد عند إعادة التشغيل ويُحتسب منفصلًا في كل نسخة عاملة. وخلف خادم وكيل، راجع TRUST_PROXY (حل المشكلات).
  1. سجّل الدخول بحساب المدير العام التجريبي

    الطرفية
    curl -X POST http://localhost:8000/api/auth/login \
      -H "Content-Type: application/json" \
      -d '{"email":"admin@example.com","password":"Admin@123"}'
    الاستجابة
    {
      "success": true,
      "data": {
        "access_token": "eyJhbGciOiJIUzI1NiIs...",
        "token_type": "Bearer",
        "expires_in": "7d",
        "admin": {
          "id": 1,
          "email": "admin@example.com",
          "roles": [{ "id": 1, "name": "Super Admin", "guard_name": "web" }],
          "permissions": ["admins.view", "admins.create", "..."]
        }
      },
      "message": "..."
    }
  2. استدعِ مسارًا محميًا بالرمز

    الطرفية
    curl "http://localhost:8000/api/orders?page=1&page_count=5" \
      -H "Authorization: Bearer <access_token>"

    النتيجة المتوقعة: أحدث خمسة طلبات، بشكل القائمة.

  3. سجّل الدخول بحساب عميل تجريبي

    يحتوي المتجر التجريبي أيضًا على عملاء، مثل john.doe@example.com بكلمة المرور password123:

    الطرفية
    curl -X POST http://localhost:8000/api/auth/customer/login \
      -H "Content-Type: application/json" \
      -d '{"email":"john.doe@example.com","password":"password123"}'

    ثم مرّر data.token بالطريقة نفسها، مثلًا إلى GET /api/orders/my.

غيّر كلمات المرور التجريبية

تستخدم حسابات المتجر التجريبي كلمات مرور منشورة: Admin@123 للمدير العام، وadmin123 لبقية الموظفين، وpassword123 للعملاء. غيّرها، أو ابدأ من جداول فارغة، قبل إطلاق الموقع.

الصلاحيات

يتحقق كل مسار إداري من الرمز أولًا، ثم من الصلاحية التي يحددها. يملك المسؤول كل صلاحيات كل دور لديه؛ وحيث يحدد المسار عدة صلاحيات، تكفي أي واحدة منها. في جداول الإدارة أدناه، يعني اسم الصلاحية في عمود من يحق له استدعاؤه مسؤولًا تمنحه أدواره تلك الصلاحية.

الوحدةالصلاحيات
الموظفونadmins.view, admins.create, admins.edit, admins.delete, admins.assign_roles
الأدوارroles.view, roles.create, roles.edit, roles.delete, roles.assign_permissions
الإعداداتsettings.view, settings.edit
العملاءusers.view, users.create, users.update, users.delete, users.restore, users.verify
الفئاتcategories.view, categories.create, categories.edit, categories.delete, categories.restore
المنتجاتproducts.view, products.create, products.edit, products.delete, products.restore
الطلباتorders.view, orders.edit
المساعد الذكيai_chat.use, ai_chat.view_models

تستخدم أقسام الصفحة الرئيسية واستوديو الذكاء الاصطناعي صلاحيات المنتجات. ليس للتقييمات صلاحية خاصة بها: تقرؤها لوحة الإدارة عبر المنتجات.

الدور التجريبييمنح
المدير العام (Super Admin)كل الصلاحيات
المشاهد (Viewer)كل صلاحية تنتهي بـ .view
Admin و Manager و Editorلا شيء حتى تمنحها

تشغيل البيانات التجريبية مرة أخرى ينشئ ما هو ناقص ويُبقي صلاحيات الأدوار الموجودة كما ضبطتها.

الكتالوج العام

لا حاجة إلى رمز. لا يرى المتسوّقون إلا المنتجات النشطة: من دون رمز مسؤول، المنتج غير النشط أو المحذوف غير موجود.

الطريقةالمسارمن يحق له استدعاؤهوظيفته
GET/api/productsأي شخصقائمة المنتجات، مع الفلاتر والترتيب المذكورة أعلاه. من دون رمز مسؤول تعرض المنتجات النشطة فقط، أيًّا كان ما يطلبه is_active؛ ومع رمز مسؤول، يعمل كل فلتر كما أُرسل، بما في ذلك المنتجات غير النشطة.
GET/api/products/featuredأي شخصالمنتجات المميزة النشطة (limit، و8 افتراضيًا).
GET/api/products/slug/:slugأي شخصمنتج واحد حسب الـ slug الخاص به، مع الصور والمتغيرات والفئة. المنتج غير النشط أو المحذوف يُجيب بـ 404 من دون رمز مسؤول.
GET/api/products/:idأي شخصمنتج واحد حسب المعرّف، مع قاعدة 404 نفسها.
GET/api/products/:id/relatedأي شخصالمنتجات النشطة المرتبطة به (limit، و4 افتراضيًا)؛ و404 للمنتج غير النشط من دون رمز مسؤول.
GET/api/categoriesأي شخصقائمة الفئات (search وis_active وparent_id وorder).
GET/api/categories/rootsأي شخصالفئات التي ليس لها فئة أم.
GET/api/categories/slug/:slugأي شخصفئة واحدة حسب الـ slug الخاص بها.
GET/api/categories/:idأي شخصفئة واحدة حسب المعرّف.
GET/api/homepage-sections/:key/productsأي شخصالمنتجات المختارة لقسم واحد من الصفحة الرئيسية، مثل best-sellers.
GET/api/reviews/product/:productIdأي شخصتقييمات منتج، 10 في كل صفحة.
GET/api/reviews/product/:productId/summaryأي شخصمتوسط تقييمه والعدد لكل نجمة.
GET/api/helpers/countriesأي شخصالدول لقائمة اختيار، بلغة الطلب.

تسجيل العملاء وحساباتهم

الطريقةالمسارمن يحق له استدعاؤهوظيفته
POST/api/auth/customer/registerأي شخصينشئ عميلًا (first_name وlast_name وemail وpassword، وphone اختياريًا) ويسجّل دخوله. محدود المعدّل.
POST/api/auth/customer/loginأي شخصيسجّل دخول العميل. محدود المعدّل.
GET/api/auth/customer/meالعميلالعميل المسجَّل دخوله.
PATCH/api/auth/customer/meالعميليحدّث بياناته.
PATCH/api/auth/customer/me/passwordالعميليغيّر كلمة مروره.
POST/api/auth/customer/forgot-passwordأي شخصيُصدر رمز إعادة تعيين يُستخدم مرة واحدة، صالحًا لمدة ساعة. خارج بيئة الإنتاج يُكتب في سجل واجهة API؛ ولا يُرسل أي بريد إلكتروني. محدود المعدّل.
POST/api/auth/customer/reset-passwordأي شخصيضبط كلمة مرور جديدة بذلك الرمز. محدود المعدّل.
GET/api/addressesالعميلعناوينه المحفوظة.
GET/api/addresses/:idالعميلأحدها.
POST/api/addressesالعميليحفظ عنوانًا.
PATCH/api/addresses/:idالعميليعدّله.
PATCH/api/addresses/:id/defaultالعميليجعله الافتراضي.
DELETE/api/addresses/:idالعميليحذفه.
POST/api/reviewsالعميليقيّم منتجًا، تقييمًا واحدًا لكل عميل لكل منتج: الإرسال مرة أخرى يحدّثه.
PATCH/api/reviews/:idالعميليعدّل تقييمه.
DELETE/api/reviews/:idالعميليحذف تقييمه.

تتوفر أيضًا سلة على الخادم للعملاء المسجّلين. يحفظ المتجر المرفق سلته في المتصفح ولا يستدعيها.

الطريقةالمسارمن يحق له استدعاؤهوظيفته
GET/api/cartالعميلسلة العميل.
POST/api/cart/itemsالعميليضيف product_id، وvariant_id اختياريًا، وquantity.
PATCH/api/cart/items/:idالعميليغيّر كمية سطر.
DELETE/api/cart/items/:idالعميليزيل سطرًا.
DELETE/api/cartالعميليُفرغ السلة.

الطلبات وإتمام الشراء والتتبّع

الطريقةالمسارمن يحق له استدعاؤهوظيفته
POST/api/ordersأي شخص؛ ويُقرأ رمز العميل عند إرسالهينشئ طلبًا. يرسل الضيف items وemail والعنوان؛ ويمكن للعميل المسجَّل ألا يرسل items ليطلب محتوى سلته على الخادم. تكون payment_method إما stripe أو cod (تُقبل paypal لكن لا شيء يعالجها). تأتي الأسعار من الكتالوج، لا من الطلب.
GET/api/orders/trackأي شخصتقدّم الطلب حسب order_number وemail معًا. محدود المعدّل.
GET/api/orders/myالعميلطلبات العميل، 10 في كل صفحة.
GET/api/orders/number/:orderNumberالعميلأحد طلباته حسب رقمه.
POST/api/payments/webhookStripe، موقّعًا بـ STRIPE_WEBHOOK_SECRETيعلّم طلب البطاقة كمدفوع (payment_intent.succeeded) أو كفاشل (payment_intent.payment_failed).

مع payment_method: "stripe" وإعداد Stripe، تحمل الإجابة client_secret يؤكده المتجر مع Stripe. الشحن مجاني ابتداءً من مجموع فرعي قدره 75، و9.99 لما دون ذلك؛ والضريبة 0. يُحفظ promo_code على الطلب لكنه لا يُطبَّق.

تسجيل دخول الموظفين وحساباتهم

الطريقةالمسارمن يحق له استدعاؤهوظيفته
POST/api/auth/loginأي شخصيسجّل دخول موظف. محدود المعدّل.
GET/api/auth/meأي مسؤول مسجّل دخولهالمسؤول المسجَّل دخوله، مع الأدوار والصلاحيات.
GET/api/adminsadmins.viewقائمة الموظفين.
GET/api/admins/statisticsadmins.viewأعداد الموظفين.
GET/api/admins/:idadmins.viewمسؤول واحد.
POST/api/adminsadmins.createينشئ مسؤولًا.
PATCH/api/admins/:idadmins.editيعدّل مسؤولًا.
PATCH/api/admins/:id/rolesadmins.assign_rolesيضبط أدوار مسؤول.
DELETE/api/admins/:idadmins.deleteيحذف مسؤولًا.
PATCH/api/admins/profileadmins.editيعدّل الملف الشخصي للمسؤول المسجَّل دخوله.
PATCH/api/admins/profile/passwordأي مسؤول مسجّل دخولهيغيّر كلمة مرور المسؤول المسجَّل دخوله.

الأدوار

الطريقةالمسارمن يحق له استدعاؤهوظيفته
GET/api/rolesroles.viewالأدوار. من دون معاملات الصفحات، تُعرض كلها.
GET/api/roles/statisticsroles.viewأعداد الأدوار.
GET/api/roles/selectroles.viewالأدوار لقائمة اختيار.
GET/api/roles/permissionsroles.viewكل الصلاحيات، مجمّعة حسب الوحدة.
GET/api/roles/:idroles.viewدور واحد مع صلاحياته.
POST/api/rolesroles.createينشئ دورًا.
PUT/api/roles/:idroles.editيعيد تسمية دور أو يعدّله.
POST/api/roles/:id/permissionsroles.assign_permissionsيضبط صلاحيات دور. يتلقى المسؤولون المسجَّل دخولهم الذين يملكونه التغيير مباشرة.
DELETE/api/roles/:idroles.deleteيحذف دورًا.

العملاء

يُشار إلى العملاء باسم المستخدم الخاص بهم. تُصفّى القائمة حسب search وemail وphone وcountry_id وusername وfirst_name وlast_name وverified وfrom_date وto_date.

الطريقةالمسارمن يحق له استدعاؤهوظيفته
GET/api/usersusers.viewقائمة العملاء.
GET/api/users/statisticusers.viewأعداد العملاء.
GET/api/users/deletedusers.viewالعملاء المحذوفون.
GET/api/users/deleted/:usernameusers.viewعميل محذوف واحد.
GET/api/users/:usernameusers.viewعميل واحد.
POST/api/usersusers.createينشئ عميلًا.
PATCH/api/users/:usernameusers.updateيعدّل عميلًا.
PATCH/api/users/:username/change-passwordusers.updateيضبط كلمة مرور عميل.
POST/api/users/:username/resend-verification-emailusers.updateيُجيب بالنجاح ولا يرسل شيئًا: لا يأتي القالب مع وسيلة لإرسال البريد. اربط خدمة الإرسال الخاصة بك هنا.
POST/api/users/:username/make-verifiedusers.verifyيعلّم البريد الإلكتروني كمؤكَّد.
POST/api/users/:username/make-unverifiedusers.verifyيعلّمه كغير مؤكَّد.
DELETE/api/users/:usernameusers.deleteينقل عميلًا إلى قائمة المحذوفين.
POST/api/users/deleted/:username/restoreusers.restoreيستعيد عميلًا محذوفًا.

المنتجات والفئات

الطريقةالمسارمن يحق له استدعاؤهوظيفته
POST/api/productsproducts.createينشئ منتجًا مع صوره ومتغيراته.
PATCH/api/products/:idproducts.editيعدّل منتجًا.
DELETE/api/products/:idproducts.deleteينقله إلى قائمة المحذوفات.
GET/api/products/deletedproducts.deleteالمنتجات المحذوفة.
POST/api/products/deleted/:id/restoreproducts.restoreيستعيد واحدًا منها.
GET/api/products/statisticproducts.viewأعداد المنتجات.
GET/api/products/draftsأي مسؤول مسجّل دخولهمسودة المسؤول غير المحفوظة لنموذج المنتج (product_id لمنتج موجود).
PUT/api/products/draftsأي مسؤول مسجّل دخولهيحفظ تلك المسودة.
DELETE/api/products/draftsأي مسؤول مسجّل دخولهيتجاهلها.
POST/api/categoriescategories.createينشئ فئة.
PATCH/api/categories/:idcategories.editيعدّل فئة، بما في ذلك ترتيب عرضها.
DELETE/api/categories/:idcategories.deleteينقله إلى قائمة المحذوفات.
GET/api/categories/deletedcategories.deleteالفئات المحذوفة.
POST/api/categories/deleted/:id/restorecategories.restoreيستعيد واحدًا منها.
GET/api/categories/statisticcategories.viewأعداد الفئات.
GET/api/homepage-sections/:keyproducts.viewإعدادات قسم من الصفحة الرئيسية ومنتجاته.
PUT/api/homepage-sections/:keyproducts.editيضبطها.

مفاتيح الأقسام هي style-pillars وeditorial-split وnew-drops وbest-sellers وspotlight وlux-difference وeditorial-slider.

الطلبات

الطريقةالمسارمن يحق له استدعاؤهوظيفته
GET/api/ordersorders.viewقائمة الطلبات: search، وstatus (حالة واحدة أو عدة حالات، مفصولة بفواصل)، وpayment_status، وfrom_date، وto_date، وorder.
GET/api/orders/statisticorders.viewالأعداد لكل حالة والإيرادات.
GET/api/orders/:idorders.viewطلب واحد مع منتجاته.
PATCH/api/orders/:id/statusorders.editيضبط الحالة (pending أو confirmed أو processing أو shipped أو delivered أو cancelled أو refunded) ورقم التتبّع.

تقبل واجهة API أي تغيير في الحالة؛ أما لوحة الإدارة فلا تعرض إلا الخطوة التالية أو الإلغاء.

الإعدادات

الطريقةالمسارمن يحق له استدعاؤهوظيفته
GET/api/settingssettings.viewإعدادات التطبيق، 10 في كل صفحة.
GET/api/settings/:keysettings.viewإعداد واحد.
PATCH/api/settings/:keysettings.editيغيّر قيمته.
DELETE/api/settings/:keysettings.editيحذفه.

لا يوجد مسار لإنشاء إعداد: البيانات التجريبية هي التي تنشئها. لا شيء في الكود المرفق يقرأ قيمها.

رفع الوسائط

الطريقةالمسارمن يحق له استدعاؤهوظيفته
POST/api/helpers/uploadأي مسؤول مسجّل دخولهيرفع ملفًا واحدًا إلى المخزن.
  • نموذج متعدد الأجزاء (multipart): الملف في file، والمجلد في path (uploads افتراضيًا)، واختياريًا إعداد مسبق للحجم في for.
  • حتى 150 ميغابايت. تُحفظ مقاطع الفيديو (MP4 و WebM و MOV و M4V) كما هي وتُجيب بـ { "original": url }.
  • يُعاد ترميز الصور إلى JPEG، بعرض 1920 بكسل كحد أقصى، إضافة إلى حجم الإعداد المسبق، وتُجيب بكل عنوان URL، مثل { "original": url, "250x250": url }.
  • من دون متغيرات R2_* الخمسة يُجيب بـ 503: "File uploads are not set up yet."

الإشعارات

الطريقةالمسارمن يحق له استدعاؤهوظيفته
GET/api/notificationsأي مسؤول مسجّل دخولهأحدث 30 إشعارًا للمسؤول، تُحفظ لمدة 30 يومًا.
PATCH/api/notifications/read-allأي مسؤول مسجّل دخولهيعلّمها كلها كمقروءة.
PATCH/api/notifications/:id/readأي مسؤول مسجّل دخولهيعلّم واحدًا كمقروء.
DELETE/api/notifications/:idأي مسؤول مسجّل دخولهيحذف واحدًا.
  • تستخدم الإشعارات المباشرة Socket.IO على مساحة الأسماء /notifications، على عنوان واجهة API من دون /api. أرسل رمز الموظف في auth.token أثناء المصافحة؛ ورموز العملاء يُقطع اتصالها.
  • يصل كل إشعار جديد كـ notification:created. الأنواع هي order_created، لكل مسؤول يستطيع عرض الطلبات، وstudio_generation_completed وstudio_generation_failed، للمسؤول الذي بدأ عملية الإنشاء.
  • ترسل مساحة أسماء ثانية، /auth، الحدث permissions-updated عندما تتغير أدوار المسؤول أو صلاحياته.
  • لا يقبل الاتصال إلا من FRONTEND_URL.

المساعد الذكي

مُضمَّن مع مشترياتك. سجّل الدخول لقراءته، أو افتحه في ملف التنزيل.

مسارات المحادثة والنماذج وسجل المحادثات الخاصة بالمساعد.

استوديو الذكاء الاصطناعي

مُضمَّن مع مشترياتك. سجّل الدخول لقراءته، أو افتحه في ملف التنزيل.

مسارات الإنشاء والوسائط في استوديو المنتجات الذكي.

غرفة القياس

مُضمَّن مع مشترياتك. سجّل الدخول لقراءته، أو افتحه في ملف التنزيل.

المسارات العامة لغرفة القياس في المتجر وحدودها.

مسارات وضع العرض التجريبي

مُضمَّن مع مشترياتك. سجّل الدخول لقراءته، أو افتحه في ملف التنزيل.

المسار الذي يستخدمه العرض التجريبي العام لإعطاء كل زائر حسابًا.

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.