DOCS

Профили клиентов

Профили клиентов

Предварительная загрузка информации о постоянных покупателях в Zonos Checkout.

Профили клиентов упрощают ваш checkout опыт, позволяя клиентам с аккаунтом заранее загрузить свои адрес и платежные данные.

Эта функция в настоящее время доступна только для пользовательских интеграций API. Эта функция еще не доступна для торговцев, использующих плагины Checkout.

1

Отправка аутентифицированной информации о клиенте

Чтобы аутентифицировать профиль клиента, ваш сервер должен выполнить два независимых API-вызова, которые мы рекомендуем выполнять параллельно для повышения производительности:

  • createCart: Генерирует корзину Zonos. Для получения подробных инструкций обратитесь к разделу Настройка Zonos Checkout в документации по пользовательской интеграции.

  • checkoutCustomerProfileAuthenticate: Отправляет и проверяет информацию о клиенте.

Мутация

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

Переменная

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

При валидации сессии клиента убедитесь, что customerId, который вы передаете в запросе, соответствует правильному профилю для отображения точной информации о клиенте в checkout. Имейте в виду, что при создании корзины не следует включать customerId в метаданные, так как он будет перезаписан.

После аутентификации клиента и размещения заказа customerId будет доступен в order.references при получении деталей заказа через запрос заказа, что позволит вам ассоциировать заказ с правильным клиентом.

2

Создание корзины с профилем клиента

После того как вы вызовете обе мутации, вы получите следующее:

  • cartId из мутации createCart для генерации корзины.

  • oneTimePassword из мутации checkoutCustomerProfileAuthenticate для аутентификации клиента.

Вы можете передать оба этих значения в обратном вызове createCartId в функции Zonos.init, чтобы загрузить предоставленную информацию о профиле клиента в 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

Управление профилями клиентов

В первый раз, когда вы отправляете информацию о клиенте, Zonos сохранит предоставленную информацию о клиенте. Способы оплаты будут храниться безопасно в Stripe. Каждый раз, когда новые данные адреса или способа оплаты передаются, они будут добавлены в профиль клиента.

В настоящее время профили клиентов можно обновлять только дополнительной информацией — существующие данные нельзя редактировать или удалять.

Была ли эта страница полезной?


На этой странице: