Ana içeriğe geç

Bir varlık alan türü ile form gönderme (sayfalar, ürünler...)

Bu örnekte, OneEntry API'sini kullanarak sayfalar veya ürünler gibi bir varlık alan türü içeren bir formun nasıl gönderileceğini gösteriyoruz.

✅ Senaryonun amacı:

  • OneEntry Platform'dan form yapılandırmasını almak
  • Kullanıcının varlıkların bir öğesini seçmesi
  • Toplanan verileri OneEntry API'sine göndermek.

✅ İhtiyacınız olanlar:

  • OneEntry API'si ile kimlik doğrulama için geçerli bir PROJECT_URL ve APP_TOKEN.
  • OneEntry'de bir işaretçi (örneğin, varlık) ve "varlık" türünde bir alan içeren önceden yapılandırılmış bir form.
  • "varlık" türünde bir alan içeren önceden yapılandırılmış form alanları.

📌 Önemli:

  • Bu örnekler hata yönetimini içermez.
  • Hataları bir try-catch bloğu kullanarak veya await Promise.catch((error) => error) gibi bir yapı kullanarak yönetebilirsiniz.

Senaryo

1. SDK'dan defineOneEntry'i içe aktarın ve url ile token'ı tanımlayın

Örnek:

import { defineOneEntry } from 'oneentry';

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

2. defineOneEntry() fonksiyonu ile bir API istemcisi oluşturma

Örnek:

const { Forms, FormData } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. OneEntry Platform'dan form verilerini alarak frontend'de bir form oluşturma Forms.getFormByMarker()

Örnek:

const formData = await Forms.getFormByMarker('entity');
Sonuç:
{
"id": 2,
"attributeSetId": 1,
"type": "data",
"localizeInfos": {
"title": "Varlık",
"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": "Katalog",
"parentId": null,
"position": 1,
"selected": true
},
{
"id": 7,
"depth": 0,
"title": "Premium sayfa",
"parentId": null,
"position": 2,
"selected": true
}
],
"validators": {},
"localizeInfos": {
"title": "Varlık"
},
"additionalFields": [],
"isNotificationEmail": null,
"isNotificationPhoneSMS": null,
"isNotificationPhonePush": null
}
],
"moduleFormConfigs": [
{
"id": 1,
"moduleIdentifier": "content",
"isGlobal": false,
"isClosed": false,
"viewOnlyUserData": false,
"commentOnlyUserData": false,
"entityIdentifiers": [
{
"id": "services",
"isNested": false
}
]
}
]
}

Form gönderimi için ek ayarları alın

Örnek:

const moduleFormConfig = formData?.moduleFormConfigs?.[0];

5. Varlık türü niteliğinin öğelerinden birini seçin ve değeri sayfalar için id'ler (sayısal) dizisi veya ürünler için string dizisi olarak geçirin

Örnek:

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

6. FormData.postFormsData() ile form verilerini gönderin

Örnek:

const response = FormData.postFormsData({
formIdentifier: 'entity',
formData: fieldsData,
formModuleConfigId: moduleFormConfig?.id || 0,
moduleEntityIdentifier:
moduleFormConfig?.entityIdentifiers?.[0]?.id || '',
replayTo: null,
status: 'sent',
});
console.log(response);
Sonuç:
{
"formData": {
"formIdentifier": "entity",
"time": "2025-11-10T06:29:42.887Z",
"formData": [
{
"marker": "entity",
"type": "entity",
"value": [
1
]
}
],
"entityIdentifier": "services",
"fingerprint": "UQ_rrofe2",
"isUserAdmin": false,
"formModuleId": 1,
"userIdentifier": null,
"parentId": null,
"id": 118
},
"actionMessage": ""
}

Son örnek

// 1. SDK'dan defineOneEntry'i içe aktarın ve PROJECT_URL ile APP_TOKEN'ı tanımlayın
import { defineOneEntry } from 'oneentry';

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

// 2. Bir API istemcisi oluşturma:
const { Forms, FormData } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. OneEntry Platform'dan form verilerini alarak frontend'de bir form oluşturma
const formData = await Forms.getFormByMarker('entity');

// 4. Form gönderimi için ek ayarları alın
const moduleFormConfig = formData?.moduleFormConfigs?.[0];

// 5. Varlık türü niteliğinin öğelerinden birini seçin
const fieldsData = [
{
marker: 'entity',
type: 'entity',
value: [
1,
],
},
];

// 6. Form verilerini FormData.postFormsData() ile gönderin
let response = await FormData.postFormsData({
formIdentifier: 'entity',
formData: fieldsData,
formModuleConfigId: moduleFormConfig?.id || 0,
moduleEntityIdentifier:
moduleFormConfig?.entityIdentifiers?.[0]?.id || '',
replayTo: null,
status: 'sent',
});
// console.log(response);