Skip to content

レガシーカタログ形式

レガシー形式

これは、参考のためにここに記載されているレガシーなカタログ形式です。新しい連携では、より表現力が高く、サポートも充実している現在の形式を使用してください。


定義

商品カタログは、Eコマースストアで購入可能な商品のコレクション全体を表します。

各カタログアイテムは、以下の構造を持つJSONオブジェクトとして表現されます。

javascript
{
  "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
      }
    ]
  }
}

上記の例では、可読性を高めるために改行が含まれています。カタログファイルでは、各商品は単一のJSONエンコードされた行である必要があります。ファイルはUTF-8でエンコードされている必要もあります。

javascript
{"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

  • タイプ: 文字列
  • 必須
  • 最大サイズ: 128バイト

このIDは、同じカタログ内のすべてのカタログアイテムの中で一意である必要があります。Fanplayr連携で商品ページビューとともに追跡されるIDと同じである必要があります。

itemGroupId

商品バリアントグループ識別子。別名「マスター」商品識別子。これは、すべての関連する商品バリアントを予測結果のためにリンクします。

すべてのカタログアイテムがitemGroupIdの値を保持するか、または何も保持しないかのいずれかである必要があります。一部のアイテムにはitemGroupIdが設定され、他のアイテムには設定されていないカタログデータをインポートすることはできません。このフィールドは、マスター/マスターまたはバリアント/マスターのカタログレベルを使用する場合に必須です。

categoryHierarchies

  • タイプ: 配列
  • 必須(少なくとも1つのエントリが必要)
  • 最大サイズ: 1,000バイト(JSONとしてエンコードされた場合)

カタログアイテムのカテゴリ。このフィールドは、商品が複数の並行するカテゴリ階層に属することをサポートするために繰り返されます。

例えば、靴の商品がWomen > ShoesSports & Fitness > Shoesの両方に属する場合、次のように表現できます。

javascript
"categoryHierarchies": [
  { "categories": ["Women", "Shoes"] },
  { "categories": ["Sports & Fitness", "Shoes"] }
]

title

  • タイプ: 文字列
  • 必須
  • 最大サイズ: 500バイト

商品タイトル。

description

  • タイプ: 文字列
  • 最大サイズ: 500バイト

商品説明。レコメンデーションモデルの改善に役立ちます。

brand

  • タイプ: 文字列
  • 最大サイズ: 100バイト

商品に関連付けられたブランドまたは製造元。

languageCode

  • タイプ: 文字列
  • 必須

タイトルと説明の言語。BCP 47で定義された言語タグを使用します。サポートされている言語コードは、"en""es""fr""de""ar""fa""zh""ja""ko""sv""ro""nl"です。

productMetadata

  • タイプ: オブジェクト
  • 必須

stockStateavailableQuantityexactPricecurrencyCodecanonicalProductUri、およびimagesのプロパティを含みます。

stockState

  • タイプ: Enum
  • ネスト元: productMetadata
  • 必須

商品の在庫状況。以下のいずれかである必要があります。

  • IN_STOCK — 在庫あり。
  • OUT_OF_STOCK — 在庫切れ。
  • PREORDER — 予約注文可能。
  • BACKORDER — 一時的に在庫切れだが、バックオーダー可能。

availableQuantity

  • タイプ: 数値
  • ネスト元: productMetadata

購入可能なアイテムの残り数量。

exactPrice

  • タイプ: オブジェクト
  • 必須

originalPricedisplayPriceのプロパティを含みます。

originalPrice

  • タイプ: 浮動小数点数
  • ネスト元: productMetadata.exactPrice
  • 必須

割引前のアイテムの元の価格。

displayPrice

  • タイプ: 浮動小数点数
  • ネスト元: productMetadata.exactPrice
  • 必須

割引後のアイテムの現在の価格。

currencyCode

  • タイプ: 文字列
  • 必須

すべてのアイテム価格の通貨コード。3文字のISO 4217コードを使用します(例: "USD""AUD""GBP")。

canonicalProductUri

  • タイプ: 文字列
  • 必須

商品の基本URI。商品に異なる色やサイズで異なるURIがある場合、可能な限りバリアントパラメータを含まない基本商品のURIを提供してください。

images

  • タイプ: 配列
  • 必須(少なくとも1つの画像が必要)

商品画像の配列。レコメンデーションウィジェットには最初の画像のみが表示されます。少なくとも1つの画像が必要です。

各画像は以下の構造を持つオブジェクトである必要があります。

javascript
{
  // 必須。画像のURL。最大サイズ: 1,000バイト。
  "uri": "https://www.store.com/images/805371.jpg",
  // オプション。画像の幅(ピクセル単位)。
  "width": 500,
  // オプション。画像の高さ(ピクセル単位)。
  "height": 500
}

tags

  • タイプ: 文字列の配列
  • 最大サイズ: 500バイト(合計)

カタログアイテムに関連付けるオプションのタグ。各タグはUTF-8でエンコードされた文字列である必要があります。単一アイテムのすべてのタグの合計長さは500バイトを超えてはなりません。

itemAttributes

  • タイプ: オブジェクト
  • 最大サイズ: 1,000バイト(合計)

レコメンデーションモデルに含めるオプションの追加属性。例えば、小売製品の場合、製品スタイル、色などが含まれます。これらの属性は、レコメンデーションモデルに追加のシグナルを提供します。

アイテム属性は、以下の構造でカテゴリ別および数値セットに分割される必要があります。

json
"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

特定のFanplayr機能で使用するために、カスタムデータを製品に追加できます。

例えば、パーソナルショッパーまたはプロダクトタグエクスプローラーでキーワードとカラーチップを設定するには:

json
"customData": {
  "keywords": [
    { "text": "ON SALE", "bg": "#ff0000", "fg": "#fff" },
    { "text": "Special Brand" }
  ],
  "colors": ["red", "#00ff00"]
}

カタログファイル形式

カタログファイルは以下の要件を満たす必要があります。

  • 各カタログアイテムは、上記で説明したJSON構造を使用してフォーマットされている必要があります。
  • 各カタログアイテムは、単一の行に含まれている必要があります(JSONL形式)。
  • ファイルの合計サイズは、非圧縮で50 MBを超えてはなりません。カタログがこれを超える場合は、分割して複数のファイルでインポートしてください。
  • すべてのアイテムは同じ言語と通貨を使用する必要があります。AIモデルのトレーニングに影響を与えるため、単一のカタログ内で言語や通貨を混在させることはできません。店舗が異なる言語や通貨で複数のビューを持つ場合は、個別のカタログを管理してください。

以下は、2つのアイテムを含むカタログファイルの例です。

javascript
{"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サイズ」などになります。マスターとバリアントは、「親」と「子」アイテムと呼ばれることもあります。

可能なカタログレベルの設定は以下の通りです。

  • バリアント/バリアント — ユーザーイベントでバリアントを捕捉し、予測でバリアントを返します。
  • マスター/マスター — ユーザーイベントでマスターアイテムを捕捉し、予測でマスターアイテムを返します。
  • バリアント/マスター — ユーザーイベントでバリアントを捕捉し、予測でマスターアイテムを返します。