Müşteriler API

Müşteriler modülünün tüm işlemleri (27) ve veri modelleri (6): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Her müşteri için tek kayıt; tüm modüller aynı kaydı kullanır.

Modül kodu customers · 27 işlem · 6 veri modeli · 18 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: customers (hepsi), customers:read (yalnız okuma) ya da customers:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
addressesaddress/api/v1/addressescustomers.add_address
customer_addressescustomer_address/api/v1/customer_addresses
customer_identitiescustomer_identity/api/v1/customer_identities
customer_login_codescustomer_login_code/api/v1/customer_login_codes
customer_loginscustomer_login/api/v1/customer_logins
customerscustomer/api/v1/customerscustomers.capturecustomers.updatecustomers.archive

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
customers.add_addresscustomers:writeAdres ekle
customers.add_identitycustomers:writeBu kişiyi tanımanın bir yolunu ekle
customers.add_my_addresscustomers:writeHesabıma adres ekle
customers.archivecustomers:deleteMüşteriyi arşivle
customers.capturecustomers:writeMüşteri ekle veya tanı
customers.capture_site_guestcustomers:writeWeb alıcısını tanı
customers.confirm_email_changecustomers:writeYeni e-postamı onayla
customers.disable_logincustomers:manageSite hesabını kapat
customers.enable_logincustomers:manageSite hesabını yeniden aç
customers.exportcustomers:exportMüşterileri dışa aktar
customers.mergecustomers:manageİki müşteriyi birleştir
customers.remove_addresscustomers:deleteAdresi arşivle
customers.remove_identitycustomers:writeBu kişiyi tanıma yolunu kaldır
customers.remove_my_addresscustomers:writeHesabımdan adresi kaldır
customers.request_email_changecustomers:writeGiriş e-postamı değiştir
customers.request_sign_in_codecustomers:writeGiriş kodu gönder
customers.restorecustomers:deleteMüşteriyi geri yükle
customers.send_sign_in_linkcustomers:writeSite giriş bağlantısı gönder
customers.set_default_addresscustomers:writeVarsayılan adresi belirle
customers.set_my_passwordcustomers:writeŞifremi belirle
customers.set_parentcustomers:writeBir şirkete bağla
customers.sign_in_with_passwordcustomers:writeŞifreyle giriş yap
customers.sign_outcustomers:writeÇıkış yap
customers.updatecustomers:writeMüşteriyi düzenle
customers.update_addresscustomers:writeAdresi düzenle
customers.update_my_profilecustomers:writeBilgilerimi güncelle
customers.verify_sign_in_codecustomers:writeKodla giriş yap

customers.add_address

Adres ekle — Kişinin adres defterine bir teslimat veya fatura adresi koyar.

Gereken izin customers:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/addresses/actions/add_address
API anahtarı ya da OAuth token · customers:write
  • REST kısayolu: POST /api/v1/addresses
  • Asıl adres: POST /api/v1/actions/customers.add_address

Girdi

AlanTürZorunluAçıklama
iduuidevetMüşteri · kimliği: customer
labelstringEtiket · Ev, Ofis — seçicide görünen ad. · en çok 60
firstNamestringAd · en çok 256
lastNamestringSoyad · en çok 256
companyNamestringŞirket · en çok 256
streetAddress1stringSokak · en çok 256
streetAddress2stringSokak (satır 2) · en çok 256
cityAreastringİlçe · en çok 128
citystringŞehir · en çok 256
countryAreastringİl / eyalet · en çok 128
postalCodestringPosta kodu · en çok 20
countrystringÜlke · ISO kodu, ör. TR. · en çok 2
phonephoneTelefon
rawstringAdres (yazıldığı gibi) · Henüz kimsenin bölmediği bir adres ve adres yapısı tanımlı olmayan ülkeler için geçiş alanı. · en çok 2000
validationSkippedbooleanDoğrulanmadan kabul edildi
isDefaultShippingbooleanTeslimat için varsayılan
isDefaultBillingbooleanFatura için varsayılan

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundKayıt bulunmalı.
already_mergedBirleştirilmiş bir kayıt, kalan kaydı üzerinden düzenlenir.
empty_addressİçi boş bir adres kayıt değildir.

Yayımladığı olaylar: customers.address_changed

Neye yazar: address (insert) — Writes the address; customer_address (upsert) — Links it to the person

curl -X POST https://app.getera.io/api/v1/addresses/actions/add_address \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.address_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.addresses.create({
  id: "CUSTOMER_ID"
})
era addresses create \
  --id "CUSTOMER_ID"
