在庫状況およびイベントのアイテム属性の拡張

在庫状況およびイベントのアイテム属性を拡張して、追加のカタログ・ルックアップを除去し、e-コマース・ページのパフォーマンスを向上させることができます。

通常、e-コマース・プラットフォームでは、アイテムの在庫を超える情報が必要になります。 例えば、 item01の在庫状況を検索するときに、e-コマース・ページが正しく表示されるように、アイテムの詳細 (アイテムの説明、価格、グローバル・アイテム ID、その他の詳細など) もプルする必要がある場合があります。 このタスクを完了するために、e-コマース・プラットフォームは、必要なカタログ・データを取得するために、在庫検索と独自のカタログの両方を呼び出す必要がある場合があります。 追加のルックアップにより、ページ全体のパフォーマンスに対する待ち時間が生じます。

2 番目のケースでは、可用性イベントによってローカルの商品詳細ページ・キャッシュを作成できます。 大量のイベント・データが消費されるため、イベント自体にカタログ・データが含まれている場合は、イベント消費の労力とコストを削減することができます。そのため、製品詳細ページの作成アクティビティーに追加の外部 API 呼び出しが不要になります。

このアプリケーションには、可用性応答およびイベント・パブリッシュでアイテム属性情報を拡張する機能が用意されています。 例えば、 Item01の在庫状況を照会する場合、フルフィルメント・マネージャーは、常にアイテムの説明を応答に含めるように在庫状況 API を構成することもできます。

セラーが公開する可能性のあるアイテム属性の例を以下に示します。

  • 商標
  • GTIN
  • サイズまたは色
  • 商品説明
  • 製造元
拡張性機能を使用すると、ユーザー定義の項目属性を組み込むことができます。 アプリケーションは、可用性出力とイベント出力の両方で最大 20 個のアイテム属性を公開できます。
注: 現在、スナップショット・イベントはアイテム属性のパブリッシュをサポートしていません。 これには、 productAvailabilitySnapshot.v2 イベントと dgAvailabilitySnapshot.v2 イベントが含まれます。

ユーザー定義の項目属性について詳しくは、 属性を参照してください。

ユーザー定義の項目属性を構成した後、可用性およびイベントで公開される各属性の宣言が必要になります。 API を公開するには、Set 属性を使用してこのステップを実行します。 Brand 属性がアイテム属性として定義されている場合、API を公開するための set 属性への入力は以下のようになります。
PUT https://api.watsoncommerce.ibm.com/inventory/{tenantId}/v1/configuration/publishAttributes

[ "Brand" ]

宣言が完了すると、将来の可用性 API および公開されるイベントには、出力ペイロードの itemAttributes エレメントの下に item 属性が組み込まれます。

以下のサンプル・コードは、ノード可用性の出力を示しています。
{
  "availabilityType": "SELL",
  "lines": [{
      "lineId": "1",
      "itemId": "KettleChips",
      "unitOfMeasure": "EACH",
      "deliveryMethod": "SHP",
      "shipNodes": ["Matrix-Store-001"],
      "shipNodeAvailabilities": [...],
      "itemAttributes": {
        "Brand": ["NoNameBrand"]
      }
    }]
}
以下のサンプル・コードは、 productAvailability.v2 イベント出力を示しています。
{
  "type": "productAvailability.v2",
  "datacontenttype": "application/json",
  "id": "2a8d36a3-485b-3fc0-bd15-d530625a6ec5",
  "specversion": "1.0",
  "time": "2021-03-10T00:00:00.288Z",
  "data": {
    "itemAttributes": {
      "Brand": ["NoNameBrand"]
    },
    "computeTs": "2021-03-10T00:00:00.097Z",
    "productId": "SHIRT",
    "deliveryMethod": "SHP",
    "shipNode": "store-BostonMA",
    "unitOfMeasure": "EACH",
    "currentAvailability": {...},
    "futureAvailability": [...]
  }
}