انتقل إلى المحتوى الرئيسي

إرسال نموذج مع نوع حقل كيان (صفحات، منتجات...)

في هذا المثال، نوضح كيفية إرسال نموذج يتضمن نوع حقل كيان، مثل الصفحات أو المنتجات، باستخدام واجهة برمجة التطبيقات OneEntry.

✅ هدف السيناريو:

  • الحصول على تكوين النموذج من منصة OneEntry
  • يقوم المستخدم باختيار أحد عناصر الكيان
  • إرسال البيانات المجمعة إلى واجهة برمجة التطبيقات OneEntry.

✅ ما تحتاجه:

  • عنوان URL صالح للمشروع PROJECT_URL ورمز التطبيق APP_TOKEN للمصادقة مع واجهة برمجة التطبيقات OneEntry.
  • نموذج مُعد مسبقًا في OneEntry مع علامة (مثل، كيان) وحقول تتضمن واحدة من نوع "كيان".
  • حقول نموذج مُعدة مسبقًا تتضمن واحدة من نوع "كيان".

📌 مهم:

  • نحن لا نتعامل مع الأخطاء في هذه الأمثلة.
  • يمكنك التعامل مع الأخطاء في trycatch أو في بناء مثل "await Promise.catch((error) => error)"

السيناريو

1. استيراد oneEntry وتحديد عنوان URL ورمز

مثال:

import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

2. إنشاء عميل API باستخدام دالة defineOneEntry()

مثال:

const { AuthProvider, Orders, Payments, Forms } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. نتلقى بيانات النموذج من منصة OneEntry لإنشاء نموذج على الواجهة الأمامية باستخدام Forms.getFormByMarker()

مثال:

const formData = await Forms.getFormByMarker('entity');
النتيجة:
{
"id": 2,
"attributeSetId": 1,
"type": "data",
"localizeInfos": {
"title": "كيان",
"titleForSite": "",
"successMessage": "",
"unsuccessMessage": "",
"urlAddress": "",
"database": "0",
"script": "0"
},
"version": 17,
"position": 1,
"identifier": "entity",
"processingType": "script",
"templateId": null,
"attributes": [
{
"type": "entity",
"marker": "entity",
"isLogin": null,
"isSignUp": null,
"position": 1,
"settings": {},
"isVisible": true,
"listTitles": [
{
"id": 1,
"depth": 0,
"title": "كتالوج",
"parentId": null,
"position": 1,
"selected": true
},
{
"id": 7,
"depth": 0,
"title": "صفحة مميزة",
"parentId": null,
"position": 2,
"selected": true
}
],
"validators": {},
"localizeInfos": {
"title": "كيان"
},
"additionalFields": [],
"isNotificationEmail": null,
"isNotificationPhoneSMS": null,
"isNotificationPhonePush": null
}
]
}

4. اختر أحد عناصر نوع حقل الكيان ومرره كقيمة كمصفوفة من المعرفات (الأرقام) للصفحات أو مصفوفة من السلاسل للمنتجات

مثال:

[
{
"marker": "entity",
"type": "entity",
"value": [
1
]
}
]

5. نشر بيانات النماذج باستخدام FormData.postFormsData()

مثال:

const response = FormData.postFormsData({
formIdentifier: 'entity',
formData: fieldsData,
});
console.log(response);
النتيجة:
{
"formData": {
"formIdentifier": "entity",
"time": "2025-08-29T17:30:21.596Z",
"formData": [
{
"marker": "entity",
"type": "entity",
"value": [
1
]
}
],
"id": 94
},
"actionMessage": ""
}

المثال النهائي

// 1. استيراد oneEntry وتحديد PROJECT_URL و APP_TOKEN
import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

// 2. إنشاء عميل API:
const { Forms, FormData } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. نتلقى بيانات النموذج من منصة OneEntry لإنشاء نموذج على الواجهة الأمامية
const formData = await Forms.getFormByMarker('entity');

// 4. اختر أحد عناصر نوع حقل الكيان
const fieldsData = [
{
marker: 'entity',
type: 'entity',
value: [
1,
],
},
];

// 5. نشر بيانات النماذج باستخدام FormData.postFormsData()
let response = await FormData.postFormsData({
formIdentifier: 'entity',
formData: fieldsData,
});
// console.log(response);