クイックスタート
買い物客のコンテキストに関するベストプラクティス
買い物客の位置情報
パーソナライズされたプロモーション、配送、支払方法
現時点以降の購入
店舗固有の価格表とプロモーション
ソースコードベースの価格表とプロモーション
プロモーションのタイプと要件
Agentic MCP Shopper Tools クイックスタート (パイロット)
URL マッピング
Ask the Community
ジオロケーションは、買い物客の位置情報に基づいてパーソナライズされた体験を提供する上で重要な役割を果たします。このガイドを使用して、Shopper Context API の位置情報機能をストアフロントに統合し、買い物客の体験を向上させます。
B2C Commerce バージョン 24.7 では、以下の方法で位置情報を操作できます。
request.geolocation.city == 'San Francisco' が含まれる動的顧客グループがあるとします。グループメンバーシップの評価では、この買い物客に対するその後のリクエストには、この位置情報の場所が適用されます。詳細については、位置情報を使用した顧客セグメンテーションを参照してください。Note
をクリックし、管理 > グローバル環境設定 > 機能スイッチを選択します。SCAPI 位置情報サービスは、Anycast 関連の IP アドレスをサポートしていません。Anycast では、同一の IP を複数の場所で使用できるため、1 つの場所に解決することはできません。
Important
SCAPI を使用すると、クライアントの IP アドレスを使用して位置情報が取得され、B2C Commerce プラットフォームで位置情報が検索されます。
買い物客のコンテキストの PATCH または PUTリクエストに clientIp 属性を含めます。たとえば、次のようになります。
1curl 'https://$CODE.api.commercecloud.salesforce.com/shopper/shopper-context/v1/organizations/$ORG/shopper-context/$USID' \
2 --method 'PUT' \
3 --header 'Authorization: Bearer $TOKEN' \
4 --header 'Content-Type: application/json' \
5 --data '{ "clientIp": "13.108.0.0" }'次のキーは HTTP レスポンスヘッダー x-geolocation で提供され、セミコロン (;) で区切られています。
1x-geolocation: CountryCode: US; Country: United States; City: San Francisco; PostalCode: 94105; MetroCode: 820; Region: San Francisco; RegionCode: CA; Latitude: 37.7749; Longitude: -122.4194位置情報 HTTP レスポンスヘッダーは、x-geolocation または X-Geolocation として返すことができるため、大文字と小文字を区別しない方法で使用します。
Note
clientIp を使用して位置情報を取得すると、情報は返されますが、後続のリクエストには影響しません。clientIp によって提供された位置情報を後続のリクエストで使用するには、evaluateContextWithClientIp クエリパラメーターを指定する必要があります。
evaluateContextWithClientIp が true: に設定されている場合:
clientIP は保存され、後続のリクエストで使用されます。evaluateContextWithClientIp が false に設定されている場合:
どちらの場合も、x-geolocation レスポンスヘッダーが返されます。Null または空の値は返されません。
geoLocation 属性を使用して、特定のコンテキスト位置情報を設定することもできます。ネイティブブラウザー機能 (navigator.geolocation) または手動によるユーザー入力によってユーザーの位置情報を収集し、これらの座標を Shopper Context API に送信してサイトのパーソナライゼーションに役立てることができます。
次のオプションのパラメーターを任意に組み合わせて手動で設定できます。
以下の Shopper Context リクエストの例では、位置情報を設定するために、geoLocation 属性に city パラメーターと countryCode パラメーターを指定しています。
1{
2 "clientIp": "12.12.12.1",
3 "geoLocation": {
4 "city": "Boston",
5 "countryCode": "US"
6 }
7}返されるレスポンスヘッダー x-geolocation は次のとおりです。
1x-geolocation: CountryCode: US; City: Boston;リクエストボディで geoLocation 属性を使用して位置情報を設定した場合、その位置情報は後続のリクエストのコンテキストとして保存されます。コンテキストで geoLocation と clientIp の両方が設定されている場合、geoLocation で設定された位置情報は、clientIp から解決された位置情報よりも優先されます。
Important
たとえば、次のようなプロモーション構成があるとします。
次の Shopper Context リクエストでは、clientIp 属性と geoLocation 属性の両方が指定されています。この場合、geoLocation 値が優先され、レスポンスヘッダー x-geolocation は、リクエスト内の geoLocation 属性に基づいて位置情報を返します。
1curl 'https://$CODE.api.commercecloud.salesforce.com/shopper/shopper-context/v1/organizations/$ORG/shopper-context/$USID' \
2 --method 'PUT' \
3 --header 'Authorization: Bearer $TOKEN' \
4 --header 'Content-Type: application/json' \
5 --data '{ "clientIp": "12.12.12.1",
6 "geoLocation": {
7 "countryCode": "US",
8 "country": "United States of America",
9 "city": "Boston",
10 "postalCode": "01730",
11 "metroCode": "M234",
12 "region": "NA",
13 "regionCode": "12345",
14 "latitude": 10.11,
15 "longitude": 198.34
16 }
17 }'次の x-geolocation レスポンスヘッダーが返されます。
1x-geolocation: CountryCode: US; Country: United States of America; City: Boston; PostalCode: 01730; MetroCode: M234; Region: NA; RegionCode: 12345; Latitude: 10.11; Longitude: 198.34clientIp 12.12.12.1 は米国ニューヨークに解決されますが、ペイロードの geoLocation で米国ボストンが指定されているため、コンテキストはボストン固有のプロモーションに基づいて評価され、レディーストップスが 15% 割引になります。
この場合、ユーザーに位置情報の入力を求めるプロンプトを表示し、それを Shopper Context API に送信できます。
1curl 'https://$CODE.api.commercecloud.salesforce.com/shopper/shopper-context/v1/organizations/$ORG/shopper-context/$USID' \
2 --method 'PUT' \
3 --header 'Authorization: Bearer $TOKEN' \
4 --header 'Content-Type: application/json' \
5 --data '{ "geoLocation": { "latitude": 37.7749, "longitude": -122.4194 } }'1curl 'https://$CODE.api.commercecloud.salesforce.com/shopper/shopper-context/v1/organizations/$ORG/shopper-context/$USID' \
2 --method 'PUT' \
3 --header 'Authorization: Bearer $TOKEN' \
4 --header 'Content-Type: application/json' \
5 --data '{ "geoLocation": { "countryCode": "US", "city": "San Francisco" } }'買い物客のコンテキストの PATCH 呼び出しで geoLocation 属性が更新されると、個々のプロパティ値ではなく、既存の位置情報値全体が置き換えられます。位置情報プロパティは連携して機能するため、位置情報を変更するには、必要なすべてのプロパティを送信する必要があります。
リクエストボディの geoLocation 属性を使用して、新しい位置情報のコンテキストを設定できます。geoLocation 属性には、次のものが含まれます。
countryCodecountrycitypostalCodemetroCoderegionregionCodelatitudelongitudeNull 値は返されません。
Script API の観点から見ると、dw.system.Request.getGeoLocationは次の位置情報を返します。これはフックを使用する場合に便利です。
request.geolocation.cityrequest.geolocation.countryNamerequest.geolocation.countryCoderequest.geolocation.latituderequest.geolocation.longituderequest.geolocation.metroCoderequest.geolocation.postalCoderequest.geolocation.regionNamerequest.geolocation.regionCode