Kirim informasi pelanggan yang terautentikasi
Untuk mengautentikasi profil pelanggan, server backend Anda harus melakukan dua panggilan API independen, yang kami sarankan untuk dijalankan secara paralel untuk kinerja yang lebih baik:
-
createCart
: Menghasilkan keranjang Zonos. Untuk panduan terperinci, lihat Siapkan bagian Zonos Checkout dalam dokumentasi integrasi kustom. -
checkoutCustomerProfileAuthenticate
: Mengirimkan dan memvalidasi informasi pelanggan.
Mutasi
mutation checkoutCustomerProfileAuthenticate(
$input: CheckoutCustomerProfileAuthenticateInput!
) {
checkoutCustomerProfileAuthenticate(input: $input) {
email
customerId
organizationId
name
phone
locations {
administrativeArea
countryCode
locality
line1
line2
postalCode
}
oneTimePassword
}
}
Variabel
{
"input": {
"email": "test@zonos.com",
"locations": [
{
"administrativeArea": "BC",
"countryCode": "CA",
"line1": "411-1033 Davie Street",
"line2": "123 testAddress2",
"locality": "Vancouver",
"name": "TestCanada TestCanada",
"postalCode": "V6E1M7"
},
{
"administrativeArea": "UT",
"countryCode": "US",
"line1": "411-1033 Davie Street",
"line2": "123 testAddress2",
"locality": "Saint George",
"name": "TestUS TestLastName",
"postalCode": "84770"
}
],
"customerId": "1234567",
"name": "testFirstName1 testLastName",
"phone": "7022920000"
}
}
Saat memvalidasi sesi pelanggan, pastikan bahwa customerId
yang Anda kirimkan dalam permintaan cocok dengan profil yang benar untuk menampilkan informasi pelanggan yang akurat di checkout. Ingatlah bahwa saat membuat keranjang, Anda tidak boleh menyertakan customerId
dalam metadata, karena akan ditimpa.
Setelah pelanggan terautentikasi dan pesanan ditempatkan, customerId akan tersedia di order.references
saat mengambil detail pesanan melalui kueri pesanan, memungkinkan Anda untuk mengaitkan pesanan dengan pelanggan yang tepat.
Buat keranjang dengan profil pelanggan
Setelah Anda memanggil kedua mutasi, Anda akan mendapatkan hal berikut:
-
cartId
dari mutasicreateCart
untuk menghasilkan keranjang. -
Sebuah
oneTimePassword
dari mutasicheckoutCustomerProfileAuthenticate
untuk autentikasi pelanggan.
Anda dapat mengirimkan kedua nilai ini dalam callback createCartId
di fungsi Zonos.init
untuk memuat informasi profil pelanggan yang diberikan di Checkout.
Zonos.init
Zonos.init({
...
checkoutSettings: {
...
createCartId: async () => {
const result = await fetch(
'https://api.merchant.com/api/get-cart-info',
{
body: JSON.stringify(payload),
method: 'POST',
},
);
const json =
await result.json();
return {
cartId: json.cartId,
customerAuthenticationToken:
json.customerProfileAuthenticate
?.checkoutCustomerProfileAuthenticate.oneTimePassword ||
'',
};
}
},
}
Kelola profil pelanggan
Saat pertama kali Anda mengirimkan informasi pelanggan, Zonos akan menyimpan informasi pelanggan yang diberikan. Metode pembayaran akan disimpan dengan aman di Stripe. Setiap kali rincian alamat atau metode pembayaran baru disampaikan, mereka akan ditambahkan ke profil pelanggan.
Saat ini, profil pelanggan hanya dapat diperbarui dengan informasi tambahan—rincian yang ada tidak dapat diedit atau dihapus.
Profil pelanggan
Muatan sebelumnya informasi pembeli berulang ke dalam Zonos Checkout.
Profil pelanggan menyederhanakan pengalaman checkout Anda dengan memungkinkan pelanggan yang memiliki akun untuk memuat sebelumnya alamat dan detail pembayaran mereka.
Fitur ini saat ini hanya tersedia untuk integrasi API kustom. Fitur ini belum tersedia untuk pedagang yang menggunakan plugin Checkout.