CDP のプロファイルに紐づけることができるデータとしては、セッション( Web の行動履歴やコンバージョン)とオーダーという形でオーダー情報を入れることができます。オーダー情報に関しては別のシステムでデータを取得していることもあるため、API でデータを追加可能です。今回はこの手順に関して紹介をします。
![](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F3jZJBvR2JWdqMJZnisjp4v%2F679dd1b0deb9bc8e373347cacaf0b4bb%2Fjoshua-hoehne-GoGYvir1teM-unsplash.jpg&w=3840&q=75)
オーダーデータの構造
実際データの構造としては、オーダーの単位(注文番号的なものがある)、そしてそのオーダーに含まれるオーダーのアイテム、そしてそのオーダーがどのユーザーと紐づいているのか、というのがポイントになります。
実際の 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": "東京都"
}
![cdporder01.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F3ViYA80167mCJyesTYX3xO%2F4a559a316751ce6983cc01be8ca10a34%2Fcdporder01.png&w=1920&q=75)
オーダーの情報を確認する
まだユーザーを作成してすぐのため、オーダーの情報は何も入っていませんが、データとして確認をするために、以下の 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 が空になっていることがわかります。
![cdporder02.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F5dwmQx5fXDH4eDDUWNfGof%2F476da8796749aaaa1bb07b0e9fb24b91%2Fcdporder02.png&w=1920&q=75)
オーダーを追加する
オーダーを追加するための手順は以下のページで紹介されています。
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"
}
結果が表示されて、オーダー情報が出来上がりました。
![cdporder03.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F2SsMZ2ef97yIiNsEgd8swT%2Fed2a34ca4021f31b0904ad432f514233%2Fcdporder03.png&w=1920&q=75)
商品情報を追加する
作成したオーダーにはまだ商品情報が追加されていません。実際にデータを追加するための方法は、以下のページで紹介されています。
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"
}
実行結果は以下のようになり、アイテムが作成されます。
![cdporder04.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F6hbnLGDg901gEXPosgeZDD%2Fd3d6a99dfce9d8266ed91ba86b95166d%2Fcdporder04.png&w=1920&q=75)
作成した時のオーダーアイテムは以下のような形で空欄となっています。
![cdporder05.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F5ShD6OiqoxpoOyHvjmVwvE%2F686d2924f453069f1b64187c913e7474%2Fcdporder05.png&w=1200&q=75)
これがアイテム作成をしたため、更新されました。
![cdporder06.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F1sleO7kFVjxcr8K1oF6GR9%2F3188453f7c1cc2f0332911b1c0334b88%2Fcdporder06.png&w=1920&q=75)
ユーザー情報の作成
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"
}
]
}
}
![cdporder07.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F2kGlwj8zIj7oivPkQ7LRbA%2F0be7786eff3e324e0a9df382b256a12f%2Fcdporder07.png&w=3840&q=75)
続いて Order consumer を追加します。手順は以下の通りです。
ページを見ると、Customer とほぼ同じ動きをしますが、API の URL が異なるだけという形です。
POST /v2/orders/<orderRef>/consumers
まったく同じ JSON データを利用して実行した結果、以下のようになります。
![cdporder09.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F7lfXPJSGzKGrw4A9TXhh8R%2F57e35841d9bdaf8a30cb8e1b18a86b77%2Fcdporder09.png&w=2048&q=75)
データを確認する
プロファイルのデータに Order が紐づいているか、Debug モードで確認をします。実際にダイアログを開くと以下のように Orders に 1 が追加されています。
![cdporder10.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F4PJYcxqf6Vk7JzD1fUktWI%2Ff11517224b792980c9a5ee1fa98cfee2%2Fcdporder10.png&w=1920&q=75)
Json のデータを見に行くと、今回の API を通じて展開したデータを参照することができます。
![cdporder11.png](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fzi1ovlormku8%2F45OLQgtbMbihtMHhulb9E6%2Fbda94fd58a3942cf05c1c2b08e03a5d8%2Fcdporder11.png&w=1920&q=75)
まとめ
今回は REST API を利用してオーダーを作成しました。実際にはシステム連携で外部から不随データと合わせて送る形になりますが、手作業で紹介することでデータの構造を確認できるかと思い、今回のように実行していきました。
もう少しバッチ処理に向いている Batch API に関しては以下のページを参考にしてください。