---
title: "販売可能なアイテムのエンティティアクションとビュー APIを活用してください"
slug: "work-with-the-sellable-items-entity-actions-and-views-api"
abstract: "製品関連データを他のビジネスシステムと交換するために使われるカタログエンティティアクションおよびビュー APIの概要。"
---
# 販売可能なアイテムのエンティティアクションとビュー APIを活用してください

Sitecore Experience CommerceカタログエンティティビューおよびアクションAPIを用いて、他のビジネスシステムと製品関連データを交換できます。

> !注ビューズ&アクションAPIは、ビジネスユーザーインターフェースに対応するために設計された [オーサリングAPI](https://doc.sitecore.com/xp/ja/developers/102/sitecore-experience-commerce/authoring-api.html "Authoring API")であり、統合シナリオには最適化されていません。
> 
> Views and Actions APIをコマース統合で使用する際には、以下の点を考慮する必要があります。
> 
> -   Views and Actions APIは一度に1つのCommerceエンティティしか処理できず、バッチ処理はサポートしていません。
>     
> -   Views and Actions APIはCommerce WebサービスのAPIよりも多くのオーバーヘッドを伴います。Views and Action APIの呼び出しは通常3ステップで、アクションのビューを取得し、ビューのプロパティを更新した値で修正し、アクションを実行します。
>     

## 売れるアイテム(C#)を手に入れる

以下の例は、C#を使って販売可能な商品を取得する方法を示しています:

DataServiceQuerySingle<EntityView> query = container.GetEntityView($"Entity-SellableItem-{SellableItemId}", "Details", string.Empty, string.Empty); EntityView view = Proxy.GetValue(query);
## 販売可能なアイテムを作成する(C#)

以下の例は、C#を使って販売可能なアイテムを作成する方法を示しています:

1.  エンティティビューを入手:
    
    DataServiceQuerySingle<EntityView> query = container.GetEntityView($"Entity-Catalog-{Catalog}", "Details", "AddSellableItem", string.Empty);
    EntityView view = Proxy.GetValue(query);
    
2.  販売可能なアイテムの特性を指定してください:
    
    var ProductId = view.Properties.FirstOrDefault(p => p.Name.Equals("ProductId"));
    var Name= view.Properties.FirstOrDefault(p => p.Name.Equals("Name"));
    var DisplayName = view.Properties.FirstOrDefault(p => p.Name.Equals("DisplayName"));
    var Description = view.Properties.FirstOrDefault(p => p.Name.Equals("Description"));
    var Brand = view.Properties.FirstOrDefault(p => p.Name.Equals("Brand"));
    var Manufacturer = view.Properties.FirstOrDefault(p => p.Name.Equals("Manufacturer"));
    var TypeOfGood = view.Properties.FirstOrDefault(p => p.Name.Equals("TypeOfGood"));
    
    ProductId.Value = "SomeProductId".ProposeValidId(); //ProposeValidId will try to convert your string to a safe string to use.
    Name.Value = "AHotProduct";
    DisplayName.Value = "A Hot New Product";
    Description.Value = "The hottest product on the market today";
    Brand.Value = "Hot Stuff Brands";
    Manufacturer.Value = "Hot Stuff Manufacturers";
    TypeOfGood.Value = "Physical Item";
    
3.  行動を実行する:
    
    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
## 販売可能なアイテムを削除する(C#)

以下の例は、C#を使って販売可能なアイテムを削除する方法を示しています:

1.  エンティティビューを入手:
    
    DataServiceQuerySingle<EntityView> query = container.GetEntityView($"Entity-Category-{Category}",string.Empty, "DeleteSellableItem", "Entity-SellableItem-{SellableItemId}");
    EntityView view = Proxy.GetValue(query);
    
2.  販売可能なアイテムを削除してください:
    
    var Action = view.Properties.FirstOrDefault(p => p.Name.Equals("DeleteOption")); action.Value = "Delete";
    
3.  行動を実行する:
    
    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
## 販売可能なアイテムの更新(C#)

以下の例は、Entity Views and Actions APIを使ってC#を使って販売可能なアイテムの詳細を更新する方法を示しています:

1.  エンティティビューを入手:
    
    DataServiceQuerySingle<EntityView> query = container.GetEntityView($"Entity-SellableItem-{SellableItemId}", "Details", "EditSellableItemDetails", string.Empty);
    EntityView view = Proxy.GetValue(query);
    
2.  ビューのプロパティを詳細で修正して更新してください:
    
    var displayNameProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("DisplayName"));
    displayNameProperty.Value = "Edited Display Name";
    var descriptionProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("Description"));
    descriptionProperty.Value = "Edited Description";
    var brandProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("Brand"));
    brandProperty.Value = "Edited Brand";
    var manufacturerProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("Manufacturer"));
    manufacturerProperty.Value = "Edited Manufacturer";
    var typeOfGoodProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("TypeOfGood"));
    typeOfGoodProperty.Value = "Edited TypeOfGood";
    var tagsProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("Tags"));
    typeOfGoodProperty.Value = "'Tag1', 'Tag2', 'Tag3'";
    
3.  行動を実行する:
    
    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
## 販売可能なアイテムを分離する(C#)

以下の例は、Entity Views and Actions APIを使って、販売可能なアイテム(例えばカテゴリから)をC#を使ってアソシエイト解除する方法を示しています:

1.  エンティティビューを入手:
    
    DataServiceQuerySingle<EntityView> query = container.GetEntityView($"Entity-Category-{Category}",string.Empty, "DeleteSellableItem", "Entity-SellableItem-{SellableItemId}");
    EntityView view = Proxy.GetValue(query);
    
2.  販売可能なアイテムを切り離す:
    
    var Action = view.Properties.FirstOrDefault(p => p.Name.Equals("DeleteOption")); action.Value = "Disassociate";
    
3.  行動を実行する:
    
    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));