Orders Entity Views and Actions API(C#)を使って作業してください
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
外部システムは、注文エンティティビューおよびアクションAPIを使って注文関連情報を交換できます。
!注ビューズ&アクションAPIは、ビジネスユーザーインターフェースに対応するために設計された オーサリングAPIであり、統合シナリオには最適化されていません。
Views and Actions APIをコマース統合で使用する際には、以下の点を考慮する必要があります。
Views and Actions APIは一度に1つのCommerceエンティティしか処理できず、バッチ処理はサポートしていません。
Views and Actions APIはCommerce WebサービスのAPIよりも多くのオーバーヘッドを伴います。Views and Action APIの呼び出しは通常3ステップで、アクションのビューを取得し、ビューのプロパティを更新した値で修正し、アクションを実行します。
この例で示されているように、Orders Views and Actions APIへの呼び出しは通常以下のステップを含みます。
- アクションの視点を取る。
- ビューのプロパティ値(必要に応じて)を変更すること。
- 行動を実行すること。
!注XCコマースエンジンへのAPI呼び出しには、以下の条件を満たさなければなりません:
有効な認証トークンを提供してください。
コンテナクラスをビルドまたは再利用してください。
Entity Views and Actions API(C#)を使って注文を扱う
Entity Views and Actions APIを使って、以下の注文関連操作を行うことができます:
- 注文を保留にする(C#)
- 順序行を削除する(C#)
- 注文行(C#)を追加
- 注文行(C#)を編集する
- 保留命令を解除する(C#)
- 注文の変更を元に戻す(C#)
- 注文の保留をキャンセルする(C#)
- アイテムの返却(C#)
注文を保留にする(C#)
注文の保留 状態が保留中の場合のみ、注文を保留にすることができます。
C#を使って注文を保留にするには:
-
例えば、アクションのエンティティビューを取得してください:
DataServiceQuerySingle
query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "HoldOrder", string.Empty); EntityView view = Proxy.GetValue(query); -
行動を実行する:
CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
順序行を削除する(C#)
注文ステータスが 保留中であれば、注文ラインを削除できます。
保留中の注文から行を削除するには、C#:
-
例えば、アクションのエンティティビューを取得してください:
DataServiceQuerySingle
query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "DeleteLineItem", lineId); -
行動を実行する:
CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
注文行(C#)を追加
注文のステータスが 保留中である場合にのみ、注文に行を追加できます。
保留中の注文に行項目を追加するには、C#:
-
エンティティビューを取得します(リクエストで注文IDを指定する必要があります)、例えば:
DataServiceQuerySingle
query = container.GetEntityView($"Entity-Order-{orderId}", "AddLineItem", "AddLineItem", string.Empty) EntityView view = Proxy.GetValue(query); -
例えば、項目の性質と数量を指定します。
var itemProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("Item")); itemProperty.Value = "Adventure Works Catalog|AW188-06|20"; var quantityProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("Quantity")); quantityProperty.Value = "1";
-
行動を実行する:
CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
注文行(C#)を編集する
注文ラインの編集は、注文のステータスが 保留中である場合にのみ可能です。
例えば、注文行を変更するには、項目数を5に変えます:
-
特定の注文に対するアクションのエンティティビューを取得します(リクエストは注文IDと項目項目IDを指定する必要があります)、例えば:
DataServiceQuerySingle
query = container.GetEntityView($"Entity-Order-{orderId}", "EditLineItem", "EditLineItem", lineId); EntityView view = Proxy.GetValue(query); -
項目数を5に修正してください:
var quantityProperty = view.Properties.FirstOrDefault(p =>; p.Name.Equals("Quantity")); quantityProperty.Value = "5";
-
行動を実行する:
CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
保留命令を解除する(C#)
注文を 保留 状態から解放するには:
-
例えば、アクションのエンティティビューを取得してください:
DataServiceQuerySingle
query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "ReleaseOrder", string.Empty); EntityView view = Proxy.GetValue(query); -
行動を実行する:
CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
!注リリース後は、注文は保留状態に戻ります。
注文の変更を元に戻す(C#)
注文が保留中に変更されたことを元に戻すには:
-
例えば、アクションのエンティティビューを取得してください:
DataServiceQuerySingle
query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "UndoOnHoldOrder", string.Empty); EntityView view = Proxy.GetValue(query); -
行動を実行する:
CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
!注変更を元に戻した後も、注文は 保留のままです。
注文の保留をキャンセルする(C#)
C#を使って注文の保留を解除するには:
-
例えば、アクションのエンティティビューを取得してください:
DataServiceQuerySingle
query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "CancelOnHoldOrder", string.Empty); EntityView view = Proxy.GetValue(query); -
行動を実行する:
CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
!注保留を解除すると、注文はPendingの状態に戻ります。
注文をキャンセルする(C#)
保留中の注文のみキャンセル可能です。
保留中の注文をC#でキャンセルするには:
-
例えば、アクションのエンティティビューを取得してください:
DataServiceQuerySingle
query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "CancelOrder", string.Empty); EntityView view = Proxy.GetValue(query); -
行動を実行する:
CommerceCommand command = Proxy.DoCommand(container.DoAction(view));
!注保留をキャンセルすると、注文のステータスがキャンセルに変わります。
アイテムの返却(C#)
Entity Views and Actions APIを使ってプログラム的に 商品返品認証(RMA) リクエストを実行できます。
!注注文状況がcompletedになったらRMAを申請できます。
注文項目に対してC#を使ってRMAリクエストを行うには:
-
返品理由と返品すべき項目の数量を指定します。次の例では、返品理由は間違った品目です。返品された数量は1です。
DataServiceQuerySingle
query = container.GetEntityView($"Entity-Order-{orderId}", "RequestRma", "ValidateRmaRequest", lineId); EntityView view = Proxy.GetValue(query); var reasonProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("Option")); var availableReasonsPolicy = reasonProperty.Policies.OfType ().FirstOrDefault(); reasonProperty.Value = availableReasonsPolicy?.List.FirstOrDefault(o => o.Name.Equals("WrongItem")).Name; view.Properties.FirstOrDefault(p => p.Name.Equals("Quantity")).Value = 1; -
返品リクエストを進めるかどうか確認してください。
CommerceCommand command = Proxy.DoCommand(container.DoAction(view)); view = command.Models.OfType
().FirstOrDefault(v => v.Name.Equals(view.Name)); var countryProperty = view.Properties.FirstOrDefault(p => p.Name.Equals("Country")); countProperty.Value = "3"; var availableCountryPolicy = optionProperty.Policies.OfType ().FirstOrDefault(); countryProperty.Value = availableCountryPolicy?.List.FirstOrDefault(o => o.Name.Equals("CA")).Name; command = Proxy.DoCommand(container.DoAction(view)); view = command.Models.OfType ().FirstOrDefault(v => v.Name.Equals(view.Name)); command = Proxy.DoCommand(container.DoAction(view)); -
行動を実行する:
view = command.Models.OfType
().FirstOrDefault(v => v.Name.Equals(view.Name)); command = Proxy.DoCommand(container.DoAction(view));command = Proxy.DoCommand(container.DoAction(view));