Müşteri Adresleri

14 görüntülenme Markdown

Bir müşterinin adres defterini okuyan, ekleyen, güncelleyen ve silen beş uç.

Genel Bakış

Bir müşterinin birden çok adresi olabilir ve faturalar bunlardan birine kesilir. Adres defteri müşteri kaydından ayrı durur.

Adreslerden biri varsayılandır. Yeni bir adresi varsayılan yapmak öncekinin işaretini kaldırır; iki varsayılan adres olamaz.

Bildirim tercihleri

Bildirim tercihi bitmask olarak saklanır: tek sayı, birden çok tercihi taşır.

Referans

Adresleri Listeleme

get/api/v1/admin/clients/{id}/addresses
Clients/GetClientAddresses admin

Müşterinin adres defterinin tamamını döndürür. Varsayılan adres is_default ile işaretlidir.

Dönen alanlar data[] — 17
idintAdres kimliği.
full_namestringAd soyad.
labelstringAdres etiketi, örneğin Ofis.
typestringindividual veya corporate.
emailstringE-posta adresi.
phonestringTelefon; yalnız rakam saklanır.
identitystringKimlik ya da vergi numarası.
companyobjectKurumsal adreste vergi bilgileri.
namestringTicari unvan.
tax_numberstringVergi kimlik numarası.
tax_officestringVergi dairesi.
country_idintÜlke kimliği. Karşılığı: reference/countries.
statestringEyalet ya da bölge.
citystringŞehir.
addressstringAçık adres.
zipcodestringPosta kodu. En çok 20 karakter.
is_defaultboolVarsayılan adres mi.
email_notificationsintE-posta bildirim tercihi (bitmask).
sms_notificationsintSMS bildirim tercihi (bitmask).
statusstringactive veya passive.
Hatalar 2
not_found404Müşteri ya da adres bulunamadı.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/clients/42/addresses' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Accept: application/json'
const res  = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/addresses', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/addresses');
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()->GetClientAddresses(['id' => 42]);

foreach ($response['data'] as $address) {
    if ($address['is_default']) {
        $invoiceAddress = $address;
    }
}

Adres Ekleme

post/api/v1/admin/clients/{id}/addresses
Clients/CreateClientAddress admin

Adres defterine yeni bir kayıt ekler ve oluşan adresi listeyle aynı şemada döndürür.

Gövde 16 alan, 5'i zorunlu
full_namestringzorunluAd soyad.
emailstringzorunluBiçimi doğrulanır.
country_idintzorunluÜlke kimliği. Liste: reference/countries.
statestringzorunluEyalet ya da bölge.
citystringzorunluŞehir.
typestringindividual veya corporate. Varsayılan individual.
labelstringAdres etiketi.
phonestringTelefon; yalnız rakam saklanır.
identitystringKimlik ya da vergi numarası.
companyobjectKurumsal adreste vergi bilgileri.
namestringTicari unvan.
tax_numberstringVergi kimlik numarası.
tax_officestringVergi dairesi.
addressstringAçık adres.
zipcodestringPosta kodu. En çok 20 karakter.
is_defaultboolBu adresi varsayılan yapar.
email_notificationsintE-posta bildirim tercihi. Varsayılan: tümü açık.
sms_notificationsintSMS bildirim tercihi. Varsayılan: tümü açık.
overwrite_invoicesboolBu adresi müşterinin açık faturalarına da uygular.
Dönen alanlar data
dataobjectOluşturulan adres, 201 ile döner. Liste şemasıyla aynıdır.
Hatalar 4
not_found404Müşteri ya da adres bulunamadı.
email_invalid422E-posta biçimi geçersiz.
address_add_failed500Kayıt oluşturulamadı.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/admin/clients/42/addresses' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"full_name":"Ayse Yilmaz","email":"[email protected]","country_id":792,"state":"Marmara","city":"Istanbul","address":"Ornek Cadde 1","zipcode":"34000","is_default":true}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/addresses', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"full_name":"Ayse Yilmaz","email":"[email protected]","country_id":792,"state":"Marmara","city":"Istanbul","address":"Ornek Cadde 1","zipcode":"34000","is_default":true}),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/addresses');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'full_name'  => 'Ayse Yilmaz',
        'email'      => '[email protected]',
        'country_id' => 792,
        'state'      => 'Marmara',
        'city'       => 'Istanbul',
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
$response = Api::Clients()->CreateClientAddress([
    'id'         => 42,
    'full_name'  => 'Ayse Yilmaz',
    'email'      => '[email protected]',
    'country_id' => 792,
    'state'      => 'Marmara',
    'city'       => 'Istanbul',
    'is_default' => true,
]);

