顧客プロファイルは、アカウントを持つ顧客が住所と支払い詳細を事前読み込みできるため、Checkout体験を効率化します。
この機能は現在、カスタムAPI統合でのみ利用可能です。Checkoutプラグインを使用する事業者にはまだ提供されていません。
再販業者、政府機関、非営利団体に販売している場合は、顧客プロファイルに免税証明書を同期することもできます。
顧客プロファイルを認証するには、バックエンドサーバーが2つの独立したAPI呼び出しを行う必要があります。パフォーマンス向上のため、並行実行することを推奨します:
createCart:Zonosカートを生成します。詳細は、カスタム統合ドキュメントのZonos Checkoutのセットアップセクションを参照してください。
createCart
checkoutCustomerProfileAuthenticate:顧客情報を送信して検証します。
checkoutCustomerProfileAuthenticate
mutation checkoutCustomerProfileAuthenticate(
$input: CheckoutCustomerProfileAuthenticateInput!
) {
checkoutCustomerProfileAuthenticate(input: $input) {
email
customerId
organizationId
name
phone
locations {
administrativeArea
countryCode
locality
line1
line2
postalCode
}
oneTimePassword
顧客セッションを検証する際、リクエストで渡す customerId がCheckoutで正確な顧客情報を表示する正しいプロファイルと一致していることを確認してください。カート作成時にメタデータに customerId を含めないでください。上書きされます。
顧客が認証され注文が確定すると、orderクエリで注文詳細を取得する際に order.references で customerId が利用可能になり、注文を正しい顧客に関連付けられます。
order.references
両方のミューテーションを呼び出すと、次が返されます:
カート生成用の createCart ミューテーションからの cartId
cartId
顧客認証用の checkoutCustomerProfileAuthenticate ミューテーションからの oneTimePassword
これら両方の値を Zonos.init 関数の createCartId コールバックに渡すと、Checkoutに提供された顧客プロファイル情報を読み込めます。
Zonos.init
createCartId
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 ||
'',
};
初回の顧客情報送信時、Zonosは提供された顧客情報を保存します。支払い方法はStripeに安全に保存されます。新しい住所または支払い方法の詳細が渡されるたびに、顧客のプロファイルに追加されます。
住所と支払い方法は追加のみ可能です — 既存のものは編集も削除もできません。顧客の名前、メール、電話番号はcheckoutCustomerUpsertで更新できます。
checkoutCustomerUpsert
checkoutCustomerProfileAuthenticate は、そのCheckoutセッション用のワンタイムパスワードを発行するため、購入者が操作中である必要があります。事前に顧客リストをプロビジョニングする、自社システムからプロファイルの変更を同期する、顧客の初回注文前に免税情報を添付するなど、Checkoutの外でプロファイルを作成・更新したい場合は、代わりに checkoutCustomerUpsert を使用してください。
mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) {
checkoutCustomerUpsert(input: $input) {
プロファイルは customerId で照合されるため、これを繰り返し呼び出しても、重複が作成されるのではなく同じプロファイルが更新されます。顧客リスト全体に対してスケジュール実行しても安全です。
更新の適用のされ方について、知っておくべき点が3つあります:
checkoutCustomerUpsert は oneTimePassword を返しません。プロファイルをCheckoutに読み込むには、そのセッション用のワンタイムパスワードを発行する checkoutCustomerProfileAuthenticate が引き続き必要です。
CheckoutCustomerProfileInput
顧客プロファイル
顧客プロファイル
Zonos Checkoutにリピート買い物客情報を事前読み込みします。顧客プロファイルは、アカウントを持つ顧客が住所と支払い詳細を事前読み込みできるため、Checkout体験を効率化します。
この機能は現在、カスタムAPI統合でのみ利用可能です。Checkoutプラグインを使用する事業者にはまだ提供されていません。
再販業者、政府機関、非営利団体に販売している場合は、顧客プロファイルに免税証明書を同期することもできます。
認証済み顧客情報の送信
顧客プロファイルを認証するには、バックエンドサーバーが2つの独立したAPI呼び出しを行う必要があります。パフォーマンス向上のため、並行実行することを推奨します:
createCart:Zonosカートを生成します。詳細は、カスタム統合ドキュメントのZonos Checkoutのセットアップセクションを参照してください。checkoutCustomerProfileAuthenticate:顧客情報を送信して検証します。mutation checkoutCustomerProfileAuthenticate($input: CheckoutCustomerProfileAuthenticateInput!) {checkoutCustomerProfileAuthenticate(input: $input) {emailcustomerIdorganizationIdnamephonelocations {administrativeAreacountryCodelocalityline1line2postalCode}oneTimePassword}}顧客セッションを検証する際、リクエストで渡す
customerIdがCheckoutで正確な顧客情報を表示する正しいプロファイルと一致していることを確認してください。カート作成時にメタデータにcustomerIdを含めないでください。上書きされます。顧客が認証され注文が確定すると、orderクエリで注文詳細を取得する際に
order.referencesで customerId が利用可能になり、注文を正しい顧客に関連付けられます。顧客プロファイル付きカートの作成
両方のミューテーションを呼び出すと、次が返されます:
カート生成用の
createCartミューテーションからのcartId顧客認証用の
checkoutCustomerProfileAuthenticateミューテーションからのoneTimePasswordこれら両方の値を
Zonos.init関数のcreateCartIdコールバックに渡すと、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 ||'',};}},}顧客プロファイルの管理
初回の顧客情報送信時、Zonosは提供された顧客情報を保存します。支払い方法はStripeに安全に保存されます。新しい住所または支払い方法の詳細が渡されるたびに、顧客のプロファイルに追加されます。
住所と支払い方法は追加のみ可能です — 既存のものは編集も削除もできません。顧客の名前、メール、電話番号は
checkoutCustomerUpsertで更新できます。購入者不在でのプロファイルの作成または更新
checkoutCustomerProfileAuthenticateは、そのCheckoutセッション用のワンタイムパスワードを発行するため、購入者が操作中である必要があります。事前に顧客リストをプロビジョニングする、自社システムからプロファイルの変更を同期する、顧客の初回注文前に免税情報を添付するなど、Checkoutの外でプロファイルを作成・更新したい場合は、代わりにcheckoutCustomerUpsertを使用してください。mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) {checkoutCustomerUpsert(input: $input) {customerIdemailnamephonelocations {administrativeAreacountryCodeline1line2localitypostalCode}}}プロファイルは
customerIdで照合されるため、これを繰り返し呼び出しても、重複が作成されるのではなく同じプロファイルが更新されます。顧客リスト全体に対してスケジュール実行しても安全です。更新の適用のされ方について、知っておくべき点が3つあります:
nameのみを送信すると、名前が更新され、メールと電話番号はそれまでの値のまま残ります。checkoutCustomerUpsertはoneTimePasswordを返しません。プロファイルをCheckoutに読み込むには、そのセッション用のワンタイムパスワードを発行するcheckoutCustomerProfileAuthenticateが引き続き必要です。CheckoutCustomerProfileInput
checkoutCustomerUpsert
このページは役に立ちましたか?