API:er för Handel-prissättning
Denna artikel beskriver olika prissättnings-API:er som anges i Microsoft Dynamics 365 Commerce prissättningsmotor.
Prissättningsmotorn Dynamics 365 Commerce innehåller följande Retail Server-API:er som kan förbrukas av externa program som ett stöd för olika prissättningsscenarier:
- GetActivePrices – Detta API får en produkts beräknade pris, inklusive enkla rabatter.
- CalculateSalesDocument – Detta API beräknar priser och rabatter för produkter vid givna kvantiteter om de köps tillsammans.
- GetAvailablePromotions – Detta API får tillämpliga rabatter för produkter i varukorgen.
- Tilläggkuponger – Detta API lägger till kuponger i en kundvagn.
- Ta bort kuponger – Detta API tar bort kuponger från en kundvagn.
Mer information om hur du använder Retail Server-API:er i externa program finns i Använda Retail Server API:er i externa program.
GetActivePrices
API:et GetActivePrices finns i Commerce version 10.0.4. Detta API får en produkts beräknade pris, inklusive enkla rabatter. Det beräknas inte av flerradsrabatter och det förutsätter att varje produkt i en API-begäran har kvantiteten 1. Detta API kan också ta en lista över produkter som indata och fråga priset på enskilda produkter på en gång.
API GetActivePrices har stöd för Commerce-rollerna Medarbetare, Kund, Anonym och Program.
Det huvudsakliga användningsfallet för GetActivePrices-API :n är sidan för produktinformation (PDP), där återförsäljare vill visa det bästa priset för en produkt, bland annat gällande rabatter.
Kommentar
Om du ser färre produkter returnerade för ett anrop GetActivePrices
, kan du följa Validerare för konfiguration av kanalprodukter för att validera dina produktkonfigurationer.
Följande tabell visar indataparametrarna för API GetActivePrices.
Namn | Undernamn | Typ | Obligatoriskt/valfritt | Beskrivning |
---|---|---|---|---|
projectDomain | ProjectionDomain | Obligatoriskt | ||
ChannelId | lång | Obligatoriskt | ||
CatalogId | lång | Obligatoriskt | ||
productIds | IEnumerable<long> | Obligatoriskt | Listan med produkter som priserna ska beräknas för. | |
activeDate | DateTimeOffset | Obligatoriskt | Det datum då priserna beräknas. | |
customerId | sträng | Valfritt | Kundkontonummer. | |
affiliationLoyaltyTiers | IEnumerable<AffiliationLoyaltyTier> | Valfritt | Anknytningsnivå och bonusnivåer. | |
AffiliationId | lång | Obligatoriskt | Anknytnings-ID. | |
LoyaltyTierId | lång | Valfritt | ID för lojalitetsnivån. | |
includeSimpleDiscountsInContextualPrice | bool | Valfritt | Ange att den här parametern ska vara sann om du vill inkludera enkla rabatter i prissättningsberäkningen. Standardvärdet är falskt. | |
includeVariantPriceRange | bool | Valfritt | Sätt denna parameter till sant för att få lägsta och högsta pris bland alla varianter av en huvudprodukt. Standardvärdet är falskt. | |
includeAttainablePricesAndDiscounts | bool | Valfritt | Ange denna parameter till sant för att få möjliga priser och rabatter. Standardvärdet är falskt. |
Exempel på begärandetext
{
"projectDomain":
{
"ChannelId": 5637144592,
"CatalogId": 0
},
"productIds":
[
68719489871
],
"activeDate": "2022-06-20T14:40:05.873+08:00",
"includeSimpleDiscountsInContextualPrice": true,
"includeVariantPriceRange": false
}
Exempel på svar brödtext
{
"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": [],
}
]
}
Använd PriceLookupContext
Klassen PriceLookupContext finns i Commerce version 10.0.37. Klassen innehåller alla sökkriterier för GetActivePrices API och ersätter föregående parametrar för productIds, activeDate, customerId och affiliationLoyaltyTiers. Klassen har också ytterligare egenskaper som utvecklare kan använda för att filtrera rabatter vid rabattsökning.
Enligt din organisations behov kan API:t för GetActivePrices acceptera de föregående parametrarna eller nya parametrar som är associerade med PriceLookupContext-klassen.
Indataparametrar
Namn | Undernamn | Typ | Obligatoriskt/valfritt | Beskrivning |
---|---|---|---|---|
projectDomain | ProjectionDomain | Obligatoriskt | ||
ChannelId | lång | Obligatoriskt | ||
CatalogId | lång | Obligatoriskt | ||
priceLookupContext | PriceLookupContext | Obligatoriskt | ||
HeaderContext | PriceLookupHeaderContext | Obligatoriskt | Innehåller CustomerAccountNumber, AffiliationLoyaltyTierLines och SalesOrderProperties | |
LineContexts | IEnumerable<PriceLookupLineContext> | Obligatoriskt | Innehåller ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId och SalesLineProperties. | |
includeSimpleDiscountsInContextualPrice | bool | Valfri | Ange att den här parametern ska vara sann om du vill inkludera enkla rabatter i prissättningsberäkningen. Standardvärdet är falskt. | |
includeVariantPriceRange | bool | Valfritt | Sätt denna parameter till sant för att få lägsta och högsta pris bland alla varianter av en huvudprodukt. Standardvärdet är falskt. | |
includeAttainablePricesAndDiscounts | bool | Valfritt | Ange denna parameter till sant för att få möjliga priser och rabatter. Standardvärdet är falskt. |
Mer information finns i PriceLookupContext.
CalculateSalesDocument
API:et CalculateSalesDocument finns i Commerce version 10.0.25. Detta API beräknar priser och rabatter för produkter vid givna kvantiteter om de köps tillsammans i en order. Prisberäkningen bakom API CalculateSalesDocument tar hänsyn till både enradsrabatter och flerradsrabatter.
Huvudanvändningen för CalculateSalesDocument API är prisberäkningen i scenarier där den fullständiga vagnen inte finns kvar (till exempel försäljningsofferter). Scenarier i kassan (POS) och Commerce e-handel kan också dra fördel av detta användningsfall. Ett lägre totalpris när artiklar i vagnen beräknas som en uppsättning (till exempel för diskreta buntar, länkade eller rekommenderade produkter eller produkter som redan har lagts till i kundvagnen) kan eventuellt hjälpa kunder att lägga till produkter i kundvagnen.
Datamodellen för både begäran och svaret från CalculateSalesDocument API är kundvagn. Inom detta API får dock datamodellen namnet SalesDocument. Eftersom de flesta egenskaper är valfria, och bara några av dem påverkar prissättningen, visas endast prissättningsrelaterade fält i följande tabell. Vi rekommenderar inte att andra fält används i API-begäran.
Omfattningen av API CalculateSalesDocument är bara beräkningen av priser och rabatter. Skatter och avgifter är inte inblandade.
I följande tabell visas indataparametrarna i objektet som kallas salesDocument.
Namn | Undernamn | Typ | Obligatoriskt/valfritt | Beskrivning |
---|---|---|---|---|
Id | sträng | Obligatoriskt | Identifierar för försäljningsdokument. | |
CartLines | IList<CartLine> | Valfritt | Listan med rader som priser och rabatter ska beräknas för. | |
Produkt-ID | lång | Nödvändig inom CartLine | Produktpost-ID. | |
ItemId | sträng | Valfritt | Artikelidentifierare. Om ett värde anges måste det matcha värdet för parametern ProductId. | |
InventoryDimensionId | sträng | Valfritt | Identifierar lagerdimension. Om ett värde anges måste kombinationen av ItemId- och InventoryDimensionId-värden matcha värdet för parametern ProductId . | |
Antal | decimal | Nödvändig inom CartLine | Kvantiteten för prodkten | |
UnitOfMeasureSymbol | sträng | Valfritt | Produktens enhet. Om ett värde inte anges använder API:t som standard produktens försäljningsenhet. | |
CustomerId | sträng | Valfritt | Kundkontonummer. | |
LoyaltyCardId | sträng | Valfritt | Identifierare för bonuskortet. Alla kundkonto som är associerade med förmånskortet måste matcha värdet för CustomerId-parametern (om detta finns). Förmånskortet beaktas inte om det inte hittas eller om dess status är Spärrad. | |
AffiliationLines | IList<AffiliationLoyaltyTier> | Valfritt | Anknytning bonusnivårader. Om värdena CustomerId och/eller LoyaltyCardId tillhandahålls, kommer motsvarande anknytningslojalitetsnivåer att slås samman med rader som tillhandahålls i värdet AffiliationLines. | |
AffiliationId | lång | Nödvändig inom AffiliationLoyaltyTier | Post-ID:t för anknytning. | |
LoyaltyTierId | lång | Nödvändig inom AffiliationLoyaltyTier | Post-ID för lojalitetsnivån. | |
AffiliationTypeValue | int | Nödvändig inom AffiliationLoyaltyTier | Ett värde som anger om anknytningsraden är av typen allmän (0) eller typen bonus (1). Om denna parameter är inställd på 0, tar API:t AffiliationId-värdet som identifierare och ignorerar LoyaltyTierId-värdet. Om denna parameter är inställd på 1, tar API:t LoyaltyTierId-värdet som identifierare och ignorerar AffiliationId-värdet. | |
ReasonCodeLines | Collection<ReasonCodeLine> | Nödvändig inom AffiliationLoyaltyTier | Orsakskodrader. Den här parametern påverkar inte prisberäkningen, utan krävs som en del av objektet AffiliationLoyaltyTier. | |
CustomerId | sträng | Nödvändig inom AffiliationLoyaltyTier | Kundkontonummer. | |
Kuponger | IList<Coupon> | Valfritt | Kuponger som inte kan användas (inaktiva, utgångna eller inte) tas inte med i prissättningsberäkningen. | |
Kod | sträng | Nödvändig inom kupong | Kupongkod. | |
CodeId | sträng | Valfritt | Identifierare för kupongkod. Om ett värde anges måste det matcha värdet för parametern Code. | |
DiscountOfferId | sträng | Valfritt | Rabattidentifieraren. Om ett värde anges måste det matcha värdet för parametern Code. |
Exempel på begärandetext
{
"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"
}
]
}
}
Hela vagnobjektet returneras som svarstext. Om du vill kontrollera priser och rabatter bör du fokusera på fälten i följande tabell.
Namn | Undernamn | Typ | Beskrivning |
---|---|---|---|
NetPrice | decimal | Nettopriset för hela försäljningsdokumentet innan rabatter används. | |
DiscountAmount | decimal | Det totala rabattbeloppet för hela försäljningsdokumentet. | |
TotalAmount | decimal | Det totala beloppet för hela försäljningsdokumentet. | |
CartLines | IList<CartLine> | Beräknade rader som omfattar pris- och rabattdetaljer. | |
Pris | decimal | Produktens enhetspris. | |
NetPrice | decimal | Radens nettopris före rabatter tillämpas (= Pris × Antal). | |
DiscountAmount | decimal | Rabattbeloppet. | |
TotalAmount | decimal | Det slutliga totala prisresultatet för raden. | |
PriceLines | IList<PriceLine> | Prisdetaljer, inklusive källan till priset (grundpris, prisjustering eller handelsavtal) och beloppet. | |
DiscountLines | IList<DiscountLine> | Rabattinformation. |
GetAvailablePromotions
Det finns två liknande API:er för GetAvailablePromotions:
- Carts/GetAvailablePromotions accepterar en lista med kundvagnsradidentifierare som parameter.
- GetAvailablePromotions accepterar ett DiscountsSearchCriteria-objekt som parameter.
Carts/GetAvailablePromotions
Med en vagn som har flera vagnsrader returnerar Carts/GetAvailablePromotions API alla tillämpliga rabatter för vagnsraderna.
Huvudanvändningen för Carts/GetAvailablePromotions API är kundvagnsidan, där återförsäljare visar använda rabatter eller tillgängliga kuponger för den aktuella vagnen.
Följande tabell anger indataparametrarna för API Carts/GetAvailablePromotions.
Namn | Typ | Obligatoriskt/valfritt | beskrivning |
---|---|---|---|
nyckel | sträng | Obligatoriskt | Kundvagnens ID. |
cartLineIds | IEnumerable<string> | Valfritt | Ställ in den här parametern om du bara vill returnera rabatter för valda vagnrader. |
Exempel på svar brödtext
{
"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:et GetAvailablePromotions API returnerar alla tillämpliga rabatter för den givna kanalen.
Huvudanvändningen för GetAvailablePromotions API är sidan "Alla rabatter" där återförsäljare visar alla rabatter för den aktuella kanalen.
Följande tabell anger indataparametrarna för API GetAvailablePromotions.
Namn | Undernamn | Typ | Obligatoriskt/valfritt | Beskrivning |
---|---|---|---|---|
searchCriteria | DiscountsSearchCriteria | Obligatoriskt | ||
ChannelId | lång | Obligatoriskt | ||
Nyckelord | sträng | Valfritt | ||
IsDiscountCodeRequired | bool | Valfritt | Anger om kupongkoden krävs eller inte. Om null har passerats hämtas alla rabatter, oavsett kraven på kupongkod. | |
StartDate | DateTimeOffset | Obligatoriskt | Startdatumet (inklusive). | |
EndDate | DateTimeOffset | Obligatoriskt | Avslutande datum (inklusive). |
Exempel på begärandetext
{
"searchCriteria": {
"ChannelId": 5637144592,
"StartDate": "1900-01-01T00:00:00Z",
"EndDate": "2154-12-31T00:00:00Z"
}
}
Exempel på svar brödtext
{
"@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
API AddCoupons API stöder att du lägger till en lista över kuponger i en kundvagn. Det returnerar kundvagnobjektet efter att kupongerna lagts till.
Följande tabell visar indataparametrarna för API AddCoupons.
Namn | Typ | Obligatorisk/valfri | beskrivning |
---|---|---|---|
nyckel | sträng | Obligatoriskt | Kundvagnens ID. |
couponCodes | IEnumerable<string> | Obligatoriskt | De kupongkoder som du vill lägga till i kundvagnen. |
isLegacyDiscountCode | bool | Valfritt | Sätt denna parameter till sant för att indikera att kupongen är en äldre rabattkod. Standardvärdet är falskt. |
RemoveCoupons
API RemoveCoupons stöder borttagning av en lista med kuponger från en kundvagn. Det returnerar kundvagnobjektet efter att kupongerna tas bort.
Följande tabell visar indataparametrarna för API RemoveCoupons.
Namn | Typ | Obligatorisk/valfri | beskrivning |
---|---|---|---|
nyckel | sträng | Obligatoriskt | Kundvagnens ID. |
couponCodes | IEnumerable<string> | Obligatoriskt | De kupongkoder som du vill ta bort från kundvagnen. |
GetProductPromotions
API:et GetProductPromotions finns i Commerce version 10.0.38. Detta API hämtar en lista över kampanjprodukter med angivna produktrabatter och kan också ta en lista över ID:n för produktrabatter och prissammanhang som indata och söka efter de associerade kampanjprodukterna. Den vanligaste frågan för API:t GetProductPromotions finns på produktlistesidor, där återförsäljare använder produkter med rabatter. Detta API stöder både egenskapsbasprismodellen och den äldre prissättningsmodellen.
Följande tabell visar indataparametrarna för API GetProductPromotions.
Namn | Undernamn | Typ | Obligatoriskt/valfritt | Beskrivning |
---|---|---|---|---|
productDiscountIds | IEnumerable<string> | Obligatoriskt | Listan med produktrabatt-ID:n som du vill söka efter kampanjprodukter för. | |
priceLookupContext | PriceLookupContext | Obligatoriskt | Sammanhanget för prissättning. | |
activeDate | DateTimeOffset | Valfri | Datumet då kampanjen övervägs. |
Restriktioner och begränsningar:
- Kan endast ta max fem produktrabatt-ID:n som indata.
- Det finns bara stöd för enkla rabatter.
Exempel på begärandetext
{
{
"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",
},
}
Exempel på svar brödtext
{
"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
}
]
}
]
}
Mer information finns i PriceLookupContext.
PriceLookupContext
Klassen PriceLookupContext används för den egenskapsbaserade prissättningsmodellen i API:erna GetProductPromotions och GetActivePrices.
Strukturen för PriceLookupContext-klassen visas i följande exempel.
{
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>
},
]
}
Exempel på begärandetext
"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": []
}
Obs
- Det finns ingen kundgrupp specificerad i parametern PriceLookupHeaderContext eftersom den kan härledas från kundkontonumret.
- ChannelId kan anges i parametern PriceLookupHeaderContext. Om den inte anges används ChannelId från begäran (aktuell kanal vid användning av Store Commerce).