tools/call
{
  "name": "era__customers__add_address",
  "arguments": {
    "id": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_merged, empty_address · 429 çok sık istek

customers.add_identity

Bu kişiyi tanımanın bir yolunu ekle — Bir müşteri için başka bir e-posta, telefon, alan adı veya harici anahtar kaydeder.

Gereken izin customers:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/customer_identities/actions/add_identity
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.add_identity

Girdi

AlanTürZorunluAçıklama
iduuidevetMüşteri · kimliği: customer
kindstring (enum)evetTür · İzin verilen değerler: email, phone, domain, external, app_user, channel
valuestringevetDeğer · en çok 320

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundKayıt bulunmalı.
already_mergedBirleştirilmiş bir kayıt, kalan kaydı üzerinden düzenlenir.
empty_identityDeğer boş olmamalı.
identity_already_presentKayıt bu anahtarı zaten taşımamalı.
identity_takenBaşka birine ait bir anahtar düzenleme değil, birleştirmedir.

Yayımladığı olaylar: customers.identity_changed

Neye yazar: customer_identity (insert) — Adds the key

curl -X POST https://app.getera.io/api/v1/customer_identities/actions/add_identity \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CUSTOMER_ID","kind":"email","value":"Value"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.identity_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customerIdentities.addIdentity({
  id: "CUSTOMER_ID",
  kind: "email",
  value: "Value"
})
era customer_identities add_identity \
  --id "CUSTOMER_ID" \
  --kind "email" \
  --value "Value"
