在庫ドメイン モデル
このドメイン モデルは、外部システムとのコントラクトを作成するクラスで構成されています。コントラクトはインターフェイスではなくクラスとして定義されているため、必要に応じて後でモデルを簡単に拡張できます。これは、『Framework Design Guidelines』ブックで定義されているベスト プラクティスのガイドラインに従っています。
コントラクトのデフォルトの実装は、Connect の一部として提供されます。外部コマース システムを備えた実際の Connect プロバイダーに、デフォルトで提供される機能よりも多くの機能が含まれている場合は、実装を置き換えることができます。実際のクラスのすべてのインスタンス化は、依存関係挿入によって処理されます。
クラス: StockInformation
StockInformation
クラスは、GetStockInformation
サービス メソッドの厳密に型指定された複合戻り値として使用されます。
名前 |
タイプ |
説明 |
---|---|---|
Product |
InventoryProduct |
コマース システムの商品または商品バリアントの識別子。 |
Status |
StockStatus |
デフォルトで使用可能な値は、In-Stock、Out-Of-Stock、Pre-Orderable、Back-Orderable です。 |
Count |
Double |
商品が一定の数量でバンドルされる場合は、端数を含む可能性があります。 |
AvailabilityDate |
DateTime |
商品が在庫切れまたは取り寄せ注文可能である場合は、販売日を含む可能性があります。 |
クラス: OrderableInformation
OrderableInformation
クラスは、GetPreOrdableInformation
および GetBackOrderableInformation
サービス メソッドの厳密に型指定された複合戻り値として使用されます。
名前 |
タイプ |
説明 |
---|---|---|
Product |
InventoryProduct |
コマース システムの商品または商品バリアントの識別子。 |
Status |
StockStatus |
デフォルトで使用可能な値は、In-Stock、Out-Of-Stock、Pre-Orderable、Back-Orderable です。 |
InStockDate |
Datetime |
商品が再入荷される ETA 日付。 |
ShippingDate |
DateTime |
商品が出荷可能になる ETA 日付。 |
CartQuantityLimit |
Double |
訪問者がカートに追加できる制限。 |
OrderableStartDate |
DateTime |
特定の商品に対して最初の注文を行うことができる日時。 |
OrderableEndDate |
DateTime |
特定の商品に対して最後の注文を行うことができる日時。 |
RemainingQuantity |
Double |
予約注文可能な商品の場合、注文が行われる残りの数量を含む可能性があります。 |
クラス: IndexStockInformation
IndexStockInformation
クラスは、商品のインデックスを作成し、基本の在庫情報を含む場合に、StockStatusForIndexing
パイプラインで使用される厳密に型指定された複合戻り値として使用されます。
エンティティは基本のエンティティである StockLocations
から継承されます。次の表では、継承されたプロパティが斜体で表示されています
名前 |
タイプ |
説明 |
---|---|---|
Product |
InventoryProduct |
コマース システムの商品または商品バリアントの識別子 |
InStockLocations |
List<string> |
商品の在庫がある場所のリスト。 |
OutOfStockLocations |
List<string> |
商品が在庫切れである場所のリスト。 |
OrderableLocations |
List<string> |
商品を注文できる場所のリスト。 |
PreOrderable |
Boolean |
商品が予約注文可能かどうかを示します。 |
クラス: StockInformationUpdate
StockInformationUpdate
クラスは、GetBackInStockInformation
メソッドからの厳密に型指定された複合戻り値として使用され、再入荷される商品とその場所を示します。また、オプションで販売日と販売数も示します。
名前 |
タイプ |
説明 |
---|---|---|
Product ID |
String |
商品の ID。 |
StockInformationUpdateLocation |
List< StockInformationUpdateLocation > |
商品が購入可能な場所のリストです。オプションで、販売日と販売数の値を含む場合があります |
クラス: StockInformationUpdateLocation
StockInformationUpdateLocation
クラスは、GetBackInStockInformation
メソッドから返される StockInformationUpdate
クラスにのみネストされる厳密に型指定された値として使用され、商品が再入荷される場所を示します。また、オプションで販売日と販売数も示します。
名前 |
タイプ |
説明 |
---|---|---|
Location |
String |
場所の名前 |
AvailabilityDate |
DateTime? |
商品が再入荷される日時 (任意) です。訪問者から提供された関心の日付 (任意) との比較に使用できます。関心の日付が販売日よりも前である場合は、通知の登録が無意味になり、販売が可能になります。 |
Count |
Double? |
指定された日時にその場所に存在する商品の在庫の数 (任意)。 |
クラス: StockDetailsLevel
簡単な在庫ステータスの入手と、実際の在庫数の取得では、処理速度に差が出るのは当然です。情報を柔軟に入手するため、要求する情報の詳細レベルを指定することができます。
StockDetailsLevel
クラスは、GetStockInformation
サービス メソッドの厳密に型指定された要求パラメーターとして使用され、要求する在庫情報の詳細レベルを示します。厳密に型指定されたパラメーターを使用すると、ソリューション開発者は API を簡単に使用できます。次の例は、このクラスを列挙型のようなパラメーターとして使用する方法を示しています。
StockInformation stockInformation = GetStockInformation(
new StockInformationRequest { shopName = “MyShop”;
products = new list<string> { “Aw123x” };
detailsLevel = StockDetailsLevel.Status
}).Result;
次の表に、デフォルトの StockDetailsLevel
オプションを示し、そのオプションを拡張する方法を示す例を紹介します。
名前 |
タイプ |
説明 |
---|---|---|
Status |
public const int Status = 1 |
最小限の情報、つまり在庫ステータスが返されることを示します。 |
StatusAndAvailability |
public const int StatusAndAvailability = 2 |
ステータスと販売日の情報が返されることを示します。販売日が意味を持つのは、ステータスが次に等しい場合です。 |
Count |
public const int Count = 3 | |
All |
public const int All = 4 |
このクラスは拡張可能な列挙として提供されます。StockDetailsLevel
オプションを拡張およびカスタマイズするには、次のように記述します。
public class MyECSStockDetailsLevel : StockDetailsLevel
{
public const int MyCustomDetailLevel = 4;
public MyECSStockDetailsLevel (int value) : base(value)
{ }
}
クラス: StockStatus
StockStatus
クラスは、在庫ステータスを示す厳密に型指定された値として使用されます。厳密に型指定された値を使用すると、ソリューション開発者は API を簡単に使用することができます。次の例は、このクラスを列挙型のようなパラメーターとして使用する方法を示しています。
StockInformation stockInformation = GetStockInformation(
new StockInformationRequest { shopName = “MyShop”;
products = new list<string> { “Aw123x” };
detailsLevel = StockDetailsLevel.Status
}).Result.StockInformation[0];
If (stockInformation.Status == StockStatus.PreOrderable)
{
// Do work
}
次の表に、デフォルトの StockStatus
オプションを示し、そのオプションを拡張する方法を示す例を紹介します。
名前 |
タイプ |
説明 |
---|---|---|
InStock |
public const int InStock = 1 |
要求された商品の在庫があることを示します。 |
OutOfStock |
public const int OutOfStock = 2 |
要求された商品が在庫切れであることを示します。 |
PreOrderable |
public const int PreOrderable = 3 |
要求された商品はまだ在庫切れであるが、予約注文可能であることを示します。 |
BackOrderable |
public const int BackOrderable = 4 |
要求された商品は在庫切れであるものの、取り寄せ注文可能であることを示します。 |
このクラスは拡張可能な列挙として提供されます。StockDetailsLevel
オプションを拡張およびカスタマイズするには、次のように記述します。
public class MyECSStockStatus : StockStatus
{
public const int MyCustomStatus = 4;
public MyECSStockStatus (int value) : base(value)
{ }
}
クラス: InventoryProduct
InventoryProduct
クラスは、商品を識別する厳密に型指定された値として使用されます。厳密に型指定された値を使用すると、ソリューション開発者は API を簡単に使用することができます。
名前 |
タイプ |
説明 |
---|---|---|
ProductId |
String |
コマース システムの商品または商品バリアントを表す一意の識別子。 |
クラス: IndexStockInformation
IndexStockInformation
クラスは、特定の商品の場所を取得する場合に GetProductStockLocations
パイプラインで使用される厳密に型指定された複合戻り値として使用されます。
IndexStockInformation
クラスは基本のエンティティとしても使用されます。
名前 |
タイプ |
説明 |
---|---|---|
InStockLocations |
List<string> |
商品の在庫がある場所のリスト。 |
OutOfStockLocations |
List<string> |
商品が在庫切れである場所のリスト。 |
OrderableLocations |
List<string> |
商品を注文できる場所のリスト。 |
PreOrderable |
Bool |
アイテムが予約注文可能かどうかを示します。 |
クラス: StockLocation
StockLocation
クラスは、商品の在庫場所を示すために使用されます。
名前 |
タイプ |
説明 |
---|---|---|
LocationId |
String |
在庫場所の ID。 |
名前 |
String |
在庫場所の名前。 |