次の方法で共有


Commerce 価格 API

この記事では、Microsoft Dynamics 365 Commerce の価格エンジンが提供する様々な価格 API について説明します。

Dynamics 365 Commerce 価格エンジンは、様々な価格設定シナリオをサポートするために、外部アプリケーションから消費可能な以下の Retail Server API を提供します:

  • GetActivePrice : このAPIは、簡単な割引を含む製品の計算価格を取得します。
  • CalculateSalesDocument : このAPIは、一緒に購入した場合に、特定の数量の製品の価格と割引を計算します。
  • GetAvailablePromotions : このAPIは、買い物カゴの製品に適用される割引を受け取ります。
  • AddCoupons : このAPIは、カートにクーポンを追加します。
  • [Couponsの削除 : このAPIは、カートからクーポンを削除します。

Retail Server API を外部アプリケーションで利用する方法の詳細については、外部アプリケーションで Retail Server API を利用する を参照してください。

GetActivePrices

GetActivePrices API は、Commerce バージョン 10.0.4 のリリースで導入されました。 この API は、簡単な割引を含む製品の算出価格を取得します。 複数行の割引は計算されず、API リクエストの各商品は数量が 1 であると仮定されます。 また、この API は、製品の一覧を入力として受け取り、個々の製品の価格を一括してクエリできます。

GetActivePrices API は、従業員顧客匿名アプリケーション コマースのロールをサポートします。

GetActivePrices API の主なユースケースは、商品詳細ページ (PDP) で、小売業者は有効な割引を含む商品のベスト プライスを示したいと考えます。

ノート

GetActivePrices 呼び出しに対して返される商品が少ない場合は、チャネル販売構成の検証 に従って販売構成を検証できます。

次の表に、GetActivePrices API の入力パラメータを示します。

氏名 サブ名前 必須/オプション Description
projectDomain ProjectionDomain 必須
ChannelId long 要求済み
CatalogId long 要求済み
productIds IEnumerable<long型> 要求済み 価格計算を行う製品のリストです。
activeDate DateTimeOffset 必須 価格が計算される日付。
customerId 文字列 オプション 顧客 取引先企業番号。
affiliationLoyaltyTiers IEnumerable<AffiliationLoyaltyTier> オプション アフィリエイト層とロイヤリティ層。
AffiliationId long 必須 系列 ID。
LoyaltyTierId long オプション ロイヤルティ層 ID。
includeSimpleDiscountsInContextualPrice ブール オプション 価格決定の算定に単純な割引を含める場合は、このパラメーターを true に設定します。 既定値は false です。
includeVariantPriceRange ブール オプション マスタ 製品のすべてのバリアント間で最小価格および最大価格を取得するには、このパラメータを true に設定します。 既定値は false です。
includeAttainablePricesAndDiscounts ブール オプション 達成可能な価格と割引を取得するには、このパラメータを true に設定します。 既定値は false です。
サンプル要求本文
{
    "projectDomain": 
    {
        "ChannelId": 5637144592,
        "CatalogId": 0
    },
    "productIds": 
    [
        68719489871
    ],
    "activeDate": "2022-06-20T14:40:05.873+08:00",
    "includeSimpleDiscountsInContextualPrice": true,
    "includeVariantPriceRange": false
}
サンプル 応答体
{
    "value": 
    [
        {
            "ProductId": 68719489871,
            "ListingId": 68719489871,
            "BasePrice": 0,
            "TradeAgreementPrice": 0,
            "AdjustedPrice": 0,
            "MaxVariantPrice": 0,
            "MinVariantPrice": 0,
            "CustomerContextualPrice": 0,
            "DiscountAmount": 0,
            "CurrencyCode": "USD",
            "ItemId": "82000",
            "InventoryDimensionId": null,
            "UnitOfMeasure": "ea",
            "ValidFrom": "2022-06-20T01:40:05.873-05:00",
            "ProductLookupId": 0,
            "ChannelId": 5637144592,
            "CatalogId": 0,
            "SalesAgreementPrice": 0,
            "PriceSourceTypeValue": 1,
            "DiscountLines": [],
            "AttainablePriceLines": [],
        }
    ]
}

PriceLookupContext を使用する

PriceLookupContext クラスは、Commerce バージョン 10.0.37 のリリースで導入されました。 クラスは、GetActivePrices API のすべてのルックアップ基準を含み、productIds、activeDate、customerId、および affiliationLoyaltyTiers 以前のパラメーターを置き換えるクラスです。 このクラスには、開発者が割引のルックアップ時に割引をフィルターするために使用できる追加のプロパティも用意されています。

組織のニーズに応じて、GetActivePrices API は、前のパラメーター、または PriceLookupContext クラスに関連付けられた新しいパラメーターを受け入れることができます。

入力パラメータ

氏名 サブ名前 必須/オプション Description
projectDomain ProjectionDomain 必須
ChannelId long 必須
CatalogId long 必須
priceLookupContext PriceLookupContext 必須
HeaderContext PriceLookupHeaderContext 必須 CustomerAccountNumber、AffiliationLoyaltyPropLines および SalesOrderProperties を含みます
LineContexts IEnumerable<PriceLookupLineContext> 必須 ProductRecordId、UnitOfMeasureSymbol、InventorySiteId、InventoryLocationId、DeliveryMode、CatalogId および SalesLineProperties を含みます
includeSimpleDiscountsInContextualPrice ブール オプション 価格決定の算定に単純な割引を含める場合は、このパラメーターを true に設定します。 既定値は false です。
includeVariantPriceRange ブール オプション マスタ 製品のすべてのバリアント間で最小価格および最大価格を取得するには、このパラメータを true に設定します。 既定値は false です。
includeAttainablePricesAndDiscounts ブール オプション 達成可能な価格と割引を取得するには、このパラメータを true に設定します。 既定値は false です。

詳細については、PriceLookupContextを参照してください。

CalculateSalesDocument

CalculateSalesDocument API は、Commerce バージョン 10.0.25 のリリースで導入されました。 この API は、注文で一緒に購入した場合に、指定された数量の製品の価格と割引計算します。 CalculateSalesDocument API の後の価格決定の算定では、単一行割引と複数行割引の両方が考慮されます。

CalculateSalesDocument API の主な使用例は、完全なカート コンテキストが維持されないシナリオ (販売見積など) での価格決定の算定です。 この場合、POS や Commerce e コマースのシナリオにも役立ちます。 カート内の品目がセットで計算される場合 (ばらばらのバンドル、リンク商品、おすすめ商品、既にカートに入れてある商品など)、合計金額が安くなれば、顧客は製品をカートに追加できる可能性があります。

CalculateSalesDocument API のリクエスト、レスポンスともにデータ モデルは Cart です。 ただし、この API のコンテキストでは、データ モデルは SalesDocument となっています。 プロパティのほとんどはオプションであり、価格算定に影響を与えるものはごくわずかであるため、以下の表では価格に関連するフィールドのみが表示されます。 他のフィールドを API リクエストに関連させることは推奨しません。

CalculateSalesDocument API のスコープは、価格と割引の算定のみです。 税金や費用は含まれません。

次の表に、salesDocument という名前のオブジェクト内の入力パラメーターを示します。

氏名 サブ名前 必須/オプション Description
ID 文字列 必須 営業ドキュメントの識別子。
CartLines IList<CartLine> オプション 価格や割引を計算するラインの一覧です。
製品 ID long CartLine のスコープで必須 製品レコード ID。
ItemId 文字列 オプション 品目識別子。 値を指定する場合は、ProductId パラメータの値と一致させる必要があります。
InventoryDimensionId 文字列 オプション 在庫分析コードの識別子です。 値が提供される場合、ItemIdInventoryDimensionId の値の組み合わせは ProductId パラメータの値と一致る必要があります。
Quantity decimal CartLine のスコープで必須 製品の数量。
UnitOfMeasureSymbol 文字列 オプション 製品の単位。 既定では、値が提供されない場合、API は商品の販売単位を使用します。
CustomerId 文字列 オプション 顧客 取引先企業番号。
LoyaltyCardId 文字列 オプション このロイヤルティ カードの識別子です。 ロイヤルティ カードに関連する顧客アカウントは、CustomerId パラメーターの値 (指定されている場合) と一致する必要があります。 ロイヤルティ カードは、ロイヤルティ カードが見つからないか、ステータスが ブロック の場合は考慮されません。
AffiliationLines IList<AffiliationLoyaltyTier> オプション アフィリエイト ロイヤリティの階層ライン。 CustomerId 値および/または LoyaltyCardId 値が指定された場合、対応する所属ロイヤリティ層の行は、AffiliationLines 値で指定された行にマージされます。
AffiliationId long AffiliationLoyaltyTier のスコープで必須 アフィリエイト レコード ID。
LoyaltyTierId long AffiliationLoyaltyTier のスコープで必須 ロイヤルティ層レコード ID。
AffiliationTypeValue int AffiliationLoyaltyTier のスコープで必須 アフィリエイト行が全般タイプ (0) かロイヤルティタイプ (1) かを示す値。 パラメーターが 0 に設定されている場合、API は AffiliationId の値を識別子として受け取り、LoyaltyTierId 値を無視します。 パラメーターが 1 に設定されている場合、API は LoyaltyTierId の値を識別子として受け取り、AffiliationId 値を無視します。
ReasonCodeLines Collection<ReasonCodeLine> AffiliationLoyaltyTier のスコープで必須 理由コードの行。 このパラメータは価格算定には影響しませんが、AffiliationLoyaltyTier オブジェクトの一部として必要です。
CustomerId 文字列 AffiliationLoyaltyTier のスコープで必須 顧客 取引先企業番号。
クーポン IList<Coupon> オプション 適用されないクーポン (非アクティブ、期限切れ、見つからない場合) は、価格算定の対象にはなりません。
コード 文字列 クーポンのスコープで必須 クーポン コード。
CodeId 文字列 オプション クーポン コードの識別子。 値を指定する場合は、Code パラメータの値と一致させる必要があります。
DiscountOfferId 文字列 オプション 割引識別子。 値を指定する場合は、Code パラメータの値と一致させる必要があります。
サンプル要求本文
{
    "salesDocument": 
    {
        "Id": "CalculateSalesDocument",
        "CartLines": 
        [
            {
                "ProductId": 68719491408,
                "ItemId": "91003",
                "InventoryDimensionId": "",
                "Quantity": 1,
                "UnitOfMeasureSymbol": "ea"
            },
            {
                "ProductId": 68719493014,
                "Quantity": 2,
                "UnitOfMeasureSymbol": "ea"
            }
        ],
        "CustomerId": "3003",
        "AffiliationLines": 
        [
            {
                "AffiliationId": 68719476742,
                "LoyaltyTierId": 0,
                "AffiliationTypeValue": 0,
                "ReasonCodeLines": [],
                "CustomerId": null
            }
        ],
        "LoyaltyCardId": "55103",
        "Coupons": 
        [
            {
                "CodeId": "CODE-0005",
                "Code": "CPN0004",
                "DiscountOfferId": "ST100077"
            }
        ]
    }
}

カートのオブジェクト全体が応答本文として返されます。 価格や割引を確認するには、次のテーブルのフィールドに注目する必要があります。

氏名 サブ名前 Description
NetPrice decimal 任意の割引適用前の売上ドキュメント全体の正味価格。
DiscountAmount decimal 売上ドキュメント全体の割引額の合計。
TotalAmount decimal 売上ドキュメント全体の合計金額。
CartLines IList<CartLine> 価格と割引の詳細を含む計算済の明細行。
価格 decimal 製品の単価。
NetPrice decimal 任意の割引適用前の明細の正味価格 (= 価格 x 数量)。
DiscountAmount decimal 割引金額。
TotalAmount decimal 明細行の最終的な価格合計の結果。
PriceLines IList<PriceLine> 価格のソース (基準価格、価格調整、取引契約など)、金額などの価格の詳細。
DiscountLines IList<DiscountLine> 割引の詳細。

GetAvailablePromotions

GetAvailablePromotions API には次の 2 つがあります。

  • Carts/GetAvailablePromotions カートの行IDのリストをパラメーターとして受け入れる場合に使用します。
  • GetAvailablePromotions accepts a DiscountsSearchCriteria パラメータとして設定されます。

Carts/GetAvailablePromotions

複数のカート明細行を持つカートがある場合、Carts/GetAvailablePromotions API はカート明細行に適用されるすべての割引を返します。

Carts/GetAvailablePromotions API の主な使用例はカートページです。小売業者は現在のカートで適用された割引や利用可能なクーポンを表示します。

次のテーブルに、Carts/GetAvailablePromotions API の入力パラメータを示します。

名前 必須/オプション Description
キー 文字列 要求済み カート ID。
cartLineIds IEnumerable<string型> オプション このパラメータは、選択されたカート行の割引のみを返すように設定します。
サンプル 応答体
{
    "value": 
    [
        {
            "LineId": "f495ffa507bc4f63a47a409cd8713dd7",
            "Promotion": {
                "OfferId": "ST100012",
                "OfferName": "Loyalty 5% off over $100",
                "PeriodicDiscountTypeValue": 4,
                "IsDiscountCodeRequired": false,
                "ValidationPeriodId": null,
                "AdditionalRestrictions": null,
                "Description": "All loyalty members get 5% with transaction total above $10 unless some exclusive or best price discounts are already applied on the transaction",
                "ValidFromDate": "2022-06-20T06:52:56.2460219Z",
                "ValidToDate": "2022-06-20T06:52:56.2460224Z",
                "CouponCodes": [],
                "ValidationPeriod": null
            }
        }
    ]
}

GetAvailablePromotions

GetAvailablePromotions API は、指定されたチャンネルに対して適用される割引を返します。

GetAvailablePromotions API の主な使用例は "すべての割引" です。小売業者は現在のチャンネルに対するすべての割引を示します。

次のテーブルに、GetAvailablePromotions API の入力パラメータを示します。

氏名 サブ名前 必須/オプション Description
searchCriteria DiscountsSearchCriteria 必須
ChannelId long 必須
キーワード 文字列 オプション
IsDiscountCodeRequired ブール オプション クーポンコードが必要かどうかを示します。 NULL を渡した場合、クーポン コードの要件に関係なく、すべての割引が取得されます。
StartDate DateTimeOffset 必須 開始日 (含む)。
EndDate DateTimeOffset 必須 終了日 (含む)。
サンプル要求本文
{
    "searchCriteria": {
        "ChannelId": 5637144592,
        "StartDate": "1900-01-01T00:00:00Z",
        "EndDate": "2154-12-31T00:00:00Z"
    }
}
サンプル 応答体
{
    "@odata.context": "https://usnconeboxax1ret.cloud.onebox.dynamics.com/Commerce/$metadata#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.Promotion)",
    "value": [
        {
            "OfferId": "ST100024",
            "OfferName": "Weekly ad",
            "PeriodicDiscountTypeValue": 2,
            "IsDiscountCodeRequired": true,
            "ValidationPeriodId": "",
            "AdditionalRestrictions": "",
            "Description": "",
            "ValidFromDate": "1900-01-01T00:00:00Z",
            "ValidToDate": "2154-12-31T00:00:00Z",
            "CouponCodes": [],
            "ExtensionProperties": [
                {
                    "Key": "DATAAREAID",
                    "Value": {
                        "StringValue": "usrt"
                    }
                },
                {
                    "Key": "DATEVALIDATIONTYPE",
                    "Value": {
                        "IntegerValue": 1
                    }
                }
            ]
        },
        {
            "OfferId": "ST100019",
            "OfferName": "Take 20 off anything",
            "PeriodicDiscountTypeValue": 2,
            "IsDiscountCodeRequired": true,
            "ValidationPeriodId": "",
            "AdditionalRestrictions": "",
            "Description": "",
            "ValidFromDate": "1900-01-01T00:00:00Z",
            "ValidToDate": "2154-12-31T00:00:00Z",
            "CouponCodes": [],
            "ExtensionProperties": [
                {
                    "Key": "DATAAREAID",
                    "Value": {
                        "StringValue": "usrt"
                    }
                },
                {
                    "Key": "DATEVALIDATIONTYPE",
                    "Value": {
                        "IntegerValue": 1
                    }
                }
            ]
        },
        {
            "OfferId": "ST100015",
            "OfferName": "Watches",
            "PeriodicDiscountTypeValue": 2,
            "IsDiscountCodeRequired": false,
            "ValidationPeriodId": "",
            "AdditionalRestrictions": "",
            "Description": "",
            "ValidFromDate": "1900-01-01T00:00:00Z",
            "ValidToDate": "2154-12-31T00:00:00Z",
            "CouponCodes": [],
            "ExtensionProperties": [
                {
                    "Key": "DATAAREAID",
                    "Value": {
                        "StringValue": "usrt"
                    }
                },
                {
                    "Key": "DATEVALIDATIONTYPE",
                    "Value": {
                        "IntegerValue": 1
                    }
                }
            ]
        },
        {
            "OfferId": "ST100012",
            "OfferName": "Loyalty 5% off over $100",
            "PeriodicDiscountTypeValue": 4,
            "IsDiscountCodeRequired": false,
            "ValidationPeriodId": "",
            "AdditionalRestrictions": "",
            "Description": "All loyalty members get 5% with transaction total above $10 unless some exclusive or best price discounts are already applied on the transaction",
            "ValidFromDate": "1900-01-01T00:00:00Z",
            "ValidToDate": "2154-12-31T00:00:00Z",
            "CouponCodes": [],
            "ExtensionProperties": [
                {
                    "Key": "DATAAREAID",
                    "Value": {
                        "StringValue": "usrt"
                    }
                },
                {
                    "Key": "DATEVALIDATIONTYPE",
                    "Value": {
                        "IntegerValue": 1
                    }
                }
            ]
        },
        {
            "OfferId": "ST100011",
            "OfferName": "Loyalty 50% off sunglasses",
            "PeriodicDiscountTypeValue": 1,
            "IsDiscountCodeRequired": false,
            "ValidationPeriodId": "",
            "AdditionalRestrictions": "",
            "Description": "Gold tier Loyalty customers get 50% on Sunglasses when purchased with a Top, Scarf or Men's Casual shirts",
            "ValidFromDate": "1900-01-01T00:00:00Z",
            "ValidToDate": "2154-12-31T00:00:00Z",
            "CouponCodes": [],
            "ExtensionProperties": [
                {
                    "Key": "DATAAREAID",
                    "Value": {
                        "StringValue": "usrt"
                    }
                },
                {
                    "Key": "DATEVALIDATIONTYPE",
                    "Value": {
                        "IntegerValue": 1
                    }
                }
            ]
        },
        {
            "OfferId": "ST100009",
            "OfferName": "Student discount",
            "PeriodicDiscountTypeValue": 2,
            "IsDiscountCodeRequired": false,
            "ValidationPeriodId": "",
            "AdditionalRestrictions": "",
            "Description": "Students get 10% off for on Jeans and Backpacks",
            "ValidFromDate": "1900-01-01T00:00:00Z",
            "ValidToDate": "2154-12-31T00:00:00Z",
            "CouponCodes": [],
            "ExtensionProperties": [
                {
                    "Key": "DATAAREAID",
                    "Value": {
                        "StringValue": "usrt"
                    }
                },
                {
                    "Key": "DATEVALIDATIONTYPE",
                    "Value": {
                        "IntegerValue": 1
                    }
                }
            ]
        },
        {
            "OfferId": "ST100004",
            "OfferName": "Soccer sale",
            "PeriodicDiscountTypeValue": 3,
            "IsDiscountCodeRequired": false,
            "ValidationPeriodId": "",
            "AdditionalRestrictions": "",
            "Description": "Providing you great discounts ranging from 10% to 20% on all branded Soccer balls.  We carry a full line of soccer balls.  Buy one for yourself or gift it to someone.  We promise you that you won't be disappointed.  If you don't see something that you are looking for please call us.  This offer is only valid at our Retail Malls.",
            "ValidFromDate": "1900-01-01T00:00:00Z",
            "ValidToDate": "2154-12-31T00:00:00Z",
            "CouponCodes": [],
            "ExtensionProperties": [
                {
                    "Key": "DATAAREAID",
                    "Value": {
                        "StringValue": "usrt"
                    }
                },
                {
                    "Key": "DATEVALIDATIONTYPE",
                    "Value": {
                        "IntegerValue": 1
                    }
                }
            ]
        },
        {
            "OfferId": "ST100003",
            "OfferName": "BMX helmet sale",
            "PeriodicDiscountTypeValue": 0,
            "IsDiscountCodeRequired": false,
            "ValidationPeriodId": "",
            "AdditionalRestrictions": "",
            "Description": "Get 20% off on all branded youth BMX helmets when you buy two or more.  Choose from our great selection of BMX bike helmets from top brands, including ProTec, Giro, Bell and SixSixOne BMX helmets.  This offer is only available at our Retail Mall stores",
            "ValidFromDate": "1900-01-01T00:00:00Z",
            "ValidToDate": "2154-12-31T00:00:00Z",
            "CouponCodes": [],
            "ExtensionProperties": [
                {
                    "Key": "DATAAREAID",
                    "Value": {
                        "StringValue": "usrt"
                    }
                },
                {
                    "Key": "DATEVALIDATIONTYPE",
                    "Value": {
                        "IntegerValue": 1
                    }
                }
            ]
        }
    ]
}

AddCoupons

AddCouponsAPI では、カートにクーポンの一覧を追加できます。 クーポンを追加した後、カートのオブジェクトを返します。

次の表に、AddCoupons API の入力パラメータを示します。

Name 種類 必須/任意 Description
キー 文字列 要求済み カート ID。
couponCodes IEnumerable<string型> 要求済み カートに追加するクーポンコード。
isLegacyDiscountCode ブール オプション このパラメータを true に設定すると、クーポンがレガシー割引コードであることを示します。 既定値は false です。

RemoveCoupons

The RemoveCoupons API は、カートからクーポンのリストを削除することができます。 クーポンを削除した後、カートのオブジェクトを返します。

次の表に、RemoveCoupons API の入力パラメータを示します。

Name 種類 必須/任意 Description
キー 文字列 要求済み カート ID。
couponCodes IEnumerable<string型> 必須 カートから削除するクーポンコードです。

GetProductPromotions

GetProductPromotions API は、Commerce バージョン 10.0.38 のリリースで導入されました。 この API は、特定の製品割引を適用したプロモーション製品の一覧を取得し、関連するプロモーション製品の入力およびクエリとして製品割引 ID および価格決定コンテキストの一覧を取得することもできます。 GetProductPromotions API の主な使用例は、小売業者が割引の製品を提示する製品のリスト ページです。 この API は、プロパティベースの価格決定モデルとレガシ価格決定モデルの両方をサポートします。

次の表に、GetProductPromotions API の入力パラメーターを示します。

氏名 サブ名前 必須/オプション Description
productDiscountIds IEnumerable<string型> 必須 プロモーション製品を探す製品割引 ID のリスト。
priceLookupContext PriceLookupContext 必須 価格決定のコンテキスト。
activeDate DateTimeOffset オプション 販売促進が考慮される日付。

規制と制限:

  • 最大で 5 つの製品割引 ID のみを入力として使用できます。
  • 簡易割引のみがサポートされます。
サンプル要求本文
{
    {
    "productDiscountIds": 
    [
        "ST100009",
        "ST100024"
    ],
    "priceLookupContext": 
    {
        "HeaderContext": 
        {
            "AffiliationLoyaltyTierLines": 
            [
                {
                    "AffiliationId": 5637144577,
                    "LoyaltyTierId": 0, 
                    "AffiliationTypeValue": 0,
                    "ReasonCodeLines": [],
                    "CustomerId": "2001"
                }
            ]
        },
        "LineContexts": []
    },
    "activeDate": "2023-08-20T14:40:05.873+08:00",
    },
}
サンプル 応答体
{
    "value": 
    [
        {
            "ProductId": 68719489871,
            "ProductDiscounts":
            [
                {
                    "OfferId": "ST100009",
                    "OfferName": "Student discount",
                    "PeriodicDiscountTypeValue": 2,
                    "IsDiscountCodeRequired": false,
                    "ValidationPeriodId": null,
                    "AdditionalRestrictions": null,
                    "Description": "Students get 10% off on Jeans and Backpacks",
                    "ValidFromDate": "1900-01-01T00:00:00.0000000Z",
                    "ValidToDate": "2154-12-31T00:00:00.0000000Z",
                    "CouponCodes": [],
                    "DateValidationTypeValue": 1
                },
                {
                    "OfferId": "ST100024",
                    "OfferName": "Weekly ad",
                    "PeriodicDiscountTypeValue": 2,
                    "IsDiscountCodeRequired": false,
                    "ValidationPeriodId": null,
                    "AdditionalRestrictions": null,
                    "Description": "",
                    "ValidFromDate": "1900-01-01T00:00:00.0000000Z",
                    "ValidToDate": "2154-12-31T00:00:00.0000000Z",
                    "CouponCodes": [],
                    "DateValidationTypeValue": 1
                }
            ]   
        },
        {
            "ProductId": 68719489872,
            "ProductDiscounts":
            [
                {
                    "OfferId": "ST100009",
                    "OfferName": "Student discount",
                    "PeriodicDiscountTypeValue": 2,
                    "IsDiscountCodeRequired": false,
                    "ValidationPeriodId": null,
                    "AdditionalRestrictions": null,
                    "Description": "Students get 10% off on Jeans and Backpacks",
                    "ValidFromDate": "1900-01-01T00:00:00.0000000Z",
                    "ValidToDate": "2154-12-31T00:00:00.0000000Z",
                    "CouponCodes": [],
                    "DateValidationTypeValue": 1
                }
            ]   
        }
    ]
}

詳細については、PriceLookupContextを参照してください。

PriceLookupContext

PriceLookupProduct クラスは、GetProductPromotions および GetActivePrices API のプロパティベースの価格決定モデルに使用されます。

次の例では、PriceLookupContext クラスの構造を示します。

{
    HeaderContext: PriceLookupHeaderContext
    {
        CustomerAccountNumber: string
        AffiliationLoyaltyTierLines: IEnumerable<AffiliationLoyaltyTier>
        ChannelId: long?
        SalesOrderProperties: IEnumerable<AttributeValueBase>
    },
    LineContexts: IEnumerable<PriceLookupLineContext>
    [
        {
            ProductRecordId: string
            UnitOfMeasureSymbol: string
            InventorySiteId: string
            InventoryLocationId: string
            DeliveryMode: string
            CatalogId: string
            SalesLineProperties: IEnumerable<AttributeValueBase>
        },
    ]
}
サンプル要求本文
"PriceLookupContext":
{
    "HeaderContext": 
    {
        "CustomerAccount": 2001,
        "AffiliationLoyaltyTierLines": 
        [
            {
                "AffiliationId": 5637144577,
                "LoyaltyTierId": 0, 
                "AffiliationTypeValue": 0,
                "ReasonCodeLines": [],
                "CustomerId": "2001"
            }
        ],
        "SalesOrderProperties":
        [
            {
                "@odata.type": "#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue",
                "Name": "CalcDate",
                "TextValue": "2022-10-10"
            }
        ]
    },
    "LineContexts": []
}

注記

  • PriceLookupHeaderContext パラメーターで指定された顧客グループはありません。顧客アカウント番号によって推測されたためです。
  • ChannelId は PriceLookupHeaderContext パラメーターで指定できます。 指定されていない場合、要求コンテキスト (Store Commerce を使用する場合の現在のチャンネル) の ChannelId が使用されます。