tools/call
{
  "name": "era__customers__add_identity",
  "arguments": {
    "id": "CUSTOMER_ID",
    "kind": "email",
    "value": "Value"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_merged, empty_identity, identity_already_present, identity_taken · 429 çok sık istek

customers.add_my_address

Hesabıma adres ekle — Giriş yapmış müşteri, kendi adres defterine bir teslimat veya fatura adresi kaydeder.

Gereken izin customers:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/addresses/actions/add_my_address
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.add_my_address

Girdi

AlanTürZorunluAçıklama
labelstringEtiket · en çok 60
firstNamestringAd · en çok 256
lastNamestringSoyad · en çok 256
streetAddress1stringSokak · en çok 256
streetAddress2stringSokak (satır 2) · en çok 256
cityAreastringİlçe · en çok 128
citystringŞehir · en çok 256
countryAreastringİl · en çok 128
postalCodestringPosta kodu · en çok 20
countrystringÜlke · en çok 2
phonephoneTelefon
isDefaultShippingbooleanTeslimat için varsayılan
isDefaultBillingbooleanFatura için varsayılan

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
empty_addressAdreste en az sokak, şehir ya da posta kodu olmalı.

Yayımladığı olaylar: customers.address_changed

Neye yazar: address (insert) — The address; customer_address (insert) — In their own book

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 empty_address · 429 çok sık istek

customers.archive

Müşteriyi arşivle — Hiçbir şeyi silmeden kaydı listelerden ve seçicilerden çıkarır.

Gereken izin customers:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/customers/{id}/actions/archive
API anahtarı ya da OAuth token · customers:delete
  • REST kısayolu: DELETE /api/v1/customers/{id}
  • Asıl adres: POST /api/v1/actions/customers.archive

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Müşteri · kimliği: customer

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundKayıt bulunmalı.
already_mergedBirleştirilmiş kayıt zaten kullanımdan çıktı.
already_archivedKayıt hâlâ aktif olmalı.

Yayımladığı olaylar: customers.archived

Neye yazar: customer (update) — Stamps archived_at

curl -X POST https://app.getera.io/api/v1/customers/CUSTOMER_ID/actions/archive \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.archived"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customers.archive("CUSTOMER_ID")
era customers archive CUSTOMER_ID
tools/call
{
  "name": "era__customers__archive",
  "arguments": {
    "id": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_merged, already_archived · 429 çok sık istek

customers.capture

Müşteri ekle veya tanı — Bir e-posta veya telefon numarasını tek bir müşteri kaydına bağlar; yalnızca yeniyse oluşturur.

Gereken izin customers:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/customers/actions/capture
API anahtarı ya da OAuth token · customers:write
  • REST kısayolu: POST /api/v1/customers
  • Asıl adres: POST /api/v1/actions/customers.capture

Girdi

AlanTürZorunluAçıklama
namestringevetAd · en çok 200
firstNamestringAd · en çok 100
lastNamestringSoyad · en çok 100
phoneCountryCodenumberÜlke telefon kodu · en az 1 · en çok 9999
countrystringÜlke · ISO kodu, ör. TR. · en çok 2
localestringDil · en çok 35
emailemailE-posta
phonephoneTelefon
notesstringNotlar · en çok 2000
kindstring (enum)Tür · İzin verilen değerler: person, company
identitiesobject / arrayDiğer anahtarlar · E-posta ve telefon dışındaki anahtarlar: bir kanal kimliği, harici bir referans, bir şirket alan adı.

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
no_identityKişiyi tanımanın en az bir yolu gerekli.
unknown_identity_kindHer anahtar bilinen bir türde olmalı.

Yayımladığı olaylar: customers.created, customers.recognised

Neye yazar: customer (upsert) — Creates the customer when the identity is new; customer_identity (upsert) — Records every way this person reaches you

curl -X POST https://app.getera.io/api/v1/customers/actions/capture \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.created",
    "customers.recognised"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customers.create({
  name: "Name"
})
era customers create \
  --name "Name"
tools/call
{
  "name": "era__customers__capture",
  "arguments": {
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 no_identity, unknown_identity_kind · 429 çok sık istek

customers.capture_site_guest

Web alıcısını tanı — Ödemenin iletişim adımı: giriş yapmış müşteri ya da e-postasıyla tanınan misafir; teslimat adresi bu siparişin kendi kopyası olarak yazılır.

Gereken izin customers:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/customers/actions/capture_site_guest
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.capture_site_guest

Girdi

AlanTürZorunluAçıklama
emailstringevetE-posta · en çok 320
firstNamestringAd · en çok 100
lastNamestringSoyad · en çok 100
phonestringTelefon · en çok 40
streetAddress1stringSokak · en çok 256
streetAddress2stringSokak (satır 2) · en çok 256
cityAreastringİlçe · en çok 128
citystringŞehir · en çok 256
countryAreastringİl · en çok 128
postalCodestringPosta kodu · en çok 20
countrystringÜlke · en çok 2

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_emailE-posta adresi geçerli olmalı.
name_missingAd ve soyad girilmeli.

Yayımladığı olaylar: customers.recognised, customers.created

Neye yazar: customer (insert) — A new guest, when the email is not known; address (insert) — The delivery address, as the order’s own copy

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_email, name_missing · 429 çok sık istek

customers.confirm_email_change

Yeni e-postamı onayla — Yeni gelen kutusuna gelen kod, site hesabını ve müşteri kaydını o adrese taşır.

Gereken izin customers:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/customer_login_codes/actions/confirm_email_change
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.confirm_email_change

Girdi

AlanTürZorunluAçıklama
emailemailevetYeni e-posta
codestringevetKod · en çok 12

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_signed_inE-postanızı değiştirmek için giriş yapmış olmalısınız.
login_disabledİşletme bu hesabı kapattı.
same_emailYeni adres mevcut adresten farklı olmalı.
email_takenBu adres bu arada başka bir hesap tarafından alındı.
code_expiredDeğişiklik kodu on dakika geçerlidir.

Yayımladığı olaylar: customers.login_changed, customers.updated

Neye yazar: customer_login_code (update) — Counts the attempt or uses the code up; customer_login (update) — Moves the sign-in to the new address; customer (update) — Their record gets the new address

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_signed_in, login_disabled, same_email, email_taken, code_expired · 429 çok sık istek

customers.disable_login

Site hesabını kapat — Müşterinin web sitenize girişini durdurur ve tüm cihazlarda oturumunu kapatır. Kaydı ve geçmişi korunur.

Gereken izin customers:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/customer_logins/actions/disable_login
API anahtarı ya da OAuth token · customers:manage
  • Asıl adres: POST /api/v1/actions/customers.disable_login

Girdi

AlanTürZorunluAçıklama
iduuidevetMüşteri · kimliği: customer
reasonstringNeden · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundMüşteri bulunmalı.
no_loginBu müşterinin site hesabı yok.
already_disabledBu hesap zaten kapalı.

Yayımladığı olaylar: customers.login_changed

Neye yazar: customer_login (update) — Switched off, with the reason; customer_session (update) — Every open session revoked

curl -X POST https://app.getera.io/api/v1/customer_logins/actions/disable_login \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.login_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customerLogins.disableLogin({
  id: "CUSTOMER_ID"
})
era customer_logins disable_login \
  --id "CUSTOMER_ID"
tools/call
{
  "name": "era__customers__disable_login",
  "arguments": {
    "id": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, no_login, already_disabled · 429 çok sık istek

customers.enable_login

Site hesabını yeniden aç — Müşterinin web sitenize yeniden giriş yapmasına izin verir.

Gereken izin customers:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/customer_logins/actions/enable_login
API anahtarı ya da OAuth token · customers:manage
  • Asıl adres: POST /api/v1/actions/customers.enable_login

Girdi

AlanTürZorunluAçıklama
iduuidevetMüşteri · kimliği: customer

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundMüşteri bulunmalı.
no_loginBu müşterinin site hesabı yok.
not_disabledBu hesap zaten açık.

Yayımladığı olaylar: customers.login_changed

Neye yazar: customer_login (update) — Switched back on

curl -X POST https://app.getera.io/api/v1/customer_logins/actions/enable_login \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.login_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customerLogins.enableLogin({
  id: "CUSTOMER_ID"
})
era customer_logins enable_login \
  --id "CUSTOMER_ID"
tools/call
{
  "name": "era__customers__enable_login",
  "arguments": {
    "id": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, no_login, not_disabled · 429 çok sık istek

customers.export

Müşterileri dışa aktar — Filtrelenmiş hâliyle müşteri listesi; müşteriler ekranı bunu CSV veya Excel dosyasına dönüştürür.

Gereken izin customers:export · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/actions/customers.export
API anahtarı ya da OAuth token · customers:export

Girdi

AlanTürZorunluAçıklama
qstringAra · en çok 200
kindstring (enum)Tür · İzin verilen değerler: person, company
idsobject / arrayYalnızca bu müşteriler
excludeIdsobject / arrayBu müşterileri hariç tut

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_filterDahil edilecek ya da hariç tutulacak müşteri listesi müşteri kimliklerinden oluşmalı.

Yayımladığı olaylar: customers.exported

curl -X POST https://app.getera.io/api/v1/actions/customers.export \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"q":"Search"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.exported"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("customers.export", {
  q: "Search"
})
era run customers.export \
  --q "Search"
tools/call
{
  "name": "era__customers__export",
  "arguments": {
    "q": "Search"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:export izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_filter · 429 çok sık istek

customers.merge

İki müşteriyi birleştir — Bir kaydı diğerine katar; kimliklerini ve geçmişini taşır.

Gereken izin customers:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/customers/{id}/actions/merge
API anahtarı ya da OAuth token · customers:manage
  • Asıl adres: POST /api/v1/actions/customers.merge

Girdi

AlanTürZorunluAçıklama
keepIduuidevetDoldurulduğu yer: adresteki {id} · Tut · kimliği: customer
mergeIduuidevetBirleştirilip kaldırılacak · kimliği: customer
resolvedobject / arraySeçilen değerler · İki kayıt farklıysa, kalan kaydın tutacağı değer: name, firstName, lastName, email, phone, phoneCountryCode, country, locale, notes.

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundİki kayıt da bulunmalı.
same_recordİki kayıt farklı olmalı.
already_mergedBirleştirilen kayıt hâlâ etkin olmalı.
keep_is_mergedKalacak kayıt hâlâ etkin olmalı.
company_has_membersBir şirkete bağlı kişiler yalnızca o şirketle birlikte başka bir şirkete taşınabilir.

Yayımladığı olaylar: customers.merged

Neye yazar: customer (update) — Tombstones the merged record and applies the chosen values; customer_identity (update) — Moves identities to the survivor; customer_address (update) — Moves the address book to the survivor

curl -X POST https://app.getera.io/api/v1/customers/CUSTOMER_ID/actions/merge \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"mergeId":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.merged"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customers.merge("CUSTOMER_ID", {
  mergeId: "CUSTOMER_ID"
})
era customers merge CUSTOMER_ID \
  --merge-id "CUSTOMER_ID"
tools/call
{
  "name": "era__customers__merge",
  "arguments": {
    "keepId": "CUSTOMER_ID",
    "mergeId": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, same_record, already_merged, keep_is_merged, company_has_members · 429 çok sık istek

customers.remove_address

Adresi arşivle — Adresi, onu kullanan belgelere dokunmadan defterden çıkarır.

Gereken izin customers:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/addresses/{id}/actions/remove_address
API anahtarı ya da OAuth token · customers:delete
  • Asıl adres: POST /api/v1/actions/customers.remove_address

Girdi

AlanTürZorunluAçıklama
addressIduuidevetDoldurulduğu yer: adresteki {id} · Adres · kimliği: address

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
address_not_foundAdres bulunmalı.
address_is_snapshotBelgedeki kopya belgeye aittir.
already_archivedAdres hâlâ adres defterinde olmalı.

Yayımladığı olaylar: customers.address_changed

Neye yazar: address (update) — Stamps archived_at; customer_address (update) — Clears the defaults

curl -X POST https://app.getera.io/api/v1/addresses/ADDRESSE_ID/actions/remove_address \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.address_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.addresses.removeAddress("ADDRESSE_ID")
era addresses remove_address ADDRESSE_ID
tools/call
{
  "name": "era__customers__remove_address",
  "arguments": {
    "addressId": "ADDRESSE_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 address_not_found, address_is_snapshot, already_archived · 429 çok sık istek

customers.remove_identity

Bu kişiyi tanıma yolunu kaldır — Bir anahtarı bırakır; geriye kalan tek anahtar değilse.

Gereken izin customers:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/customer_identities/actions/remove_identity
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.remove_identity

Girdi

AlanTürZorunluAçıklama
iduuidevetMüşteri · kimliği: customer
kindstring (enum)evetTür · İzin verilen değerler: email, phone, domain, external, app_user, channel
valuestringevetDeğer · en çok 320

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundKayıt bulunmalı.
already_mergedBirleştirilmiş bir kayıt, kalan kaydı üzerinden düzenlenir.
identity_not_foundAnahtar bu kayıtta olmalı.
last_identityBir kaydın tanınmanın en az bir yolu kalmalı.

Yayımladığı olaylar: customers.identity_changed

Neye yazar: customer_identity (delete) — Removes the key

curl -X POST https://app.getera.io/api/v1/customer_identities/actions/remove_identity \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CUSTOMER_ID","kind":"email","value":"Value"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.identity_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customerIdentities.removeIdentity({
  id: "CUSTOMER_ID",
  kind: "email",
  value: "Value"
})
era customer_identities remove_identity \
  --id "CUSTOMER_ID" \
  --kind "email" \
  --value "Value"
tools/call
{
  "name": "era__customers__remove_identity",
  "arguments": {
    "id": "CUSTOMER_ID",
    "kind": "email",
    "value": "Value"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_merged, identity_not_found, last_identity · 429 çok sık istek

customers.remove_my_address

Hesabımdan adresi kaldır — Giriş yapmış müşteri, kendi adres defterinden bir adresi çıkarır.

Gereken izin customers:write · siler ya da geri alınamaz · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/addresses/{id}/actions/remove_my_address
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.remove_my_address

Girdi

AlanTürZorunluAçıklama
addressIduuidevetDoldurulduğu yer: adresteki {id} · Adres · kimliği: address

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
address_not_on_customerBu adres adres defterinizde bulunamadı.

Yayımladığı olaylar: customers.address_changed

Neye yazar: address (update) — Archived — orders that used it keep their copy; customer_address (update) — No longer a default

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 address_not_on_customer · 429 çok sık istek

customers.request_email_change

Giriş e-postamı değiştir — Giriş yapmış müşteri başka bir adresle giriş yapmak ister; adresin kendisine ait olduğunu kanıtlaması için o adrese bir kod gider.

Gereken izin customers:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/customer_login_codes/actions/request_email_change
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.request_email_change

Girdi

AlanTürZorunluAçıklama
emailemailevetYeni e-posta
sourceIpstringGönderen adresi · en çok 64

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_signed_inE-postanızı değiştirmek için giriş yapmış olmalısınız.
login_disabledİşletme bu hesabı kapattı.
same_emailYeni adres mevcut adresten farklı olmalı.
email_takenBu adres başka bir hesap tarafından kullanılıyor.
too_many_codesBir adrese saatte en fazla beş kod gönderilebilir.

Yayımladığı olaylar: customers.sign_in_code_requested

Neye yazar: customer_login_code (insert) — Stores the hash of a ten-minute change code

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_signed_in, login_disabled, same_email, email_taken, too_many_codes · 429 çok sık istek

customers.request_sign_in_code

Giriş kodu gönder — Ziyaretçinin siteye girmek için yazacağı altı haneli bir kodu e-postayla gönderir; şifre gerekmez.

Gereken izin customers:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/customer_login_codes/actions/request_sign_in_code
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.request_sign_in_code

Girdi

AlanTürZorunluAçıklama
emailemailevetE-posta
sourceIpstringGönderen adresi · en çok 64

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
login_disabledİşletme bu hesabı kapattı.
too_many_codesBir adrese saatte en fazla beş kod gönderilebilir.

Yayımladığı olaylar: customers.sign_in_code_requested

Neye yazar: customer_login_code (insert) — Stores the hash of a ten-minute code

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 login_disabled, too_many_codes · 429 çok sık istek

customers.restore

Müşteriyi geri yükle — Arşivlenmiş bir kaydı geri getirir.

Gereken izin customers:delete · veriyi değiştirir

POSThttps://app.getera.io/api/v1/customers/{id}/actions/restore
API anahtarı ya da OAuth token · customers:delete
  • Asıl adres: POST /api/v1/actions/customers.restore

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Müşteri · kimliği: customer

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundKayıt bulunmalı.
already_mergedBirleştirilmiş bir kayıt, kalan kaydı üzerinden geri yüklenir.
not_archivedKayıt arşivlenmiş olmalı.

Yayımladığı olaylar: customers.restored

Neye yazar: customer (update) — Clears archived_at

curl -X POST https://app.getera.io/api/v1/customers/CUSTOMER_ID/actions/restore \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.restored"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customers.restore("CUSTOMER_ID")
era customers restore CUSTOMER_ID
tools/call
{
  "name": "era__customers__restore",
  "arguments": {
    "id": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_merged, not_archived · 429 çok sık istek

Site giriş bağlantısı gönder — Müşteriye web sitenize giriş yapması için bir bağlantı e-postayla gönderir; ilk seferde ya da giriş yapamadığında. Kendi kodunu orada alır.

Gereken izin customers:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/actions/customers.send_sign_in_link
API anahtarı ya da OAuth token · customers:write
AlanTürZorunluAçıklama
iduuidevetMüşteri · kimliği: customer

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundMüşteri bulunmalı.
already_mergedBirleştirilmiş bir kayıt üzerinde değil, birleştiği kayıt üzerinde işlem yapılır.
no_emailMüşterinin bir e-posta adresi olmalı.
login_disabledKapalı bir hesaba, yeniden açılana kadar bağlantı gönderilmez.

Yayımladığı olaylar: customers.sign_in_link_sent

curl -X POST https://app.getera.io/api/v1/actions/customers.send_sign_in_link \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.sign_in_link_sent"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("customers.send_sign_in_link", {
  id: "CUSTOMER_ID"
})
era run customers.send_sign_in_link \
  --id "CUSTOMER_ID"
tools/call
{
  "name": "era__customers__send_sign_in_link",
  "arguments": {
    "id": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_merged, no_email, login_disabled · 429 çok sık istek

customers.set_default_address

Varsayılan adresi belirle — Aksi söylenmedikçe teslimat veya fatura için hangi adresin kullanılacağı.

Gereken izin customers:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/customer_addresses/actions/set_default_address
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.set_default_address

Girdi

AlanTürZorunluAçıklama
iduuidevetMüşteri · kimliği: customer
addressIduuidevetAdres · kimliği: address
shippingbooleanTeslimat için varsayılan
billingbooleanFatura için varsayılan

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundKayıt bulunmalı.
already_mergedBirleştirilmiş bir kayıt, kalan kaydı üzerinden düzenlenir.
address_not_on_customerAdres bu kişinin adres defterinde olmalı.
address_archivedArşivlenmiş bir adres varsayılan olamaz.
nothing_to_setHangi varsayılanın kastedildiğini belirtin.

Yayımladığı olaylar: customers.address_default_changed

Neye yazar: customer_address (update) — Moves the default

curl -X POST https://app.getera.io/api/v1/customer_addresses/actions/set_default_address \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"CUSTOMER_ID","addressId":"ADDRESS_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.address_default_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customerAddresses.setDefaultAddress({
  id: "CUSTOMER_ID",
  addressId: "ADDRESS_ID"
})
era customer_addresses set_default_address \
  --id "CUSTOMER_ID" \
  --address-id "ADDRESS_ID"
tools/call
{
  "name": "era__customers__set_default_address",
  "arguments": {
    "id": "CUSTOMER_ID",
    "addressId": "ADDRESS_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_merged, address_not_on_customer, address_archived, nothing_to_set · 429 çok sık istek

customers.set_my_password

Şifremi belirle — Giriş yapmış müşteri, site hesabının şifresini belirler veya değiştirir.

Gereken izin customers:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/customer_logins/actions/set_my_password
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.set_my_password

Girdi

AlanTürZorunluAçıklama
passwordstringevetYeni şifre · en çok 200
currentPasswordstringMevcut şifre · en çok 200

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_signed_inŞifrenizi değiştirmek için giriş yapmış olmalısınız.
password_too_shortŞifre en az sekiz karakter olmalı.
wrong_passwordŞifreyi değiştirmek için mevcut şifre doğru girilmeli.

Yayımladığı olaylar: customers.login_changed

Neye yazar: customer_login (update) — Stores the scrypt hash of the password

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_signed_in, password_too_short, wrong_password · 429 çok sık istek

customers.set_parent

Bir şirkete bağla — Bu kişinin hangi şirkete ait olduğunu belirtir ya da bağlantıyı kaldırır.

Gereken izin customers:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/customers/{id}/actions/set_parent
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.set_parent

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Müşteri · kimliği: customer
parentIduuidŞirket · kimliği: customer

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundİki kayıt da bulunmalı.
already_mergedBirleştirilmiş bir kayıt, kalan kaydı üzerinden düzenlenir.
self_parentBir kayıt kendine ait olamaz.
parent_not_a_companyYalnızca bir şirkete kişi bağlanabilir.
parent_cycleİki şirket birbirini içeremez.

Yayımladığı olaylar: customers.parent_changed

Neye yazar: customer (update) — Sets the company link

curl -X POST https://app.getera.io/api/v1/customers/CUSTOMER_ID/actions/set_parent \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"parentId":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.parent_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customers.setParent("CUSTOMER_ID", {
  parentId: "CUSTOMER_ID"
})
era customers set_parent CUSTOMER_ID \
  --parent-id "CUSTOMER_ID"
tools/call
{
  "name": "era__customers__set_parent",
  "arguments": {
    "id": "CUSTOMER_ID",
    "parentId": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_merged, self_parent, parent_not_a_company, parent_cycle · 429 çok sık istek

customers.sign_in_with_password

Şifreyle giriş yap — Müşteriyi hesabında belirlediği şifreyle siteye giriş yaptırır.

Gereken izin customers:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/customer_logins/actions/sign_in_with_password
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.sign_in_with_password

Girdi

AlanTürZorunluAçıklama
emailemailevetE-posta
passwordstringevetŞifre · en çok 200
sourceIpstringGönderen adresi · en çok 64
userAgentstringTarayıcı · en çok 400

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
wrong_credentialsE-posta veya şifre hatalı.
login_disabledİşletme bu hesabı kapattı.

Yayımladığı olaylar: customers.signed_in

Neye yazar: customer_session (insert) — A thirty-day site session; customer_login (update) — Last sign-in

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 wrong_credentials, login_disabled · 429 çok sık istek

customers.sign_out

Çıkış yap — Müşterinin bu cihazdaki site oturumunu kapatır.

Gereken izin customers:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/actions/customers.sign_out
API anahtarı ya da OAuth token · customers:write

Girdi

AlanTürZorunluAçıklama
sessionIduuidevetOturum

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
session_not_foundBu oturum bulunamadı ya da zaten kapanmış.

Yayımladığı olaylar: customers.signed_out

Neye yazar: customer_session (update) — Revoked

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 session_not_found · 429 çok sık istek

customers.update

Müşteriyi düzenle — Kişinin bilgilerini değiştirir ve sistemin geri kalanına bildirir.

Gereken izin customers:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/customers/{id}/actions/update
API anahtarı ya da OAuth token · customers:write
  • REST kısayolu: PATCH /api/v1/customers/{id}
  • Asıl adres: POST /api/v1/actions/customers.update

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Müşteri · kimliği: customer
namestringAd · en çok 200
firstNamestringAd · en çok 100
lastNamestringSoyad · en çok 100
phoneCountryCodenumberÜlke telefon kodu · en az 1 · en çok 9999
countrystringÜlke · ISO kodu, ör. TR. · en çok 2
localestringDil · en çok 35
emailemailE-posta
phonephoneTelefon
notesstringNotlar · en çok 2000
kindstring (enum)Tür · İzin verilen değerler: person, company

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_foundKayıt bulunmalı.
already_mergedBirleştirilmiş bir kayıt, kalan kaydı üzerinden düzenlenir.
company_has_membersKişi bağlı bir şirket kişiye dönüşemez.

Yayımladığı olaylar: customers.updated

Neye yazar: customer (update) — Updates the record

curl -X POST https://app.getera.io/api/v1/customers/CUSTOMER_ID/actions/update \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.customers.update("CUSTOMER_ID", {
  name: "Name"
})
era customers update CUSTOMER_ID \
  --name "Name"
tools/call
{
  "name": "era__customers__update",
  "arguments": {
    "id": "CUSTOMER_ID",
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_found, already_merged, company_has_members · 429 çok sık istek

customers.update_address

Adresi düzenle — Defterdeki bir adresi değiştirir. Bir belgede dondurulmuş kopya değişmez.

Gereken izin customers:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/addresses/{id}/actions/update_address
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.update_address

Girdi

AlanTürZorunluAçıklama
addressIduuidevetDoldurulduğu yer: adresteki {id} · Adres · kimliği: address
labelstringEtiket · en çok 60
firstNamestringAd · en çok 256
lastNamestringSoyad · en çok 256
companyNamestringŞirket · en çok 256
streetAddress1stringSokak · en çok 256
streetAddress2stringSokak (satır 2) · en çok 256
cityAreastringİlçe · en çok 128
citystringŞehir · en çok 256
countryAreastringİl / eyalet · en çok 128
postalCodestringPosta kodu · en çok 20
countrystringÜlke · ISO kodu, ör. TR. · en çok 2
phonephoneTelefon
rawstringAdres (yazıldığı gibi) · Henüz kimsenin bölmediği bir adres ve adres yapısı tanımlı olmayan ülkeler için geçiş alanı. · en çok 2000
validationSkippedbooleanDoğrulanmadan kabul edildi

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
address_not_foundAdres bulunmalı.
address_is_snapshotBir belgedeki adres kopyası asla değişmez.
empty_addressİçi boş bir adres kayıt değildir.

Yayımladığı olaylar: customers.address_changed

Neye yazar: address (update) — Updates the address; customer_address (update) — Updates its label

curl -X POST https://app.getera.io/api/v1/addresses/ADDRESSE_ID/actions/update_address \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"label":"Label"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "customers.address_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.addresses.updateAddress("ADDRESSE_ID", {
  label: "Label"
})
era addresses update_address ADDRESSE_ID \
  --label "Label"
tools/call
{
  "name": "era__customers__update_address",
  "arguments": {
    "addressId": "ADDRESSE_ID",
    "label": "Label"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 address_not_found, address_is_snapshot, empty_address · 429 çok sık istek

customers.update_my_profile

Bilgilerimi güncelle — Giriş yapmış müşteri kendi adını, telefonunu ve dilini düzeltir.

Gereken izin customers:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (customer)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/customers/actions/update_my_profile
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.update_my_profile

Girdi

AlanTürZorunluAçıklama
firstNamestringAd · en çok 100
lastNamestringSoyad · en çok 100
phonephoneTelefon
localestringDil · en çok 35

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
name_requiredAd boş bırakılamaz.

Yayımladığı olaylar: customers.updated

Neye yazar: customer (update) — Their own record

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 name_required · 429 çok sık istek

customers.verify_sign_in_code

Kodla giriş yap — E-postayla gelen kodu doğrular ve ziyaretçiyi içeri alır; ilk seferde hesabını açar ve işletmenin zaten tanıdığı müşteriye bağlar.

Gereken izin customers:write · veriyi değiştirir · Yayındaki bir siteden de çağrılabilir (visitor)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/customer_logins/actions/verify_sign_in_code
API anahtarı ya da OAuth token · customers:write
  • Asıl adres: POST /api/v1/actions/customers.verify_sign_in_code

Girdi

AlanTürZorunluAçıklama
emailemailevetE-posta
codestringevetKod · en çok 12
namestringAd · en çok 200
acceptTermsbooleanGizlilik bildirimini kabul etti
sourceIpstringGönderen adresi · en çok 64
userAgentstringTarayıcı · en çok 400

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
code_expiredKod yalnızca bir kez ve on dakika içinde kullanılabilir.
login_disabledİşletme bu hesabı kapattı.

Yayımladığı olaylar: customers.signed_in, customers.sign_in_failed, customers.login_created, customers.created, customers.recognised

Neye yazar: customer_login_code (update) — Counts the attempt or uses the code up; customer_login (upsert) — Makes the login the first time; marks the email verified; customer (insert) — A new customer when nobody with this email is known; customer_identity (insert) — The email, as a way of recognising them; customer_session (insert) — A thirty-day site session

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde customers:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 code_expired, login_disabled · 429 çok sık istek

Veri modelleri

Address

Tablo address · Kaynak addresses

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
first_namestring · textevet
last_namestring · textevet
company_namestring · textevet
street_address_1string · textevet
street_address_2string · textevet
city_areastring · textevet
citystring · textevet
country_areastring · textevet
postal_codestring · textevet
countrystring · bpchareveten çok 2
phonestring · textevet
rawstring · textevet
validation_skippedboolean · bool
is_snapshotboolean · bool
archived_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((COALESCE(street_address_1, city, postal_code, raw, company_name) IS NOT NULL))
  • CHECK ((NOT (is_snapshot AND (archived_at IS NOT NULL))))

CustomerAddress

Tablo customer_address · Kaynak customer_addresses

  • GET /api/v1/customer_addresses
  • GET /api/v1/customer_addresses/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
customer_idstring (uuid) · uuidcustomer
address_idstring (uuid) · uuidaddress
is_default_shippingboolean · bool
is_default_billingboolean · bool
labelstring · textevet
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: customer_id, address_id

CustomerIdentity

Tablo customer_identity · Kaynak customer_identities

  • GET /api/v1/customer_identities
  • GET /api/v1/customer_identities/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
customer_idstring (uuid) · uuidcustomer
kindstring · textemail, phone, domain, external, app_user, channel
valuestring · text
sourcestring · text
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (( CASE kind WHEN 'email'::text THEN (value = lower(value)) WHEN 'domain'::text THEN (value = lower(value)) ELSE true END AND (value = btrim(value)) AND (length(value) > 0)))

CustomerLoginCode

Tablo customer_login_code · Kaynak customer_login_codes

  • GET /api/v1/customer_login_codes
  • GET /api/v1/customer_login_codes/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidevetsite
login_idstring (uuid) · uuidevetcustomer_login
channelstring · textemail, sms
destinationstring · text
attemptsinteger · int4
expires_atstring (date-time) · timestamptz
consumed_atstring (date-time) · timestamptzevet
source_ipstring · textevet
created_atstring (date-time) · timestamptz
purposestring · textsign_in, email_change

Birincil anahtar: id

CustomerLogin

Tablo customer_login · Kaynak customer_logins

  • GET /api/v1/customer_logins
  • GET /api/v1/customer_logins/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
customer_idstring (uuid) · uuidcustomer
emailstring · textevet
phonestring · textevet
email_verified_atstring (date-time) · timestamptzevet
phone_verified_atstring (date-time) · timestamptzevet
terms_accepted_atstring (date-time) · timestamptzevet
disabled_atstring (date-time) · timestamptzevet
disabled_reasonstring · textevet
last_sign_in_atstring (date-time) · timestamptzevet
sign_in_countinteger · int4
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((email IS NOT NULL) OR (phone IS NOT NULL)))
  • CHECK (((email IS NULL) OR ((email = lower(btrim(email))) AND (POSITION(('@'::text) IN (email)) > 1))))
  • CHECK (((disabled_reason IS NULL) OR (length(disabled_reason) <= 500)))

Customer

Tablo customer · Kaynak customers

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
kindstring · textperson, company
namestring · text
emailstring · textevet
phonestring · textevet
notesstring · textevet
owner_user_idstring (uuid) · uuidevetapp_user
merged_into_idstring (uuid) · uuidevetcustomer
archived_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
first_namestring · textevet
last_namestring · textevet
phone_country_codeinteger · int2evet
countrystring · bpchareveten çok 2
parent_customer_idstring (uuid) · uuidevetcustomer
localestring · textevet
avatar_file_idstring (uuid) · uuidevetfile
anonymized_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
customers.address_changedBir adres eklendi, düzenlendi ya da arşivlendi.id, addressId, added
customers.address_default_changedVarsayılan teslimat ya da fatura adresi değişti.id, addressId, shipping, billing
customers.archivedBir müşteri kullanımdan kaldırıldı.id
customers.createdYeni bir müşteri eklendi.id, name
customers.exportedMüşteri listesi dosya olarak indirildi.count, truncated
customers.identity_changedBir müşterinin tanımlayıcı bilgilerinden biri eklendi ya da kaldırıldı.id, kind, added, removed
customers.login_changedBir site hesabı kapatıldı ya da açıldı veya şifresi değişti.id, customerId, change
customers.login_createdBir müşteri sitede hesap açtı.id, customerId, recognised
customers.mergedİki kayıt tek kayıtta birleştirildi.id, mergedId
customers.parent_changedBiri bir şirkete bağlandı ya da şirketten ayrıldı.id, parentId
customers.recognisedGelen biri mevcut bir müşteriyle eşleşti.id
customers.restoredArşivlenmiş bir müşteri geri getirildi.id
customers.sign_in_code_requestedSiteye giriş kodu gönderildi.loginId, codeId
customers.sign_in_failedYanlış giriş kodu yazıldı.codeId, burnt
customers.sign_in_link_sentBir ekip üyesi müşteriye siteye giriş bağlantısını e-postayla gönderdi.id, loginId
customers.signed_inBir müşteri siteye giriş yaptı.loginId, customerId, method
customers.signed_outBir müşteri siteden çıkış yaptı.customerId, sessionId
customers.updatedBir müşterinin bilgileri değişti.id, name
Bu sayfa yardımcı oldu mu?