Müşteri Notları

1.6k görüntülenme Markdown

Müşteri kaydına iliştirilen dahili notları okuyan, ekleyen, güncelleyen ve silen dört uç.

Genel Bakış

Notlar müşteri kaydına iliştirilen dahili yazılardır. Müşteri onları hiçbir ekranda görmez; yalnız panelde çalışan yöneticiler okur.

Bir not sabitlenebilir. Sabitlenmiş notlar listenin başında durur, gerisi yeniden eskiye sıralanır.

Referans

Notları Listeleme

get/api/v1/admin/clients/{id}/notes
Clients/GetClientNotes admin

Müşterinin notlarını döndürür. Sıra sabittir: önce sabitlenmiş notlar, sonra en yeniden eskiye.

Dönen alanlar data[] — 9
idstringNot kimliği. Sayı değil, karakter dizisi.
contentstringNot metni.
pinnedboolSabitlenmiş mi.
added_byintNotu ekleyen yöneticinin kimliği.
added_by_namestringEkleyenin görünen adı; 3.x'ten düz metin olarak gelen notta boştur (added_by 0).
created_atstringOluşturma zamanı.
pinned_byint|nullNotu sabitleyen yöneticinin id'si. Not sabit değilse ya da bu alandan önce sabitlendiyse null.
pinned_by_namestring|nullNotu sabitleyenin adı — sabit not bandı yazarı değil bunu gösterir.
pinned_atstring|nullSabitlendiği zaman. Sabit kalan not düzenlenince damga korunur; sabitleme kaldırılınca üçü de silinir.
Hatalar 2
not_found404Müşteri ya da not bulunamadı.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/clients/42/notes' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/notes', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/notes');
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()->GetClientNotes(['id' => 42]);

foreach ($response['data'] as $note) {
    if ($note['pinned']) {
        $highlight[] = $note['content'];
    }
}

Not Ekleme

post/api/v1/admin/clients/{id}/notes
Clients/CreateClientNote admin

Müşteriye not ekler. Notu ekleyen olarak isteği yapan anahtarın sahibi kaydedilir.

Gövde 2
contentstringzorunluNot metni.
pinnedboolNotu listenin başına sabitler. Varsayılan false.
Dönen alanlar data
dataobjectOluşturulan not, 201 ile döner. Liste şemasıyla aynıdır.
Hatalar 4
not_found404Müşteri bulunamadı.
content_required422İçerik boş.
note_add_failed500Not oluşturulamadı.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/admin/clients/42/notes' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"content":"Odeme gecmisi temiz, oncelikli musteri","pinned":true}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/notes', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"content":"Odeme gecmisi temiz, oncelikli musteri","pinned":true}),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/notes');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'content' => 'Odeme gecmisi temiz, oncelikli musteri',
        'pinned'  => true,
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
$response = Api::Clients()->CreateClientNote([
    'id'      => 42,
    'content' => 'Odeme gecmisi temiz, oncelikli musteri',
    'pinned'  => true,
]);

Not Güncelleme

patch/api/v1/admin/clients/{id}/notes/{note_id}
Clients/UpdateClientNote admin sabitleme de burada

Notun metnini ya da sabitleme durumunu değiştirir. En az bir alan göndermeniz gerekir.

Gövde en az biri
contentstringYeni metin. Gönderilirse boş olamaz.
pinnedboolSabitler ya da sabitlemeyi kaldırır.
Dönen alanlar data
dataobjectGüncellemeden sonraki not. Liste şemasıyla aynıdır.
Hatalar 4
not_found404Müşteri ya da not bulunamadı.
content_required422İçerik boş gönderildi.
note_update_failed500Not güncellenemedi.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PATCH 'https://panel.ornek.com/api/v1/admin/clients/42/notes/a1b2c3' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"pinned":false}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/notes/a1b2c3', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ pinned: false }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/notes/a1b2c3');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PATCH',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['pinned' => false]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Sabitlemeyi kaldırmak da bu uçtandır; ayrı bir aksiyon yok.
$response = Api::Clients()->UpdateClientNote([
    'id'      => 42,
    'note_id' => 'a1b2c3',
    'pinned'  => false,
]);

Not Silme

delete/api/v1/admin/clients/{id}/notes/{note_id}
Clients/DeleteClientNote admin

Notu siler.

Dönen alanlar data
deletedboolSilme başarılı mı.
idstringSilinen notun kimliği.
Hatalar 3
not_found404Müşteri ya da not bulunamadı.
note_delete_failed500Not silinemedi.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/clients/42/notes/a1b2c3' \
  -H "Authorization: Bearer $API_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/notes/a1b2c3', {
  method: 'DELETE',
  headers: { Authorization: `Bearer ${apiKey}` },
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/notes/a1b2c3');
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);
$response = Api::Clients()->DeleteClientNote([
    'id'      => 42,
    'note_id' => 'a1b2c3',
]);

Tuzaklar

Not kimliği sayı değildir

Diğer kaynakların aksine id burada karakter dizisi (a1b2c3). Sayıya çevirmeye çalışan kod kaydı bulamaz.

Ayrı bir sabitleme ucu yoktur

Panelde sabitleme ayrı bir işlem gibi görünür, API'de ise pinned yalnızca bir alan; güncelleme ucundan geçer.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.