DOCS

Profil pelanggan

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.

1

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mutation checkoutCustomerProfileAuthenticate(
    $input: CheckoutCustomerProfileAuthenticateInput!
  ) {
  checkoutCustomerProfileAuthenticate(input: $input) {
    email
    customerId
    organizationId
    name
    phone
    locations {
      administrativeArea
      countryCode
      locality
      line1
      line2
      postalCode
    }
    oneTimePassword
  }
}

Variabel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
	"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.

2

Buat keranjang dengan profil pelanggan

Setelah Anda memanggil kedua mutasi, Anda akan mendapatkan hal berikut:

  • cartId dari mutasi createCart untuk menghasilkan keranjang.

  • Sebuah oneTimePassword dari mutasi checkoutCustomerProfileAuthenticate 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 ||
          '',
      };
    }
  },
}
3

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.

Apakah halaman ini membantu?