1. 注文の統合

Orders Entity Views and Actions APIの操作 (C#)

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

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

外部システムは、Orders Entity Views and Actions APIを使用して注文関連情報を交換できます。

メモ

Views and Actions 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 Commerce EngineへのAPI呼び出しでは、次のことを行う必要があります。

Entity Views and Actions APIを使用した注文の操作 (C#)

Entity Views and Actions APIを使用して、次の注文関連の操作を実行できます。

注文を保留にする (C#)

注文を保留にできるのは、注文ステータスがpendingの場合のみです。

C# を使用して注文を保留にするには:

  1. アクションのエンティティ ビューを取得します。たとえば、次のようにします。

    DataServiceQuerySingle<EntityView> 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#)

注文状況がpendingの場合は、注文明細行を削除できます。

C#を使用して未決注文からラインを削除するには:

  1. アクションのエンティティ ビューを取得します。たとえば、次のようにします。

    DataServiceQuerySingle<EntityView> query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "DeleteLineItem", lineId);
  2. アクションを実行します。

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

注文明細行を追加する (C#)

注文に明細行を追加できるのは、注文のステータスがon holdの場合のみです。

C# を使用して指値注文に明細項目を追加するには:

  1. エンティティ ビューを取得します (要求では注文IDを指定する必要があります)。

    DataServiceQuerySingle<EntityView> 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#)

注文明細行を編集できるのは、注文のステータスがon holdの場合のみです。

たとえば、注文明細を変更するには、明細の数量を次のように5

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

    DataServiceQuerySingle<EntityView> 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#)

注文をon holdステータスから解除するには:

  1. アクションのエンティティ ビューを取得します。たとえば、次のようにします。

    DataServiceQuerySingle<EntityView> query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "ReleaseOrder",
    string.Empty);
    EntityView view = Proxy.GetValue(query);
  2. アクションを実行します。

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

    リリース後、注文はpendingステータスに戻ります。

注文に加えた変更の取り消し (C#)

注文に加えた変更を元に戻すには(on hold

  1. アクションのエンティティ ビューを取得します。たとえば、次のようにします。

    DataServiceQuerySingle<EntityView> query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "UndoOnHoldOrder", string.Empty); EntityView view = Proxy.GetValue(query);
  2. アクションを実行します。

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

    変更を元に戻した後も、順序はon holdのままです。

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

C# を使用して注文の保留をキャンセルするには

  1. アクションのエンティティ ビューを取得します。たとえば、次のようにします。

    DataServiceQuerySingle<EntityView> 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#)

キャンセルできるのは、pendingステータスの注文のみです。

C# を使用して未決注文をキャンセルするには:

  1. アクションのエンティティ ビューを取得します。たとえば、次のようにします。

    DataServiceQuerySingle<EntityView> query = container.GetEntityView($"Entity-Order-{orderId}", string.Empty, "CancelOrder",
    string.Empty);
    EntityView view = Proxy.GetValue(query);
  2. アクションを実行します。

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

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

項目を返す (C#)

返品承認 (RMA) リクエストは、Entity Views and Actions APIを使用してプログラムで実行できます。

手記

RMAをリクエストできるのは、注文ステータスがcompletedの場合です。

C# を使用して注文明細項目のRMAリクエストを実行するには:

  1. アイテムを返品する理由と、返品するこの明細アイテムの数量を指定します。 次の例では、戻る理由はwrong Itemです。返される数量は1です。

    DataServiceQuerySingle<EntityView> 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<AvailableSelectionsPolicy>().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<EntityView>().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<AvailableSelectionsPolicy>().FirstOrDefault();
    countryProperty.Value = availableCountryPolicy?.List.FirstOrDefault(o => o.Name.Equals("CA")).Name;
    command = Proxy.DoCommand(container.DoAction(view));
    view = command.Models.OfType<EntityView>().FirstOrDefault(v => v.Name.Equals(view.Name));
    command = Proxy.DoCommand(container.DoAction(view));
  3. アクションを実行します。

    view = command.Models.OfType<EntityView>().FirstOrDefault(v => v.Name.Equals(view.Name));
    command = Proxy.DoCommand(container.DoAction(view));command = Proxy.DoCommand(container.DoAction(view));
この記事を改善するための提案がある場合は、 お知らせください!