Delen via


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.