Sdílet prostřednictvím


Rozhraní API pro naceňování v Commerce

Tento článek popisuje různá rozhraní API pro naceňování, která jsou poskytována modulem naceňování Microsoft Dynamics 365 Commerce.

Modul naceňování Dynamics 365 Commerce poskytuje následující rozhraní API Retail Serveru, která mohou využívat externí aplikace pro podporu různých cenových scénářů:

  • GetActivePrices – Toto API získá vypočítanou cenu produktu, včetně jednoduchých slev.
  • CalculateSalesDocument – Toto rozhraní API vypočítává ceny a slevy pro produkty v daném množství, pokud jsou nakupovány společně.
  • GetAvailablePromotions – Toto API získává příslušné slevy na produkty v košíku.
  • AddCoupons – Toto rozhraní API přidává kupóny do košíku.
  • RemoveCoupons – Toto rozhraní API odstraňuje kupóny z košíku.

Další informace o tom, jak používat maloobchodní serverová API v externích aplikacích, najdete v tématu Používání maloobchodních serverových API v externích aplikacích.

GetActivePrices

Rozhraní API GetActivePrices bylo představeno ve verzi Commerce 10.0.4. Toto API získá vypočítanou cenu produktu, včetně jednoduchých slev. Nepočítá víceřádkové slevy a předpokládá, že každý produkt v požadavku API má množství 1. Toto API může také brát jako vstup seznam produktů a hromadně se dotazovat na cenu jednotlivých produktů.

API GetActivePrices podporuje role v Commerce Zaměstnanec, Zákazník, Anonymní a Aplikace.

Hlavní případ použití pro API GetActivePrices je stránka s údaji o produktu (PDP), kde maloobchodníci prezentují nejlepší cenu za produkt, včetně všech účinných slev.

Poznámka

Pokud vidíte méně produktů vrácených voláním GetActivePrices, můžete sledovat Validátor konfigurace merchandisingu kanálu k ověření vašich konfigurací merchandisingu.

Následující tabulka ukazuje vstupní parametry pro API GetActivePrices.

Jméno Podnázev Typ Povinné/volitelné Popis
projectDomain ProjectionDomain Povinný
ChannelId long Povinný
CatalogId long Povinný
productIds IEnumerable<long> Povinný Seznam produktů, pro které se mají vypočítat ceny.
activeDate DateTimeOffset Povinný Datum, kdy se počítají ceny.
customerId řetězec Volitelné Číslo účtu zákazníka.
affiliationLoyaltyTiers IEnumerable<AffiliationLoyaltyTier> Volitelné Věrnostní úrovně.
AffiliationId long Povinný Věrnostní ID.
LoyaltyTierId long Volitelné ID věrnostní úrovně.
includeSimpleDiscountsInContextualPrice bool Volitelné Nastavte tento parametr na true, chcete-li zahrnout jednoduché slevy do kalkulace ceny. Výchozí hodnota je false.
includeVariantPriceRange bool Volitelné Nastavte tento parametr na true, chcete-li získat minimální a maximální ceny mezi všemi variantami hlavního produktu. Výchozí hodnota je false.
includeAttainablePricesAndDiscounts bool Volitelné Nastavte tento parametr na true, chcete-li získat dostupné ceny a slevy. Výchozí hodnota je false.
Ukázkový text požadavku
{
    "projectDomain": 
    {
        "ChannelId": 5637144592,
        "CatalogId": 0
    },
    "productIds": 
    [
        68719489871
    ],
    "activeDate": "2022-06-20T14:40:05.873+08:00",
    "includeSimpleDiscountsInContextualPrice": true,
    "includeVariantPriceRange": false
}
Ukázkový text odpovědi
{
    "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": [],
        }
    ]
}

Použití PriceLookupContext

Třída PriceLookupContext byla představeno ve verzi Commerce 10.0.37. Tato třída obsahuje všechna vyhledávací kritéria pro rozhraní GetActivePrices API a nahrazuje předchozí parametry productIds, activeDate, customerId a affiliationLoyaltyTiers. Třída má také další vlastnosti, které mohou vývojáři použít k filtrování slev během jejich vyhledávání.

