1733739918
2024-12-03 18:01:00
電子商取引エコシステムでは、多くの場合、ユーザーが 1 つのカートを使用して複数のサイトで買い物をできるシームレスなショッピング エクスペリエンスが求められます。 Optimizely サイトと非 Optimizely サイト間でカートを共有するのは難しい場合がありますが、適切な戦略を立てれば実現可能です。これを設定する方法についてのガイドは次のとおりです。
概要
目標は、ユーザーがカートと製品の情報をプラットフォーム間でシームレスに共有できるようにすることです。これは、カートと製品情報をやり取りする API を作成することで実現します。ここでは API を追加していません。この実装では、次の 2 つのシナリオがカバーされています。
- ログインしているユーザー
- 匿名ユーザー
1. ログインユーザーの処理
ログインしているユーザーの場合、 SSOID 顧客情報やカート データなどのコンテキストがサイト間で一貫していることを保証します。 SSOID は、リクエスト ヘッダーでフロントエンドから API に渡されます。
実装手順
-
ヘッダーから SSOID をキャプチャする
を使用します。Request.Headersバックエンドで userId (SSOID) を抽出します。Request.Headers.TryGetValue("userId", out var ssoId); - 顧客連絡先の取得
SSOID を使用して、ログイン ユーザーのコンテキストとカート データを取得します。private static CustomerContact GetCustomer(string ssoId) { var currentContact = CustomerContext.Current.CurrentContact; if (string.IsNullOrEmpty(ssoId)) return currentContact; currentContact = CustomerContext.Current.GetContactByUserId($"String:{ssoId}"); return currentContact; } - カートデータを同期すると
CustomerContactオブジェクトを使用すると、カート データを取得してサイト間で同期できます。
重要なメモ
- SSOID がヘッダーで安全に送信されていることを確認してください。
- SSOID が見つからないか無効な場合に予期しないエラーを回避するには、適切なエラー処理が重要です。
2. 匿名ユーザーの処理
匿名ユーザーには一貫した SSOID がありませんが、Cookie (EPiServer_Commerce_AnonymousId)。
実装手順
-
Cookie から匿名 ID を取得する
匿名ユーザー ID を格納する Cookie 値を抽出します。 -
サイト間でカートを共有する
取得した匿名ユーザー ID を使用して、サイト間でカート データを同期します。
重要なメモ
- サイトが異なるドメインでホストされている場合は、クロスドメイン アクセス用に Cookie を構成する必要があります。
- Cookie の有効期限と無効化のシナリオが適切に処理されるようにします。
API設計
以下は、API エンドポイントがどのように見えるかを示す高レベルの例です。
ログインユーザーのカートを取得
終点: GET /api/cart/loggedin
ヘッダ: ユーザーID:
匿名ユーザー用のカートを入手
終点: GET /api/cart/anonymous
クッキー:
応答例
両方のエンドポイントは、次のような標準化された形式でカートを返します。
結論
ログイン ユーザーには SSOID、匿名ユーザーには Cookie を活用することで、サイト間でシームレスなショッピング エクスペリエンスを保証します。カートと製品情報をやり取りする堅牢な API を使用すると、ユーザーは統合されたカート システムを利用して、ユーザーの満足度を高め、コンバージョンを促進できます。
注:- これは、すべてのサイトが同じトップ メイン ドメインを共有している場合にのみ機能します。
2024 年 12 月 3 日
#非 #Optimizeley #フロントエンド #サイト間で #Optimizely #カートを共有