DOCS

Các hồ sơ khách hàng

Các hồ sơ khách hàng

Tải trước thông tin người mua sắm định kỳ vào Zonos Checkout.

Các hồ sơ khách hàng giúp tối ưu hóa trải nghiệm checkout của bạn bằng cách cho phép khách hàng có tài khoản tải trước địa chỉ và thông tin thanh toán của họ.

Tính năng này hiện chỉ có sẵn cho các tích hợp API tùy chỉnh. Tính năng này chưa có sẵn cho các thương nhân sử dụng các plugin Checkout.

1

Gửi thông tin khách hàng đã xác thực

Để xác thực một hồ sơ khách hàng, máy chủ backend của bạn phải thực hiện hai cuộc gọi API độc lập, mà chúng tôi khuyên bạn nên chạy song song để có hiệu suất tốt hơn:

  • createCart: Tạo giỏ hàng Zonos. Để biết hướng dẫn chi tiết, hãy tham khảo Phần thiết lập Zonos Checkout trong tài liệu tích hợp tùy chỉnh.

  • checkoutCustomerProfileAuthenticate: Gửi và xác thực thông tin của khách hàng.

Biến đổi

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
  }
}

Biến

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"
	}
}

Khi xác thực phiên khách hàng, hãy đảm bảo rằng customerId bạn truyền trong yêu cầu khớp với hồ sơ chính xác để hiển thị thông tin khách hàng chính xác tại checkout. Hãy nhớ rằng khi tạo giỏ hàng, bạn không nên bao gồm customerId trong siêu dữ liệu, vì nó sẽ bị ghi đè.

Sau khi khách hàng được xác thực và đơn hàng được đặt, customerId sẽ có sẵn trong order.references khi truy xuất chi tiết đơn hàng qua truy vấn đơn hàng, cho phép bạn liên kết đơn hàng với khách hàng chính xác.

2

Tạo giỏ hàng với hồ sơ khách hàng

Sau khi bạn gọi cả hai phép biến đổi, bạn sẽ nhận được các giá trị sau:

  • cartId từ phép biến đổi createCart để tạo giỏ hàng.

  • Một oneTimePassword từ phép biến đổi checkoutCustomerProfileAuthenticate cho việc xác thực khách hàng.

Bạn có thể truyền cả hai giá trị này trong callback createCartId trong hàm Zonos.init để tải thông tin hồ sơ khách hàng đã cung cấp trong 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

Quản lý hồ sơ khách hàng

Lần đầu tiên bạn gửi thông tin khách hàng, Zonos sẽ lưu trữ thông tin khách hàng đã cung cấp. Các phương thức thanh toán sẽ được lưu trữ một cách an toàn trong Stripe. Mỗi khi có thông tin địa chỉ hoặc phương thức thanh toán mới được cung cấp, chúng sẽ được thêm vào hồ sơ của khách hàng.

Hiện tại, hồ sơ khách hàng chỉ có thể được cập nhật với thông tin bổ sung—các chi tiết hiện có không thể được chỉnh sửa hoặc xóa.

Trang này có hữu ích không?