API's voor commerce-prijzen
In dit artikel worden verschillende API's voor prijzen beschreven die worden geleverd door de prijzen-engine van Microsoft Dynamics 365 Commerce.
De prijsengine van Dynamics 365 Commerce biedt de volgende Retail Server-API's die kunnen worden gebruikt door externe toepassingen om verschillende prijsscenario's te ondersteunen:
- GetActivePrices : deze API krijgt de berekende prijs van een product, inclusief eenvoudige kortingen.
- CalculateSalesdocument : deze API berekent prijzen en kortingen voor producten bij bepaalde hoeveelheden als ze samen worden gekocht.
- GetAvailablePromotions : deze API krijgt toepasselijke kortingen voor producten in de winkelwagen.
- AddCoupons : deze API voegt coupons toe aan een winkelwagen.
- RemoveCoupons : deze API verwijdert coupons uit een winkelwagen.
Raadpleeg Retail Server-API's verbruiken in externe toepassingen voor meer informatie over het verbruik van Retail Server-API's in externe toepassingen.
GetActivePrices
De API GetActivePrices is geïntroduceerd in de release van Commerce versie 10.0.4. Deze API haalt de berekende prijs van een product op, inclusief eenvoudige kortingen. De API berekent geen meerregelkortingen en er wordt aangenomen dat elk product in een API-aanvraag een hoeveelheid van 1 heeft. Deze API kan ook een lijst met producten als invoer gebruiken en de prijs van afzonderlijke producten in bulk opvragen.
De API GetActivePrices ondersteunt de Commerce-rollen Werknemer, Klant, Anoniem en Toepassing.
De belangrijkste use case voor de API GetActivePrices is de pagina met productgegevens (PDP), waar detailhandelaren de beste prijs voor een product laten zien, inclusief eventuele geldende kortingen.
Notitie
Als u ziet dat er minder producten worden geretourneerd voor eenGetActivePrices
-aanroep, kunt u Validatiefunctie voor configuratie van merchandising voor kanaal volgen om uw merchandisingconfiguraties te valideren.
De volgende tabel toont de invoerparameters voor de API GetActivePrices.
Naam | Subnaam | Type | Vereist/optioneel | Omschrijving |
---|---|---|---|---|
projectDomain | ProjectionDomain | Vereist | ||
ChannelId | long | Vereist | ||
CatalogId | long | Vereist | ||
productIds | IEnumerable<long> | Vereist | De lijst met producten om prijzen voor te berekenen. | |
activeDate | DateTimeOffset | Vereist | De datum waarop de prijzen worden berekend. | |
customerId | tekenreeks | Optioneel | Het rekeningnummer van de klant. | |
affiliationLoyaltyTiers | IEnumerable<AffiliationLoyaltyTier> | Optioneel | De aansluitings- en loyaliteitsniveaus. | |
AffiliationId | long | Vereist | ID van de aansluiting. | |
LoyaltyTierId | long | Optioneel | De ID van het loyaliteitsniveau. | |
includeSimpleDiscountsInContextualPrice | bool | Optioneel | Stel deze parameter in op waar om eenvoudige kortingen in de prijsberekening op te nemen. De standaardwaarde is onwaar. | |
includeVariantPriceRange | bool | Optioneel | Stel deze parameter in op waar om de minimum- en maximumprijzen op te halen van alle varianten voor een hoofdproduct. De standaardwaarde is onwaar. | |
includeAttainablePricesAndDiscounts | bool | Optioneel | Stel deze parameter in op waar om haalbare prijzen en kortingen op te halen. De standaardwaarde is onwaar. |
Instantie voor voorbeeldaanvraag
{
"projectDomain":
{
"ChannelId": 5637144592,
"CatalogId": 0
},
"productIds":
[
68719489871
],
"activeDate": "2022-06-20T14:40:05.873+08:00",
"includeSimpleDiscountsInContextualPrice": true,
"includeVariantPriceRange": false
}
Body respons voorbeeld
{
"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 gebruiken
De klasse PriceLookupContext is geïntroduceerd in de release van Commerce versie 10.0.37. De klasse bevat alle opzoekcriteria voor de API GetActivePrices en vervangt de vorige parameters van productIds, activeDate, customerId en affiliationLoyaltyTiers. De klasse heeft ook extra eigenschappen die ontwikkelaars kunnen gebruiken om kortingen te filteren tijdens het opschonen van kortingen.
De API GetActivePrices kan conform de behoeften van uw organisatie de vorige parameters accepteren of nieuwe parameters die aan de klasse PriceLookupContext zijn gekoppeld.
Invoerparameters
Naam | Subnaam | Type | Vereist/optioneel | Omschrijving |
---|---|---|---|---|
projectDomain | ProjectionDomain | Vereist | ||
ChannelId | long | Vereist | ||
CatalogId | long | Vereist | ||
priceLookupContext | PriceLookupContext | Vereist | ||
HeaderContext | PriceLookupHeaderContext | Vereist | Bevat CustomerAccountNumber, AffiliationLoyaltyTierLines en SalesOrderProperties | |
LineContexts | IEnumerable<PriceLookupLineContext> | Vereist | Bevat ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId en SalesLineProperties. | |
includeSimpleDiscountsInContextualPrice | bool | Optioneel | Stel deze parameter in op waar om eenvoudige kortingen in de prijsberekening op te nemen. De standaardwaarde is onwaar. | |
includeVariantPriceRange | bool | Optioneel | Stel deze parameter in op waar om de minimum- en maximumprijzen op te halen van alle varianten voor een hoofdproduct. De standaardwaarde is onwaar. | |
includeAttainablePricesAndDiscounts | bool | Optioneel | Stel deze parameter in op waar om haalbare prijzen en kortingen op te halen. De standaardwaarde is onwaar. |
Zie PriceLookupContext voor meer informatie.
CalculateSalesDocument
De API CalculateSalesDocument is geïntroduceerd in de release van Commerce versie 10.0.25. Deze API berekent prijzen en kortingen voor producten bij bepaalde hoeveelheden als ze in een order samen worden gekocht. Bij de prijsberekening achter de API CalculateSalesDocument worden zowel kortingen voor één regel als kortingen voor meerdere regels meegenomen.
De belangrijkste use case voor de API CalculateSalesDocument is de prijsberekening in scenario's waarin volledige winkelwagencontext niet voortduurt (zoals verkoopoffertes). Scenario's in POS- en e-commerce van Commerce kunnen ook profiteren van deze use case. Een lagere totaalprijs wanneer winkelwagenartikelen worden berekend als een set (bijvoorbeeld voor discrete bundels, gekoppelde of aanbevolen producten of producten die al aan de winkelwagen zijn toegevoegd) kunnen klanten ertoe brengen producten aan de winkelwagen toe te voegen.
Het gegevensmodel voor zowel de aanvraag als het antwoord van de API CalculateSalesDocument is Winkelwagen. In de context van deze API heeft het gegevensmodel echter de naam SalesDocument. Aangezien de meeste eigenschappen optioneel zijn en slechts een paar van deze van invloed zijn op de prijsberekening, worden in de volgende tabel alleen prijsgerelateerde velden weergegeven. Het wordt niet aanbevolen om andere velden te gebruiken voor de API-aanvraag.
Het bereik van de API CalculateSalesDocument is alleen de berekening van prijzen en kortingen. Belastingen en toeslagen worden niet meegenomen.
De volgende tabel toont de invoerparameters in het object met de naam salesDocument.
Naam | Subnaam | Type | Vereist/optioneel | Omschrijving |
---|---|---|---|---|
Id | tekenreeks | Vereist | De ID van het verkoopdocument. | |
CartLines | IList<CartLine> | Optioneel | De lijst met regels om prijzen en kortingen voor te berekenen. | |
Product-id | long | Vereist in het bereik van CartLine | De record-ID van het product. | |
ItemId | tekenreeks | Optioneel | De artikel-ID. Als er een waarde is opgegeven, moet deze overeenkomen met de waarde van de parameter ProductId. | |
InventoryDimensionId | tekenreeks | Optioneel | De ID van de voorraaddimensie. Als er een waarde is opgegeven, moet de combinatie van de waarden van ItemId en InventoryDimensionId overeenkomen met de waarde van de parameter ProductId. | |
Quantity | decimal | Vereist in het bereik van CartLine | De hoeveelheid van het product. | |
UnitOfMeasureSymbol | tekenreeks | Optioneel | De eenheid van het product. Als er geen waarde is opgegeven, gebruikt de API standaard de verkoopeenheid van het product. | |
CustomerId | tekenreeks | Optioneel | Het rekeningnummer van de klant. | |
LoyaltyCardId | tekenreeks | Optioneel | De ID van de loyaliteitskaart. Een klantaccount dat aan de loyaliteitskaart is gekoppeld, moet overeenkomen met de waarde van de parameter CustomerId (als deze is opgegeven). Er wordt geen rekening gehouden met de loyaliteitskaart als deze niet wordt gevonden of als de status Geblokkeerd is. | |
AffiliationLines | IList<AffiliationLoyaltyTier> | Optioneel | Regels loyaliteitsniveau aansluiting. Als de waarde(n) voor CustomerId en/of LoyaltyCardId is/zijn opgegeven, worden de bijbehorende regels van het loyaliteitsniveau samengevoegd met de regels die zijn opgegeven in de waarde AffiliationLines. | |
AffiliationId | long | Vereist in het bereik van AffiliationLoyaltyTier | De record-ID van de aansluiting. | |
LoyaltyTierId | long | Vereist in het bereik van AffiliationLoyaltyTier | De record-ID van het loyaliteitsniveau. | |
AffiliationTypeValue | int | Vereist in het bereik van AffiliationLoyaltyTier | Een waarde die aangeeft of de aansluitingsregel van het type Algemeen (0) of het type Loyaliteit (1) is. Als de parameter is ingesteld op 0, gebruikt de API de waarde van AffiliationId als de id en wordt de waarde voor LoyaltyTierId genegeerd. Als de parameter is ingesteld op 1, gebruikt de API de waarde van LoyaltyTierId als de id en wordt de waarde voor AffiliationId genegeerd. | |
ReasonCodeLines | Collection<ReasonCodeLine> | Vereist in het bereik van AffiliationLoyaltyTier | Redencoderegels. Deze parameter heeft geen effect op de prijsberekening, maar is vereist als onderdeel van het object AffiliationLoyaltyTier. | |
CustomerId | tekenreeks | Vereist in het bereik van AffiliationLoyaltyTier | Het rekeningnummer van de klant. | |
Coupons | IList<Coupon> | Optioneel | Coupons die niet van toepassing zijn (inactief, vervallen of niet zijn gevonden) worden niet meegenomen in de prijsberekening. | |
Code | tekenreeks | Vereist in het bereik van Coupon | De couponcode. | |
CodeId | tekenreeks | Optioneel | De couponcode-ID. Als er een waarde is opgegeven, moet deze overeenkomen met de waarde van de parameter Code. | |
DiscountOfferId | tekenreeks | Optioneel | De korting-ID. Als er een waarde is opgegeven, moet deze overeenkomen met de waarde van de parameter Code. |
Instantie voor voorbeeldaanvraag
{
"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"
}
]
}
}
Het gehele winkelwagenobject wordt als tekst van de respons geretourneerd. Als u prijzen en kortingen wilt controleren, moet u zich richten op de velden in de volgende tabel.
Naam | Subnaam | Type | Omschrijving |
---|---|---|---|
NetPrice | decimal | De nettoprijs van het hele verkoopdocument voordat er kortingen zijn toegepast. | |
DiscountAmount | decimal | Het totaalbedrag van de kortingen van het hele verkoopdocument. | |
TotalAmount | decimal | Het totaalbedrag van het hele verkoopdocument. | |
CartLines | IList<CartLine> | Berekende regels die gegevens over prijs en korting bevatten. | |
Prijs | decimal | De eenheidsprijs van het product. | |
NetPrice | decimal | De nettoprijs van de regel voordat er kortingen zijn toegepast (= Prijs × Hoeveelheid). | |
DiscountAmount | decimal | Het kortingsbedrag. | |
TotalAmount | decimal | Het uiteindelijke totale prijsresultaat van de regel. | |
PriceLines | IList<PriceLine> | Prijsgegevens, inclusief de bron van de prijs (basisprijs, prijscorrectie of handelsovereenkomst) en het bedrag. | |
DiscountLines | IList<DiscountLine> | Kortingsgegevens. |
GetAvailablePromotions
Er zijn twee vergelijkbare GetAvailablePromotions API's:
- Winkelwagen/GetAvailablePromotions accepteert een lijst met winkelwagenregel-ID's als parameter.
- Met GetAvailablePromotions wordt een object DiscountsSearchCriteria als parameter geaccepteerd.
Carts/GetAvailablePromotions
Met als gegeven een winkelwagen met meerdere winkelwagenregels, retourneert de API Carts/GetAvailablePromotions alle van toepassing zijnde kortingen voor de winkelwagenregels.
De belangrijkste use case voor de API Carts/GetAvailablePromotions is de winkelwagenpagina, waar detailhandelaren toegepaste kortingen of beschikbare coupons voor de huidige winkelwagentje laten zien.
De volgende tabel toont de invoerparameters voor de API Carts/GetAvailablePromotions.
Naam | Type | Vereist/optioneel | Description |
---|---|---|---|
sleutel | string | Vereist | De winkelwagen-ID. |
cartLineIds | IEnumerable<string> | Optioneel | Stel deze parameter in om alleen kortingen voor geselecteerde winkelwagenregels te retourneren. |
Body respons voorbeeld
{
"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
De API GetAvailablePromotions retourneert alle toepasselijke kortingen voor het opgegeven kanaal.
De belangrijkste use case voor de API GetAvailablePromotions is de pagina Alle kortingen, waar detailhandelaren alle kortingen voor het huidige kanaal laten zien.
De volgende tabel toont de invoerparameters voor de API GetAvailablePromotions.
Naam | Subnaam | Type | Vereist/optioneel | Omschrijving |
---|---|---|---|---|
searchCriteria | DiscountsSearchCriteria | Vereist | ||
ChannelId | long | Vereist | ||
Trefwoord | string | Optioneel | ||
IsDiscountCodeRequired | bool | Optioneel | Geeft aan of de couponcode verplicht is of niet. Als null wordt doorgegeven, worden alle kortingen opgehaald, ongeacht de vereisten voor de couponcode. | |
StartDate | DateTimeOffset | Vereist | De begindatum (inclusief). | |
EndDate | DateTimeOffset | Vereist | De einddatum (inclusief). |
Instantie voor voorbeeldaanvraag
{
"searchCriteria": {
"ChannelId": 5637144592,
"StartDate": "1900-01-01T00:00:00Z",
"EndDate": "2154-12-31T00:00:00Z"
}
}
Body respons voorbeeld
{
"@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
De API AddCoupons ondersteunt het toevoegen van een lijst met coupons aan een winkelwagen. Deze API retourneert het winkelwagenobject nadat de coupons zijn toegevoegd.
De volgende tabel toont de invoerparameters voor de API AddCoupons.
Name | Type | Vereist/optioneel | Description |
---|---|---|---|
sleutel | string | Vereist | De winkelwagen-ID. |
couponCodes | IEnumerable<string> | Vereist | De aan de winkelwagen toe te voegen couponcodes. |
isLegacyDiscountCode | bool | Optioneel | Stel deze parameter in op waar om aan te geven dat de coupon een verouderde kortingscode is. De standaardwaarde is onwaar. |
RemoveCoupons
De API RemoveCoupons ondersteunt het verwijderen van een lijst met coupons uit een winkelwagen. Deze API retourneert het winkelwagenobject nadat de coupons zijn verwijderd.
De volgende tabel toont de invoerparameters voor de API RemoveCoupons.
Name | Type | Vereist/optioneel | Description |
---|---|---|---|
sleutel | string | Vereist | De winkelwagen-ID. |
couponCodes | IEnumerable<string> | Vereist | De uit de winkelwagen te verwijderen couponcodes. |
GetProductPromotions
De API GetProductPromotions is geïntroduceerd in Commerce versie 10.0.38. Deze API krijgt een lijst met promotieproducten met bepaalde productkortingen en kan ook een lijst met productkortings-id's en prijscontext gebruiken als invoer en query's maken voor de gekoppelde promotieproducten. De belangrijkste use case voor de API GetProductPromotions staat op productlijstpagina's, waar detailhandelaren producten met kortingen tonen. Deze API ondersteunt zowel het prijsmodel op basis van eigenschappen als het verouderde prijsmodel.
De volgende tabel toont de invoerparameters voor de API GetProductPromotions.
Naam | Subnaam | Type | Vereist/optioneel | Omschrijving |
---|---|---|---|---|
productDiscountIds | IEnumerable<string> | Vereist | De lijst met productkortings-id's om te zoeken naar promotieproducten. | |
priceLookupContext | PriceLookupContext | Vereist | De context voor prijzen. | |
activeDate | DateTimeOffset | Optioneel | De datum waarop promotie wordt meegenomen. |
Beperkingen en limieten:
- Kan maximaal vijf productkortings-id's als invoer gebruiken.
- Alleen eenvoudige kortingen worden ondersteund.
Instantie voor voorbeeldaanvraag
{
{
"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",
},
}
Body respons voorbeeld
{
"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
}
]
}
]
}
Zie PriceLookupContext voor meer informatie.
PriceLookupContext
De klasse PriceLookupContext wordt gebruikt voor het op eigenschap gebaseerd prijsmodel in de API´s GetProductPromotions en GetActivePrices.
De structuur van de klasse PriceLookupContext wordt in het volgende voorbeeld weergegeven.
{
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>
},
]
}
Instantie voor voorbeeldaanvraag
"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": []
}
Opmerking
- Er is geen klantengroep opgegeven in de parameter PriceLookupHeaderContext, omdat deze was afgeleid van het klantrekeningnummer.
- De ChannelId kan worden opgegeven in de parameter PriceLookupHeaderContext. Als deze niet is opgegeven, wordt de ChannelId uit de aanvraagcontext (het huidige kanaal bij het gebruik van Store Commerce) gebruikt.