CDP のプロファイルに紐づけることができるデータとしては、セッション( Web の行動履歴やコンバージョン)とオーダーという形でオーダー情報を入れることができます。オーダー情報に関しては別のシステムでデータを取得していることもあるため、API でデータを追加可能です。今回はこの手順に関して紹介をします。
オーダーデータの構造
実際データの構造としては、オーダーの単位(注文番号的なものがある)、そしてそのオーダーに含まれるオーダーのアイテム、そしてそのオーダーがどのユーザーと紐づいているのか、というのがポイントになります。
実際の JSON のデータと API を利用しながら説明していきますが、以下のようなイメージと考えてください。
- オーダー(注文番号はユニーク)
- 購入した商品(複数)
- 購入したユーザー情報
今回は新しいユーザーを作って紐づける形にするため、以下の Json を利用してユーザーをあらかじめ作成しておきます。
{
"guestType": "customer",
"title": "Mr",
"firstName": "大谷",
"lastName": "真一",
"gender": "male",
"dateOfBirth": "1991-12-08T00:00:00.000Z",
"emails": [
"haramizu@hotmail.com"
],
"language": "JA",
"nationality": "Japan",
"street": [
"南青山"
],
"city": "港区",
"country": "JP",
"postCode": "1070062",
"state": "東京都"
}
オーダーの情報を確認する
まだユーザーを作成してすぐのため、オーダーの情報は何も入っていませんが、データとして確認をするために、以下の API を利用して情報を取得します。guestRef にはユーザーに割り当てられている GUID を設定してください。
GET /v2/orders?guestRef=<guestRef>
以下のようなデータが返ってきました。items の項目が入っていません。
{
"href": "https://api-engage-ap.sitecorecloud.io/v2/orders?offset=0&limit=10&guestRef=guid",
"offset": 0,
"limit": 10,
"items": []
}
デバッグモードでデータを確認しても Orders が空になっていることがわかります。
オーダーを追加する
オーダーを追加するための手順は以下のページで紹介されています。
Postman では以下の設定をします。
POST /v2/orders
必須項目は以下の項目となります。referenceId は注文番号となるため、この値はユニークである必要があります。値は参考情報です。
Attribute | 値 |
---|---|
pointOfSale | haramizu.com |
currencyCode | JPY |
price | 19800 |
orderdAt | 2023-08-25T16:17:16.000Z |
referenceId | 20230825DEMO1 |
今回はいくつかの情報を追加した形で、以下の JSON のデータを利用しました。
{
"pointOfSale": "haramizu.com",
"channel": "WEB",
"currencyCode": "JPY",
"price": 19800,
"orderedAt": "2023-08-25T16:17:16.000Z",
"referenceId": "20230825DEMO1",
"paymentType": "Card",
"cardType": "Visa",
"status": "PURCHASED"
}
結果が表示されて、オーダー情報が出来上がりました。
商品情報を追加する
作成したオーダーにはまだ商品情報が追加されていません。実際にデータを追加するための方法は、以下のページで紹介されています。
Postman を利用する際には、以下の情報を利用してアイテムを作成することになります。
POST /v2/orders/<orderRef>/orderItems
先ほど作成をしたオーダーの値を orderRef に設定します。リクエストで利用する際に必要となる必須項目は以下の通りです。
Attribute | 値 |
---|---|
currencyCode | JPY |
price | 19800 |
status | CONFIRMED |
type | PACKAGE |
productId | SKU0001 |
referenceId | REF001 |
今回は以下の JSON データを利用します。
{
"currencyCode": "JPY",
"price": 19800,
"status": "CONFIRMED",
"type": "PACKAGE",
"productId": "SKU0001",
"orderedAt": "2023-08-25T16:17:16.000Z",
"quantity": 1,
"referenceId": "REF001",
"name": "Sample Order",
"description": "Sample Order Description",
"channel": "WEB",
"language": "JA"
}
実行結果は以下のようになり、アイテムが作成されます。
作成した時のオーダーアイテムは以下のような形で空欄となっています。
これがアイテム作成をしたため、更新されました。
ユーザー情報の作成
CDP のレコードとして、Order contact と Order consumer の2つの項目があります。これはオーダーをした人と、受け取りが別みたいなケースの時に利用できます。今回はすでに作成しているコンタクトに紐づけます。
まず Corder Contact を作成します。詳細は以下のページに記載されています。
実行は以下のような形です。
POST /v2/orders/<orderRef>/contacts
JSON で必要となる項目は以下の通りです。
Attribute | 値 |
---|---|
firstName | 姓 |
lastName | 名 |
すでにあるプロファイルと紐づけるため、以下のような Json で実行します。
{
"firstName": "原水",
"lastName": "真一",
"guest": {
"href": "https://api-engage-ap.sitecorecloud.io/v2/guests/guestRef"
},
"orderItems": {
"items": [
{
"href": "https://api-engage-ap.sitecorecloud.io/v2/orderItems/orderItemRef"
}
]
}
}
続いて Order consumer を追加します。手順は以下の通りです。
ページを見ると、Customer とほぼ同じ動きをしますが、API の URL が異なるだけという形です。
POST /v2/orders/<orderRef>/consumers
まったく同じ JSON データを利用して実行した結果、以下のようになります。
データを確認する
プロファイルのデータに Order が紐づいているか、Debug モードで確認をします。実際にダイアログを開くと以下のように Orders に 1 が追加されています。
Json のデータを見に行くと、今回の API を通じて展開したデータを参照することができます。
まとめ
今回は REST API を利用してオーダーを作成しました。実際にはシステム連携で外部から不随データと合わせて送る形になりますが、手作業で紹介することでデータの構造を確認できるかと思い、今回のように実行していきました。
もう少しバッチ処理に向いている Batch API に関しては以下のページを参考にしてください。