Podle potřeb vaší organizace může rozhraní GetActivePrices API přijmout buď předchozí parametry, nebo nové parametry spojené s třídou PriceLookupContext.

Vstupní parametry

Jméno Podnázev Typ Povinné/volitelné Popis
projectDomain ProjectionDomain Požadováno
ChannelId dlouhý Požadováno
CatalogId dlouhý Požadováno
priceLookupContext PriceLookupContext Požadováno
HeaderContext PriceLookupHeaderContext Požadováno Obsahuje CustomerAccountNumber, AffiliationLoyaltyTierLines a SalesOrderProperties
LineContexts IEnumerable<PriceLookupLineContext> Požadováno Obsahuje ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId a SalesLineProperties.
includeSimpleDiscountsInContextualPrice logický Volitelný Nastavte tento parametr na true, chcete-li zahrnout jednoduché slevy do kalkulace ceny. Výchozí hodnota je false.
includeVariantPriceRange bool Volitelné Nastavte tento parametr na true, chcete-li získat minimální a maximální ceny mezi všemi variantami hlavního produktu. Výchozí hodnota je false.
includeAttainablePricesAndDiscounts bool Volitelné Nastavte tento parametr na true, chcete-li získat dostupné ceny a slevy. Výchozí hodnota je false.

Další informace viz PriceLookupContext.

CalculateSalesDocument

Rozhraní API CalculateSalesDocument bylo představeno ve verzi Commerce 10.0.25. Toto rozhraní API počítá ceny a slevy na produkty v daném množství, pokud jsou koupeny na jedné objednávce. Cenová kalkulace za rozhraním API CalculateSalesDocument bere v úvahu jak jednořádkové slevy, tak víceřádkové slevy.

Hlavní případ použití pro API CalculateSalesDocument je kalkulace ceny ve scénářích, kdy celý kontext košíku netrvá (jako jsou prodejní nabídky). Scénáře v místě prodeje (POS) a elektronickém obchodování Commerce mohou také těžit z tohoto případu použití. Nižší celková cena, když se položky košíku počítají jako sada (například u samostatných balíčků, propojených nebo doporučených produktů nebo produktů, které již byly přidány do košíku), může zákazníky přesvědčit, aby přidali produkty do košíku.

Datový model pro požadavek i odpověď API CalculateSalesDocument je Košík. V kontextu tohoto API je však datový model pojmenován SalesDocument. Protože většina vlastností je volitelná a pouze několik z nich ovlivňuje výpočet ceny, jsou v následující tabulce zobrazena pouze pole související s cenou. Nedoporučujeme, aby byla do požadavku API zapojena jakákoli další pole.

Rozsah API CalculateSalesDocument je jen výpočet cen a slev. Daně a poplatky se nezapojují.

Následující tabulka ukazuje vstupní parametry uvnitř pojmenovaného objektu s názvem salesDocument.

