DOCS

顧客プロファイル

顧客プロファイル

Zonos Checkoutにリピート買い物客情報を事前読み込みします。

顧客プロファイルは、アカウントを持つ顧客が住所と支払い詳細を事前読み込みできるため、Checkout体験を効率化します。

この機能は現在、カスタムAPI統合でのみ利用可能です。Checkoutプラグインを使用する事業者にはまだ提供されていません。

顧客プロファイルを認証するには、バックエンドサーバーが2つの独立したAPI呼び出しを行う必要があります。パフォーマンス向上のため、並行実行することを推奨します:

  • createCart:Zonosカートを生成します。詳細は、カスタム統合ドキュメントのZonos Checkoutのセットアップセクションを参照してください。

  • checkoutCustomerProfileAuthenticate:顧客情報を送信して検証します。

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

顧客セッションを検証する際、リクエストで渡す customerId がCheckoutで正確な顧客情報を表示する正しいプロファイルと一致していることを確認してください。カート作成時にメタデータに customerId を含めないでください。上書きされます。

顧客が認証され注文が確定すると、orderクエリで注文詳細を取得する際に order.references で customerId が利用可能になり、注文を正しい顧客に関連付けられます。

両方のミューテーションを呼び出すと、次が返されます:

  • カート生成用の createCart ミューテーションからの cartId

  • 顧客認証用の checkoutCustomerProfileAuthenticate ミューテーションからの oneTimePassword

これら両方の値を Zonos.init 関数の createCartId コールバックに渡すと、Checkoutに提供された顧客プロファイル情報を読み込めます。

1Zonos.init({
2 ...
3 checkoutSettings: {
4 ...
5 createCartId: async () => {
6 const result = await fetch(
7 'https://api.merchant.com/api/get-cart-info',
8 {
9 body: JSON.stringify(payload),
10 method: 'POST',
11 },
12 );
13 const json =
14 await result.json();
15 return {
16 cartId: json.cartId,
17 customerAuthenticationToken:
18 json.customerProfileAuthenticate
19 ?.checkoutCustomerProfileAuthenticate.oneTimePassword ||
20 '',
21 };
22 }
23 },
24}

初回の顧客情報送信時、Zonosは提供された顧客情報を保存します。支払い方法はStripeに安全に保存されます。新しい住所または支払い方法の詳細が渡されるたびに、顧客のプロファイルに追加されます。

現在、顧客プロファイルは追加情報でのみ更新できます — 既存の詳細は編集または削除できません。

このページは役に立ちましたか?


このページでは: