1. 順序積分

Orders Entity Views and Actions API(C#)を使って作業してください

Version:
日本語翻訳に関する免責事項

このページの翻訳は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#を使って注文を保留にするには:

  1. 例えば、アクションのエンティティビューを取得してください:

    DataServiceQuerySingle query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "HoldOrder", string.Empty); EntityView view = Proxy.GetValue(query);

  2. 行動を実行する:

    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));

順序行を削除する(C#)

注文ステータスが 保留中であれば、注文ラインを削除できます。

保留中の注文から行を削除するには、C#:

  1. 例えば、アクションのエンティティビューを取得してください:

    DataServiceQuerySingle query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "DeleteLineItem", lineId);

  2. 行動を実行する:

    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));

注文行(C#)を追加

注文のステータスが 保留中である場合にのみ、注文に行を追加できます。

保留中の注文に行項目を追加するには、C#:

  1. エンティティビューを取得します(リクエストで注文IDを指定する必要があります)、例えば:

    DataServiceQuerySingle query = container.GetEntityView($"Entity-Order-{orderId}", "AddLineItem", "AddLineItem", string.Empty) EntityView view = Proxy.GetValue(query);

  2. 例えば、項目の性質と数量を指定します。

    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";

  3. 行動を実行する:

    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));

注文行(C#)を編集する

注文ラインの編集は、注文のステータスが 保留中である場合にのみ可能です。

例えば、注文行を変更するには、項目数を5に変えます:

  1. 特定の注文に対するアクションのエンティティビューを取得します(リクエストは注文IDと項目項目IDを指定する必要があります)、例えば:

    DataServiceQuerySingle query = container.GetEntityView($"Entity-Order-{orderId}", "EditLineItem", "EditLineItem", lineId); EntityView view = Proxy.GetValue(query);

  2. 項目数を5に修正してください:

    var quantityProperty = view.Properties.FirstOrDefault(p =>; p.Name.Equals("Quantity")); quantityProperty.Value = "5";

  3. 行動を実行する:

    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));

保留命令を解除する(C#)

注文を 保留 状態から解放するには:

  1. 例えば、アクションのエンティティビューを取得してください:

    DataServiceQuerySingle query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "ReleaseOrder", string.Empty); EntityView view = Proxy.GetValue(query);

  2. 行動を実行する:

    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));

    !注リリース後は、注文は保留状態に戻ります。

注文の変更を元に戻す(C#)

注文が保留中に変更されたことを元に戻すには:

  1. 例えば、アクションのエンティティビューを取得してください:

    DataServiceQuerySingle query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "UndoOnHoldOrder", string.Empty); EntityView view = Proxy.GetValue(query);

  2. 行動を実行する:

    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));

    !注変更を元に戻した後も、注文は 保留のままです。

注文の保留をキャンセルする(C#)

C#を使って注文の保留を解除するには:

  1. 例えば、アクションのエンティティビューを取得してください:

    DataServiceQuerySingle query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "CancelOnHoldOrder", string.Empty); EntityView view = Proxy.GetValue(query);

  2. 行動を実行する:

    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));

!注保留を解除すると、注文はPendingの状態に戻ります。

注文をキャンセルする(C#)

保留中の注文のみキャンセル可能です。

保留中の注文をC#でキャンセルするには:

  1. 例えば、アクションのエンティティビューを取得してください:

    DataServiceQuerySingle query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "CancelOrder", string.Empty); EntityView view = Proxy.GetValue(query);

  2. 行動を実行する:

    CommerceCommand command = Proxy.DoCommand(container.DoAction(view));

    !注保留をキャンセルすると、注文のステータスがキャンセルに変わります。

アイテムの返却(C#)

Entity Views and Actions APIを使ってプログラム的に 商品返品認証(RMA) リクエストを実行できます。

!注注文状況がcompletedになったらRMAを申請できます。

注文項目に対してC#を使ってRMAリクエストを行うには:

  1. 返品理由と返品すべき項目の数量を指定します。次の例では、返品理由は間違った品目です。返品された数量は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;

  2. 返品リクエストを進めるかどうか確認してください。

    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));

  3. 行動を実行する:

    view = command.Models.OfType().FirstOrDefault(v => v.Name.Equals(view.Name)); command = Proxy.DoCommand(container.DoAction(view));command = Proxy.DoCommand(container.DoAction(view));

この記事を改善するための提案がある場合は、 お知らせください!