Jméno Podnázev Typ Povinné/volitelné Popis
ID řetězec Požadováno Identifikátor prodejního dokumentu.
CartLines IList<CartLine> Volitelné Seznam řádků, pro které se mají vypočítat ceny a slevy.
ID produktu long Vyžadováno v oboru CartLine ID záznamu produktu.
ItemId řetězec Volitelné Identifikátor položky. Pokud je zadána hodnota, musí odpovídat hodnotě parametru ProductId.
InventoryDimensionId řetězec Volitelné Identifikuje identifikátor dimenze. Pokud je zadána hodnota, kombinace hodnot ItemId a InventoryDimensionId se musí shodovat s hodnotou parametru ProductId.
Množství desetinné číslo Vyžadováno v oboru CartLine Množství produktu.
UnitOfMeasureSymbol řetězec Volitelné Jednotka produktu. Pokud není zadána hodnota, rozhraní API ve výchozím nastavení použije prodejní jednotku produktu.
CustomerId řetězec Volitelné Číslo účtu zákazníka.
LoyaltyCardId řetězec Volitelné Identifikátor věrnostní karty. Jakýkoli zákaznický účet spojený s věrnostní kartou musí odpovídat hodnotě parametru CustomerId (pokud je zadán). Pokud věrnostní karta není nalezena nebo její stav je Blokováno, nebude brána v úvahu.
AffiliationLines IList<AffiliationLoyaltyTier> Volitelné Řádky věrnostní úrovně. Pokud jsou uvedeny hodnoty CustomerId nebo LoyaltyCardId, odpovídající řádky věrnostní úrovně jsou sloučeny s řádky, které jsou poskytovány v hodnotě AffiliationLines.
AffiliationId long Vyžadováno v oboru AffiliationLoyaltyTier ID záznamu věrnostního programu.
LoyaltyTierId long Vyžadováno v oboru AffiliationLoyaltyTier ID záznamu věrnostní úrovně.
AffiliationTypeValue int Vyžadováno v oboru AffiliationLoyaltyTier Hodnota, která udává, zda je řádek věrnostního programu typu Obecný (0), nebo Věrnostní (1). Pokud je tento parametr nastaven na 0, rozhraní API přebírá hodnotu AffiliationId jako identifikátor a ignoruje hodnotu LoyaltyTierId. Pokud je tento parametr nastaven na 1, rozhraní API přebírá hodnotu LoyaltyTierId jako identifikátor a ignoruje hodnotu AffiliationId.
ReasonCodeLines Collection<ReasonCodeLine> Vyžadováno v oboru AffiliationLoyaltyTier Řádky kódu důvodu. Tento parametr nemá žádný vliv na výpočet ceny, ale je vyžadován jako součást objektu AffiliationLoyaltyTier.
CustomerId řetězec Vyžadováno v oboru AffiliationLoyaltyTier Číslo účtu zákazníka.
Kupóny IList<Coupon> Volitelné Kupony, které nelze použít (neaktivní, s vypršenou platností nebo nenalezené), nejsou při výpočtu ceny zohledněny.
Kód řetězec Vyžadováno v oboru Coupon Kód kupónu.
CodeId řetězec Volitelné Identifikátor kódu kupónu. Pokud je zadána hodnota, musí odpovídat hodnotě parametru Code.
DiscountOfferId řetězec Volitelné Identifikátor slevy. Pokud je zadána hodnota, musí odpovídat hodnotě parametru Code.
Ukázkový text požadavku
{
    "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"
            }
        ]
    }
}

Jako text odpovědi se vrátí celý objekt košíku. Chcete-li zkontrolovat ceny a slevy, měli byste se zaměřit na pole v následující tabulce.

Jméno Podnázev Typ Popis
NetPrice desetinné číslo Čistá cena celého prodejního dokladu před uplatněním jakýchkoli slev.
DiscountAmount desetinné číslo Celková částka slevy v celém prodejním dokladu.
TotalAmount desetinné číslo Celková částka celého prodejního dokladu.
CartLines IList<CartLine> Vypočítané řádky, které obsahují údaje o ceně a slevě.
Cena desetinné číslo Jednotková cena produktu.
NetPrice desetinné číslo Čistá cena řádku před uplatněním jakýchkoli slev (= cena × množství).
DiscountAmount desetinné číslo Částka slevy.
TotalAmount desetinné číslo Konečný výsledek celkové ceny řádku.
PriceLines IList<PriceLine> Údaje o ceně včetně zdroje ceny (základní cena, úprava ceny nebo obchodní dohoda) a částky.
DiscountLines IList<DiscountLine> Údaje o slevě.

GetAvailablePromotions

Existují dvě podobná rozhraní API GetAvailablePromotions:

  • Carts/GetAvailablePromotions přijímá jako parametr seznam identifikátorů řádků košíku.
  • GetAvailablePromotions přijímá jako parametr objekt DiscountsSearchCriteria.

Carts/GetAvailablePromotions

Pokud má košík několik řádků, API Carts/GetAvailablePromotions vrátí všechny příslušné slevy pro řádky košíku.

Hlavní případ použití pro API Carts GetAvailablePromotions je stránka košíku, kde prodejci prezentují uplatněné slevy nebo dostupné kupóny pro aktuální košík.

Následující tabulka ukazuje vstupní parametry pro API Carts/GetAvailablePromotions.

