Hızlı Okumalar
Müşteri arayan, sayıları veren ve özet kartını dolduran, hiçbir şeyi değiştirmeyen dört uç.
Genel Bakış
Bu dört uç bir müşteri hakkında hızlı bilgi verir ve hiçbir şeyi değiştirmez. Panelde arama kutusu, pano sayıları ve özet kartı bunları kullanır.
İkisi kurulum geneline bakar (arama ve istatistikler), ikisi tek bir müşteriye (özet ve öne çıkan not). Adres içinde müşteri kimliği olup olmaması hangisinde olduğunuzu söyler.
Referans
Müşteri Arama
Ada, firmaya ya da e-postaya göre müşteri arar. Otomatik tamamlama kutuları için yazılmıştır.
search adı da kabul edilir.curl -G 'https://panel.ornek.com/api/v1/admin/clients/search' \
-H "Authorization: Bearer $API_KEY" \
-d q=acmeconst url = new URL('https://panel.ornek.com/api/v1/admin/clients/search');
url.searchParams.set('q', 'acme');
const res = await fetch(url, { headers: { Authorization: `Bearer ${apiKey}` } });
const body = await res.json();$url = 'https://panel.ornek.com/api/v1/admin/clients/search?' . http_build_query(['q' => 'acme']);
$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);$response = Api::Clients()->SearchClients([], ['q' => 'acme']);Müşteri İstatistikleri
Kurulumdaki tüm müşteriler için sayıları döndürür. Tek bir müşteriye bakmaz.
all_time, today, week, month ya da year. Varsayılan all_time.curl -G 'https://panel.ornek.com/api/v1/admin/clients/stats' \
-H "Authorization: Bearer $API_KEY" \
-d period=monthconst url = new URL('https://panel.ornek.com/api/v1/admin/clients/stats');
url.searchParams.set('period', 'month');
const res = await fetch(url, { headers: { Authorization: `Bearer ${apiKey}` } });
const body = await res.json();$url = 'https://panel.ornek.com/api/v1/admin/clients/stats?' . http_build_query(['period' => 'month']);
$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);$response = Api::Clients()->GetClientsStats([], ['period' => 'month']);{
"data": {
"active": 120,
"blocked": 3,
"new": 18,
"blacklisted": 2,
"active_services": 340,
"unpaid_invoices": 41,
"credit_balance": 14620.12,
"growth_rate": 4.5,
"total": 145
}
}Müşteri Özeti
Tek bir müşteri için özet kart verisi döndürür: gelir, hizmet ve talep sayıları, rozetler, güven puanı.
reference/currencies.poor, fair, good ya da excellent.curl 'https://panel.ornek.com/api/v1/admin/clients/42/summary' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/summary', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/summary');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->GetClientSummary(['id' => 42]);
// Puanin nereden geldigini bilesenlerden okuyabilirsiniz.
$score = $response['data']['trust_score'];
$fromServices = $score['services'];{
"data": {
"user_id": 9,
"full_name": "Test Client",
"company_name": "",
"created_at": "2021-03-18 00:00:00",
"total_revenue": 36,
"revenue_currency": 4,
"paid_invoices": 1,
"active_services": 16,
"inactive_services": 16,
"total_tickets": 0,
"recent_tickets": 0,
"badges": {
"loyal": true,
"revenue": false,
"multi_service": true,
"experienced": true
},
"trust_score": {
"total": 50,
"label": "fair",
"services": 30,
"revenue": 5,
"age": 15,
"tickets": 0
}
}
}Öne Çıkan Notu Getirme
Müşterinin tek bir notunu döndürür: varsa sabitlenmiş olanı, yoksa en yenisini.
null.curl 'https://panel.ornek.com/api/v1/admin/clients/42/latest-note' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/latest-note', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
// Hic not yoksa data null gelir — 404 degil.
if (body.data === null) return;$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/latest-note');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->GetClientLatestNote(['id' => 42]);
// Notu olmayan musteride 'data' null olur.
$note = $response['data'] ?? null;Tuzaklar
Kredi bakiyesi ve gelir alanları sembolsüz sayılardır; tarih de ham biçimdedir. Para birimini ayrı alandan okuyup biçimlendirmeyi kendiniz yaparsınız. Bu bilinçlidir: sunucu okuyucunun yerelini bilmez.
Öne çıkan not ucu, notu olmayan bir müşteride 404 değil data: null döndürür. Alanlara doğrudan erişen kod burada patlar; önce boş olup olmadığına bakın.
Özetteki puan sabit bir ölçek değildir; yapılandırmadaki kademelerden hesaplanır. Kademeleri değiştirdiğinizde aynı müşterinin puanı değişir, dolayısıyla puanı kurulumlar arasında karşılaştırmayın.
İ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.