カタログの形式と要件
定義
製品カタログとは、Eコマースストアで購入可能な製品の全コレクションを表します。
各カタログアイテムは、以下の構造を持つJSONオブジェクトとして表現されます。
{
"id": "805371A",
"itemGroupId": "805371",
"categoryHierarchies": [
{ "categories": ["Women", "Shoes"] },
{ "categories": ["Sports & Fitness", "Shoes"] }
],
"title": "Red Shoes",
"description": "Fancy red shoes",
"brand": "Designer Brand",
"languageCode": "en",
"productMetadata": {
"stockState": "IN_STOCK",
"availableQuantity": 30,
"exactPrice": {
"originalPrice": 119.99,
"displayPrice": 89.99
},
"currencyCode": "USD",
"canonicalProductUri": "https://www.store.com/shoes/red-shoes",
"images": [
{
"uri": "https://www.store.com/images/805371.jpg",
"width": 500,
"height": 500
}
]
}
}注記: 上記の例は読みやすさのために改行を含んでいますが、作成するカタログファイルには、1行につき1つのJSONエンコードされたカタログアイテムを含める必要があります。ファイルはUTF-8でエンコードされている必要があります。
{"id":"805371","categoryHierarchies":[{"categories":["Women","Shoes"]}],"title":"Red Shoes","description":"Fancy red shoes","languageCode":"en","productMetadata":{"exactPrice":{"originalPrice":119.99,"displayPrice":89.99},"currencyCode":"USD","canonicalProductUri":"https://www.store.com/shoes/red-shoes","images":[{"uri":"https://www.store.com/images/805371.jpg","width":500,"height":500}]}}
{"id":"805372","categoryHierarchies":[{"categories":["Women","Shoes"]}],"title":"Green Shoes","description":"Fancy green shoes","languageCode":"en","productMetadata":{"exactPrice":{"originalPrice":148.99,"displayPrice":129.99},"currencyCode":"USD","canonicalProductUri":"https://www.store.com/shoes/green-shoes","images":[{"uri":"https://www.store.com/images/805372.jpg","width":500,"height":500}]}}プロパティ
id
- 型: String
- 必須
- 最大サイズ: 128バイト
このIDは、同じカタログ内のすべてのカタログアイテム間で一意である必要があります。これは、Fanplayrの統合において製品ページビューで追跡されるIDと同じである必要があります。
itemGroupId
- 型: String
- 必須 (カタログレベルの設定による)
- 最大サイズ: 128バイト
製品バリアントのグループ識別子で、「マスター」製品識別子としても知られています。これにより、関連するすべての製品バリアントが予測結果のためにリンクされます。
すべてのカタログアイテムがitemGroupIdの値を持つか、または全く持たないかのどちらかでなければなりません。一部のアイテムにはitemGroupIdが設定され、他のアイテムには設定されていないカタログデータをインポートすることはできません。このフィールドは、Master/MasterまたはVariant/Masterのカタログレベルを使用する場合に必須です。
categoryHierarchies
- 型: Array
- 必須 (少なくとも1つのカテゴリ階層エントリが必須)
- 最大サイズ: 1000バイト (JSONエンコード時)
カタログアイテムのカテゴリ。このフィールドは、1つのカタログアイテムが複数の並列カテゴリ階層に属することをサポートするために繰り返されます。少なくとも1つのカテゴリが存在する必要があります。
例として、シューズ製品がWomen > ShoesとSports & Fitness > Shoesの両方に属する場合、次のように表現できます。
"categoryHierarchies": [
{ "categories": ["Women", "Shoes"] },
{ "categories": ["Sports & Fitness", "Shoes"] }
]title
- 型: String
- 必須
- 最大サイズ: 500バイト
カタログアイテムのタイトル。
description
- 型: String
- 最大サイズ: 500バイト
カタログアイテムの説明。この値はウィジェットには表示されませんが、レコメンデーションモデルの改善に役立ちます。
brand
- 型: String
- 最大サイズ: 100バイト
製品に関連付けられたブランドまたはメーカー。
languageCode
- 型: String
- 必須
タイトル/説明の言語。BCP 47で定義された言語タグを使用してください。https://www.rfc-editor.org/rfc/bcp/bcp47.txt。サポートされている言語コードには、「en」、「es」、「fr」、「de」、「ar」、「fa」、「zh」、「ja」、「ko」、「sv」、「ro」、「nl」が含まれます。
productMetadata
- 型: Object
- 必須
stockState、availableQuantity、exactPrice、currencyCode、canonicalProductUri、imagesの各プロパティを含みます。
stockState
- 型: ENUM
- ネスト元:
productMetadata - 必須
以下のいずれかの値と等しい必要があります。
IN_STOCK- アイテムは在庫あり。OUT_OF_STOCK- アイテムは在庫切れ。PREORDER- アイテムは予約注文状態。BACKORDER- アイテムはバックオーダー済み(一時的に在庫切れなど)。
availableQuantity
- 型: Number
- ネスト元:
productMetadata
購入可能なアイテムの残り数量。
exactPrice
- 型: Object
- 必須:
originalPriceとdisplayPriceのプロパティを含みます。
originalPrice
- 型: Float
- ネスト元:
productMetadata.exactPrice - 必須
セール価格などの割引前のアイテムの元価格。
displayPrice
- 型: Float
- ネスト元:
productMetadata.exactPrice - 必須
セール価格などの割引後のアイテムの現在の価格。
currencyCode
- 型: String
- 必須
アイテム価格の通貨コード。3文字のISO-4217コードを使用してください。
canonicalProductUri
- 型: String
- 必須
製品の基本URI。製品が色やサイズによって異なるURIを持つ場合、可能であればバリアントを含まない基本製品を指すURIを提供してください。
images
- 型: Array
- 必須 (少なくとも1つの画像が必須)
製品画像の配列。レコメンデーションコンポーネントには最初の画像のみが表示されます。少なくとも1つの画像が必須です。
各画像は以下の構造を持つオブジェクトである必要があります。
{
// 必須。画像のURL。
// 最大サイズ: 1000バイト
"uri": "https://www.store.com/images/805371.jpg",
// オプション。画像の幅(ピクセル単位)。
"width": 500,
// オプション。画像の高さ(ピクセル単位)。
"height": 500
}tags
- 型: Array of String
- 最大サイズ: 500バイト (合計)
カタログアイテムに関連付けるオプションのタグ。各タグはUTF-8エンコードされた文字列である必要があります。単一のカタログアイテムのすべてのタグの合計長は500バイトを超えてはなりません。
itemAttributes
- 型: Object
- 最大サイズ: 1000バイト (合計)
オプション。レコメンデーションモデルに含める追加のアイテム属性。例えば、小売製品の場合、これには製品のスタイル、色などが含まれます。これらの属性は、レコメンデーションモデルに追加のシグナルを与えることができます。
アイテム属性は、以下の構造を持つカテゴリ別および数値のセットに分割する必要があります。
"itemAttributes": {
"categoricalFeatures": {
"colors": {
"value": ["red", "blue"]
},
"sizes": {
"value": ["S", "M", "L"]
}
},
"numericalFeatures": {
"lengths_cm": {
"value": [2.3, 15.4]
},
"heights_cm": {
"value":[8.1, 6.4]
}
}
}customData
カスタムデータを製品に追加し、追加機能に使用できます。
例えば、パーソナルショッパーやプロダクトタグエクスプローラーでキーワードやカラーチップを設定するには、以下を追加できます。
"customData": {
"keywords": [
{ "text": "ON SALE", "bg": "#ff0000", "fg": "#fff" },
{ "text": "Special Brand" }
],
"colors": ["red", "#00ff00"]
}カタログファイル形式
製品カタログファイル形式には以下の要件があります。
- 各カタログアイテムは、上記で説明したJSON構造を使用してフォーマットする必要があります。
- 各カタログアイテムは1行に収める必要があります。
- カタログファイルの合計サイズは、圧縮されていない状態で50MBを超えないようにしてください。 カタログがこのサイズを超える場合は、分割して複数回インポートできます。
- すべてのアイテムは同じ言語と通貨を使用する必要があります。 AIモデルのトレーニング時の制限により、同じカタログ内で異なる言語や通貨を混在させることはできません。Eコマースストアに異なる言語や通貨を持つ複数のストアビューが含まれる場合は、別々のカタログとプロジェクトを管理する必要があります。
以下は、2つのアイテムを含むカタログファイルの例です。
{"id":"PRODUCT_1","categoryHierarchies":[{"categories":["Women","Shoes"]},{"categories":["Sports & Fitness","Shoes"]}],"title":"Red Shoes","description":"Fancy red shoes","languageCode":"en","productMetadata":{"stockState":"IN_STOCK","availableQuantity":30,"exactPrice":{"originalPrice":119.99},"currencyCode":"USD","canonicalProductUri":"https://www.store.com/shoes/red-shoes","images":[{"uri":"https://www.store.com/images/PRODUCT_1.jpg","width":500,"height":500}]}}
{"id":"PRODUCT_2","categoryHierarchies":[{"categories":["Men","Shoes"]},{"categories":["Sports & Fitness","Shoes"]}],"title":"Blue Shoes","description":"Fast blue shoes","languageCode":"en","productMetadata":{"stockState":"IN_STOCK","availableQuantity":17,"exactPrice":{"originalPrice":119.99},"currencyCode":"USD","canonicalProductUri":"https://www.store.com/shoes/blue-shoes","images":[{"uri":"https://www.store.com/images/PRODUCT_2.jpg","width":500,"height":500}]}}カタログレベル
カタログを初めてインポートする前に、ユーザーイベントでマスターアイテムとバリアントのどちらを追跡したいか、および予測でマスターアイテムとバリアントのどちらを返したいかを決定する必要があります。Fanplayrが統合の設定を支援します。
マスターアイテムは、類似のアイテムのグループ(言い換えれば、SKUグループ)を表します。マスターアイテムの例としては、「Vネックシャツ」があり、そのバリアントとして「ブラウンVネックシャツ、サイズXL」や「ホワイトVネックシャツ、サイズS」があります。マスターとバリアントは、「親」アイテムと「子」アイテムと表現されることもあります。
カタログレベルの可能な組み合わせは次のとおりです。
- Variant/Variant: ユーザーイベントでバリアントをキャプチャし、予測でバリアントを返す。
- Master/Master: ユーザーイベントでマスターアイテムをキャプチャし、予測でマスターアイテムを返す。
- Variant/Master: ユーザーイベントでバリアントをキャプチャし、予測でマスターアイテムを返す。