Jméno Typ Povinné/volitelné popis
klíč řetězec Povinný ID košíku.
cartLineIds IEnumerable<string> Volitelné Nastavením tohoto parametru vrátíte slevy pouze na vybrané řady košíku.
Ukázkový text odpovědi
{
    "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

API GetAvailablePromotions – API vrací všechny platné slevy pro daný kanál.

Hlavní případ použití pro API GetAvailablePromotions je stránka „Všechny slevy“, kde prodejci prezentují všechny slevy pro aktuální kanál.

Následující tabulka ukazuje vstupní parametry pro API GetAvailablePromotions.

Jméno Podnázev Typ Povinné/volitelné Popis
searchCriteria DiscountsSearchCriteria Požadováno
ChannelId long Požadováno
Klíčové slovo řetězec Volitelné
IsDiscountCodeRequired bool Volitelné Označuje, zda je kód kupónu vyžadován, nebo ne. Pokud je předáno null, budou načteny všechny slevy bez ohledu na požadavky na kód kupónu.
StartDate DateTimeOffset Požadováno Počáteční datum (včetně).
EndDate DateTimeOffset Požadováno Koncové datum (včetně).
Ukázkový text požadavku
{
    "searchCriteria": {
        "ChannelId": 5637144592,
        "StartDate": "1900-01-01T00:00:00Z",
        "EndDate": "2154-12-31T00:00:00Z"
    }
}
Ukázkový text odpovědi
{
    "@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

Rozhraní API AddCoupons podporuje přidání seznamu kupónů do košíku. Po přidání kupónů vrátí objekt košíku.

Následující tabulka ukazuje vstupní parametry pro API AddCoupons.

Jméno Typ Povinné/volitelné popis
klíč řetězec Povinný ID košíku.
couponCodes IEnumerable<string> Povinný Kódy kuponů pro přidání do košíku.
isLegacyDiscountCode bool Volitelné Nastavte tento parametr na true k označení, že kupon je starší slevový kód. Výchozí hodnota je false.

RemoveCoupons

Rozhraní API RemoveCoupons podporuje odstranění seznamu kupónů z košíku. Po odebrání kupónů vrátí objekt košíku.

Následující tabulka ukazuje vstupní parametry pro API RemoveCoupons.

Jméno Typ Povinné/volitelné popis
klíč řetězec Povinný ID košíku.
couponCodes IEnumerable<string> Požadováno Kódy kuponů pro odebrání z košíku.

GetProductPromotions

Rozhraní GetProductPromotions API bylo představeno ve verzi Commerce 10.0.38. Toto rozhraní API načte seznam akčních produktů s danými slevami a může také použít seznam ID slev produktů a cenový kontext jako vstup a dotaz na přidružené akční produkty. Hlavním případem použití rozhraní GetProductPromotions API je na stránkách se seznamem produktů, kde prodejci prezentují produkty se slevami. Toto rozhraní API podporuje cenový model založený na vlastnostech i starší cenový model.

Následující tabulka ukazuje vstupní parametry pro rozhraní GetProductPromotions API.

Jméno Podnázev Typ Povinné/volitelné Popis
productDiscountIds IEnumerable<string> Požadováno Seznam ID slev produktů pro vyhledání akčních produktů.
priceLookupContext PriceLookupContext Požadováno Kontext pro stanovení cen.
activeDate DateTimeOffset Volitelný Datum, kdy je zvážena propagační akce.

Omezení a limity:

  • Jako vstup lze použít maximálně pět slevových ID produktů.
  • Podporovány jsou pouze jednoduché slevy.
Ukázkový text požadavku
{
    {
    "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",
    },
}
Ukázkový text odpovědi
{
    "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
                }
            ]   
        }
    ]
}

Další informace viz PriceLookupContext.

PriceLookupContext

Třída PriceLookupContext se používá pro cenový model založený na vlastnostech v rozhraních GetProductPromotions a GetActivePrices API.

Struktura třídy PriceLookupContext je znázorněna v následujícím příkladu.

{
    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>
        },
    ]
}
Ukázkový text požadavku
"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": []
}

Poznámka

  • V parametru PriceLookupHeaderContext není uvedena skupina zákazníků, protože byla odvozena z čísla účtu zákazníka.
  • ChannelId lze zadat v parametru PriceLookupHeaderContext. Pokud není zadáno, použije se ChannelId z kontextu požadavku (aktuální kanál při použití Store Commerce).