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 rozhraní 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 zakoupeny společně.
- GetAvailablePromotions – Toto API získává příslušné slevy na produkty v košíku.
- AddCoupons – Toto API přidává kupóny do košíku.
- Odebrat kupóny – Toto 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ázka těla odpověď
{
"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ů řádku košíku.
- GetAvailablePromotions přijímá DiscountsSearchCriteria objekt jako parametr.
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ázka těla odpověď
{
"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ázka těla odpověď
{
"@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ázka těla odpověď
{
"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).