Müşteri Kayıt Ayarları
Kayıt formunda nelerin sorulacağını ve hangi ek alanların bulunacağını yöneten yedi uç.
Genel Bakış
Bu yedi uç bir müşterinin kayıt olurken nelerin sorulacağını belirler. İki katman vardır: sistemin hazır alanları ve sizin eklediğiniz özel alanlar.
Hazır alanlarda her soru için ayrı ayrı üç şey ayarlanır: sorulsun mu, zorunlu mu ve müşteri sonradan değiştirebilsin mi. Bunlar bağımsız anahtarlardır; bir alanı zorunlu yapmak onu kendiliğinden sormaz.
Özel alanlar dile aittir: aynı alan her dilde ayrı bir kayıt olarak açılır ve kendi kimliğini taşır.
Referans
Kayıt Ayarlarını Getirme
Kayıt ve giriş akışında hangi alanların sorulduğunu ve zorunlu olduğunu döndürür.
curl 'https://panel.ornek.com/api/v1/admin/settings/client' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/client', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/client');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Bir alanin sorulmasi ve ZORUNLU olmasi ayri anahtarlardir: ikisini birlikte okuyun.
$cfg = Api::Settings()->GetClientSettings()['data'];
$asksGsm = $cfg['sign_up_gsm_status'] === 1;
$needsIt = $asksGsm && $cfg['sign_up_gsm_required'] === 1;Kayıt Ayarlarını Yazma
Gönderdiğiniz anahtarları uygular; kalanlar olduğu gibi durur.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/settings/client' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"sign_up_status":1,"sign_up_email_verify":1,"security_question_status":0}'const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/client', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
sign_up_status: 1,
sign_up_email_verify: 1,
security_question_status: 0,
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/client');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'sign_up_status' => 1,
'sign_up_email_verify' => 1,
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Bir alani zorunlu yapmak SORULUYOR olmasini gerektirir; ikisini birlikte acin.
Api::Settings()->UpdateClientSettings([
'sign_up_gsm_status' => 1,
'sign_up_gsm_required' => 1,
]);Özel Alanları Listeleme
Kayıt formuna eklenmiş ek alanları döndürür. Alanlar dile göre tutulur.
active ya da inactive.curl -G 'https://panel.ornek.com/api/v1/admin/settings/client-fields' \
-H "Authorization: Bearer $API_KEY" \
-d lang=enconst url = new URL('https://panel.ornek.com/api/v1/admin/settings/client-fields');
url.searchParams.set('lang', 'en');
const res = await fetch(url, { headers: { Authorization: `Bearer ${apiKey}` } });
const body = await res.json();$url = 'https://panel.ornek.com/api/v1/admin/settings/client-fields?' . http_build_query(['lang' => 'en']);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Alanlar dile BAGLIDIR: her dil icin ayri liste, ayri kimlikler.
$en = Api::Settings()->GetClientFields([], ['lang' => 'en'])['data'];
$tr = Api::Settings()->GetClientFields([], ['lang' => 'tr'])['data'];{
"data": [
{
"id": 5,
"lang": "en",
"type": "text",
"name": "VAT Number",
"status": "active",
"required": false,
"uneditable": false,
"client_hidden": false,
"invoice": true,
"sign_form": true,
"options": "",
"rank": 0
}
],
"meta": { "lang": "en", "total": 1 }
}Özel Alan Ekleme
Kayıt formuna yeni bir alan ekler.
curl -X POST 'https://panel.ornek.com/api/v1/admin/settings/client-fields' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"lang":"en","name":"VAT Number","type":"text","required":1,"invoice":1,"sign_form":1}'const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/client-fields', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
lang: 'en',
name: 'VAT Number',
type: 'text',
required: 1,
invoice: 1,
sign_form: 1,
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/client-fields');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'lang' => 'en',
'name' => 'VAT Number',
'required' => 1,
'sign_form' => 1,
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Alan YALNIZ verdiginiz dilde acilir; her dil icin ayri ayri eklemeniz gerekir.
foreach (['en', 'tr'] as $lang) {
Api::Settings()->CreateClientField([
'lang' => $lang,
'name' => $lang === 'tr' ? 'Vergi No' : 'VAT Number',
'required' => 1,
'sign_form' => 1,
]);
}Alanları Sıralama
Bir dildeki alanların formda görünme sırasını yazar.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/settings/client-fields/order' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"lang":"en","order":[7,5,9]}'const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/client-fields/order', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ lang: 'en', order: [7, 5, 9] }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/client-fields/order');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['lang' => 'en', 'order' => [7, 5, 9]]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Siralama DILE ozeldir: her dilde kendi kimlikleriyle ayrica sıralamaniz gerekir.
$ids = array_column(
Api::Settings()->GetClientFields([], ['lang' => 'en'])['data'],
'id',
);
Api::Settings()->ReorderClientFields(['lang' => 'en', 'order' => array_reverse($ids)]);Özel Alanı Güncelleme
Var olan bir alanı değiştirir. Alan adı boş bırakılamaz.
curl -X PATCH 'https://panel.ornek.com/api/v1/admin/settings/client-fields/5' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"name":"Tax ID","required":0}'const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/client-fields/5', {
method: 'PATCH',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ name: 'Tax ID', required: 0 }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/client-fields/5');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['name' => 'Tax ID', 'required' => 0]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Gizlemek ve zorunlu kilmak birbiriyle CELISIR: musteri goremedigi alani dolduramaz.
Api::Settings()->UpdateClientField([
'id' => 5,
'client_hidden' => 1,
'required' => 0,
]);Özel Alanı Silme
Alanı kaldırır. Müşterilerin o alana verdiği cevaplar da gider.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/settings/client-fields/5' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/client-fields/5', {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/client-fields/5');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Silmek yerine KAPATMAK cevaplari korur; alan formdan kalkar ama veri durur.
Api::Settings()->UpdateClientField(['id' => 5, 'status' => 0]);Tuzaklar
Her hazır alanın sorulma ve zorunluluk anahtarları ayrıdır. Yalnız zorunluluğu açmak alanı forma getirmez; müşteri onu hiç görmez ve ayar sessizce etkisiz kalır. İkisini birlikte açın.
Bir özel alan eklediğinizde yalnız verdiğiniz dilde oluşur. Sitede iki dil varsa ikinci dildeki müşteriler o alanı hiç görmez. Her dil için ayrı ekleme yapmanız ve sıralamayı da ayrı ayrı yazmanız gerekir.
Bir alanı müşteriden gizlemek onu hesapta, kayıt formunda, faturada ve müşteri API'sinde görünmez yapar. Aynı alanı zorunlu bırakmak kaydı imkânsız hâle getirir: müşteri göremediği bir alanı dolduramaz. Gizlerken zorunluluğu kaldırın.
Özel alanı silmek yalnız formu değiştirmez: o alana verilmiş bütün müşteri cevapları gider. Alanı artık sormak istemiyorsanız silmek yerine kapatın; form temizlenir ama toplanmış veri yerinde kalır.
Kayıt ve giriş ayrı anahtarlardır. Kaydı kapatmak var olan müşterilerin girişini engellemez; bakım için sistemi kapatmak istiyorsanız ikisini de kapatmanız gerekir. Tersi de doğrudur: girişi kapatıp kaydı açık bırakmak, hesap açabilen ama giremeyen müşteriler üretir.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.