$addressId = $response['data']['id'] ?? 0;
Yanıt
{
  "data": {
    "id": 13,
    "full_name": "Ayse Yilmaz",
    "type": "individual",
    "country_id": 792,
    "city": "Istanbul",
    "zipcode": "34000",
    "is_default": true,
    "status": "active"
  }
}
{
  "error": {
    "code": "email_invalid",
    "message": "A valid email is required."
  }
}

Adres Detayı

get/api/v1/admin/clients/{id}/addresses/{addr_id}
Clients/GetClientAddress admin

Tek bir adresi döndürür. Şema listedekiyle aynıdır.

Dönen alanlar data
dataobjectAdresin kendisi. Liste şemasıyla aynıdır.
Hatalar 2
not_found404Müşteri ya da adres bulunamadı.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/clients/42/addresses/13' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/addresses/13', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/addresses/13');
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()->GetClientAddress(['id' => 42, 'addr_id' => 13]);

Adres Güncelleme

put/api/v1/admin/clients/{id}/addresses/{addr_id}
Clients/UpdateClientAddress admin tam değiştirme

Adresi günceller. Gövde ekleme ile aynı alanları alır ve zorunlular yine zorunludur.

Gövde ekleme ile aynı 16 alan
full_namestringzorunluAd soyad.
emailstringzorunluBiçimi doğrulanır.
country_idintzorunluÜlke kimliği.
statestringzorunluEyalet ya da bölge.
citystringzorunluŞehir.
overwrite_invoicesboolDeğişikliği müşterinin açık faturalarına da uygular.
Dönen alanlar data
dataobjectGüncellemeden sonraki adres. Liste şemasıyla aynıdır.
Hatalar 7
not_found404Müşteri ya da adres bulunamadı.
full_name_required422full_name zorunlu.
email_invalid422Geçerli bir e-posta zorunlu.
country_required422country_id zorunlu.
state_required422state zorunlu.
city_required422city zorunlu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/admin/clients/42/addresses/13' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"full_name":"Ayse Yilmaz","email":"[email protected]","country_id":792,"state":"Marmara","city":"Istanbul","address":"Ornek Cadde 1","zipcode":"34000","is_default":true}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/addresses/13', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"full_name":"Ayse Yilmaz","email":"[email protected]","country_id":792,"state":"Marmara","city":"Istanbul","address":"Ornek Cadde 1","zipcode":"34000","is_default":true}),
});

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

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Zorunlu alanlar tekrar gönderilir: bu kısmi değil, tam güncellemedir.
$response = Api::Clients()->UpdateClientAddress([
    'id'         => 42,
    'addr_id'    => 13,
    'full_name'  => 'Ayse Yilmaz',
    'email'      => '[email protected]',
    'country_id' => 792,
    'state'      => 'Marmara',
    'city'       => 'Istanbul',
]);

Adres Silme

delete/api/v1/admin/clients/{id}/addresses/{addr_id}
Clients/DeleteClientAddress admin

Adresi siler ve silinen kimliği döndürür.

Dönen alanlar data
deletedboolSilme başarılı mı.
idintSilinen adresin kimliği.
Hatalar 1
not_found404Müşteri ya da adres bulunamadı.
İstek
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/clients/42/addresses/13' \
  -H "Authorization: Bearer $API_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/42/addresses/13', {
  method: 'DELETE',
  headers: { Authorization: `Bearer ${apiKey}` },
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/42/addresses/13');
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()->DeleteClientAddress(['id' => 42, 'addr_id' => 13]);

Tuzaklar

Varsayılan adres tekildir

Bir adresi is_default ile işaretlemek önceki varsayılanın işaretini kaldırır. Eski adresi ayrıca güncellemeniz gerekmez; iki varsayılan adres oluşamaz.

Açık faturalar kendiliğinden değişmez

Adresi güncellemek daha önce kesilmiş faturalara yansımaz. Yansımasını istiyorsanız overwrite_invoices alanını gönderin.

Güncelleme kısmi değildir

PUT. Zorunlu alanları göndermezseniz istek reddedilir; yalnız değişen alanı göndermek yetmez.

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.