アイテムへの属性の割り当て

アプリケーションが作成された属性を考慮する前に、その属性を 1 つ以上の項目に関連付ける必要があります。

Item Assigned AttributeAPIを使用し、作成した属性を1つ以上の項目に関連付ける。 例えば、カタログ管理者が2台のテレビに'DisplayType属性を割り当て、それぞれに'DisplayType値として'QLEDと'OLEDを割り当てたとする。

以下の例は、アイテムに属性を割り当てる方法を示しています。
PATCH https://api.watsoncommerce.ibm.com/catalog/{tenantId}/v1/itemAssignedAttributes
{
  "itemId": "LED_TV_QLED_01",
  "unitOfMeasure": "EACH",
  "itemAssignedAttributes": [{
      "itemAttributeName": "displayType",
      "itemAttributeGroupPath": "/TV/DisplayDefinition",
      "values": ["QLED"]
    }]
}
{
  "itemId": "LED_TV_OLED_01",
  "unitOfMeasure": "EACH",
  "itemAssignedAttributes": [{
      "itemAttributeName": "displayType",
      "itemAttributeGroupPath": "/TV/DisplayDefinition",
      "values": ["OLED"]
    }]
}

displayType 属性値は multipleValueAllowed=falseに設定されます。 複数の値を適用すると、API エラーが発生します。

項目属性の割り当てでは、厳密な変更ポリシーが適用されます。 値を持つ 1000 個の項目割り当て属性に既に itemAssignedAttribute が割り当てられている場合は、その項目割り当て値を削除し、再作成しないでください。 変更は許可されていません。 例えば、 LED_TV_OLED_01 「値」 OLED が割り当てられている場合、最初に割り当てられた値を削除してから、項目割り当て属性を再定義する必要があります。

値を削除するには、以下の API を呼び出します。
DELETE https://api.watsoncommerce.ibm.com/catalog/{tenantId}/v1/itemAssignedAttributes
{
   "itemId": "LED_TV_OLED_01",
   "unitOfMeasure": "EACH",
   "itemAssignedAttributes": [{
      "itemAttributeName": "displayType",
      "itemAttributeGroupPath": "/TV/DisplayDefinition",
      "values": ["OLED"] 
    }]
}
属性がアイテムに割り当てられた後、 Get Item Details APIを呼び出して属性を検査することができます。
GET https://api.watsoncommerce.ibm.com/catalog/{tenantId}/v1/itemDetails?itemId=LCD_TV_QLED_01&unitOfMeasure=EACH
{
  "catalogOrganizationCode": "cat-org1",
  "itemId": "LCD_TV_QLED_01",
  "unitOfMeasure": "EACH",
  "primaryInformation": {},
  "inventoryInformation": {},
  "itemAssignedAttributes": [ {
      "itemAttributeName": "displayType",
      "itemAttributeGroupPath": "/TV/DisplayDefinition",
      "values": ["QLED"]
    } ]
}

1 つのアイテムに対して複数の値が表示される場合、そのアイテムに対してすべての属性値がサポートされていることを意味します。 例えば、 DisplayType 属性の場合、セラーは、 QLEDMiniLED の両方を交換可能な値としてモデル化できます。これは、両方が同じ基礎となる LED 表示テクノロジーを使用しているためです。