Kirim informasi pelanggan yang diautentikasi
Untuk mengautentikasi profil pelanggan, server backend Anda harus membuat dua panggilan API independen, yang kami rekomendasikan untuk dijalankan secara paralel untuk kinerja yang lebih baik:
-
createCart: Menghasilkan keranjang Zonos. Untuk panduan terperinci, lihat bagian Siapkan Zonos Checkout dalam dokumentasi integrasi kustom. -
checkoutCustomerProfileAuthenticate: Mengirimkan dan memvalidasi informasi pelanggan.
mutation checkoutCustomerProfileAuthenticate($input: CheckoutCustomerProfileAuthenticateInput!) { checkoutCustomerProfileAuthenticate(input: $input) { email customerId organizationId name phone locations { administrativeArea countryCode locality line1 line2 postalCode } oneTimePassword }}Saat memvalidasi sesi pelanggan, pastikan bahwa customerId yang Anda berikan dalam permintaan cocok dengan profil yang benar untuk menampilkan informasi pelanggan yang akurat saat checkout. Ingat bahwa saat membuat keranjang, Anda tidak boleh menyertakan customerId dalam metadata, karena akan ditimpa.
Setelah pelanggan diautentikasi dan pesanan ditempatkan, customerId akan tersedia di order.references saat mengambil detail pesanan melalui kueri pesanan, memungkinkan Anda mengasosiasikan pesanan dengan pelanggan yang benar.
Buat keranjang dengan profil pelanggan
Setelah Anda memanggil kedua mutasi, Anda akan mendapatkan kembali berikut ini:
-
cartIddari mutasicreateCartuntuk menghasilkan keranjang. -
Sebuah
oneTimePassworddari mutasicheckoutCustomerProfileAuthenticateuntuk autentikasi pelanggan.
Anda dapat meneruskan kedua nilai ini dalam callback createCartId dalam fungsi Zonos.init untuk memuat informasi profil pelanggan yang disediakan di Checkout.
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
Pertama kali Anda mengirimkan informasi pelanggan, Zonos akan menyimpan informasi pelanggan yang disediakan. Metode pembayaran akan disimpan dengan aman di Stripe. Setiap kali detail alamat atau metode pembayaran baru dimasukkan, mereka akan ditambahkan ke profil pelanggan.
Alamat dan metode pembayaran hanya dapat ditambahkan—yang sudah ada tidak dapat diedit atau dihapus. Nama, email, dan nomor telepon pelanggan dapat diperbarui dengan checkoutCustomerUpsert.
Buat atau perbarui profil tanpa pembeli
checkoutCustomerProfileAuthenticate mengharuskan pembeli hadir, karena mutasi ini menerbitkan kata sandi satu kali untuk sesi checkout tersebut. Saat Anda ingin membuat atau memperbarui profil di luar checkout—memuat daftar pelanggan Anda terlebih dahulu, menyinkronkan perubahan profil dari sistem Anda sendiri, atau melampirkan pembebasan pajak sebelum pesanan pertama pelanggan—gunakan checkoutCustomerUpsert sebagai gantinya.
mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) { checkoutCustomerUpsert(input: $input) { customerId email name phone locations { administrativeArea countryCode line1 line2 locality postalCode } }}Profil dicocokkan berdasarkan customerId, sehingga memanggil mutasi ini berulang kali akan memperbarui profil yang sama, bukan membuat duplikat. Aman untuk dijalankan pada seluruh daftar pelanggan Anda secara terjadwal.
Tiga hal yang perlu diketahui tentang cara penerapan pembaruan:
- Kolom yang dihilangkan tidak diubah. Mengirimkan hanya
nameakan memperbarui nama dan membiarkan email serta nomor telepon tetap seperti sebelumnya. - Nilai tidak dapat dikosongkan. Mengirimkan nilai kosong diperlakukan sama seperti menghilangkan kolom tersebut, sehingga tidak ada cara untuk menghapus nama, email, atau nomor telepon setelah ditetapkan.
- Alamat hanya dapat ditambahkan. Lokasi yang sudah ada pada profil tidak akan diduplikasi, dan lokasi yang tidak disertakan dalam permintaan tidak akan dihapus.
Profil pelanggan
Muat informasi pembeli berulang sebelumnya ke dalam Zonos Checkout.
Profil pelanggan menyederhanakan pengalaman checkout Anda dengan memungkinkan pelanggan dengan 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.
Jika Anda menjual kepada reseller, instansi pemerintah, atau organisasi nirlaba, Anda juga dapat menyinkronkan sertifikat pembebasan pajak mereka ke profil pelanggan.