Del via


API-er for Commerce-priser

Denne artikkelen beskriver forskjellige pris-API-er som tilbys av Microsoft Dynamics 365 Commerce-prissettingsmotoren.

Dynamics 365 Commerce-prissettingsmotoren gir følgende API-er for Retail Server som eksterne programmer kan forbruke for å støtte ulike prissettingsscenarioer:

  • GetActivePrices - Denne API-en får produktets beregnede pris, inkludert enkle rabatter.
  • CalculateSalesDocument – Denne API-en beregner priser og rabatter for produkter til gitte kvanta hvis de kjøpes sammen.
  • GetAvailablePromotions – Denne API-en får gjeldende rabatter for produkter i handlekurven.
  • AddCoupons - Denne APIen legger til kuponger i en handlekurv.
  • RemoveCoupons – Denne API-en fjerner kuponger fra en handlekurv.

Hvis du vil ha mer informasjon om hvordan du forbruker Retail Server-API-er i eksterne programmer, kan du se Bruk Retail Server-API-er i eksterne programmer.

GetActivePrices

API-en GetActivePrices ble lansert i Commerce-versjonen 10.0.4. Denne API-en får den beregnede prisen for et produkt, inkludert enkle rabatter. Den beregner ikke rabatter med flere linjer, og det forutsetter at hvert produkt i en API-forespørsel har et antall på 1. Denne API-en kan også ta en liste over produkter som inndata og spørre på prisen på enkeltprodukter samlet.

API-en GetActivePrices støtter Commerce-rollene ansatt, kunde, anonym og program.

Hovedbrukstilfellet for API-en GetActivePrices er siden med produktdetaljer der forhandlere viser den beste prisen for et produkt, inkludert eventuelle effektive rabatter.

Merknad

Hvis du ser færre produkter returnert for et GetActivePrices-oppkall, kan du følge Validator for konfigurasjon av kanalhandel for å validere varekonfigurasjonene dine.

Følgende tabell viser inndataparameterne for API-en GetActivePrices.

Navn Undernavn Type Obligatorisk/valgfritt Beskrivelse
projectDomain ProjectionDomain Obligatorisk
ChannelId lang Obligatorisk
CatalogId lang Obligatorisk
productIds IEnumerable<long> Obligatorisk Listen over produkter det skal beregnes priser for.
activeDate DateTimeOffset Obligatorisk Datoen når prisene beregnes.
customerId streng Valgfri Kundekontonummeret.
affiliationLoyaltyTiers IEnumerable<AffiliationLoyaltyTier> Valgfri Tilknytnings- og fordelslag.
AffiliationId lang Obligatorisk Tilknytnings-ID-en.
LoyaltyTierId lang Valgfri Fordelslag-ID-en.
includeSimpleDiscountsInContextualPrice bool Valgfri Angi denne parameteren til true slik at den skal inkludere enkle rabatter i prissettingsberegningen. Standardverdien er usann.
includeVariantPriceRange bool Valgfri Sett denne parameteren til sann for å få minimums- og maksimumsprisene blant alle varianter for et hovedprodukt. Standardverdien er usann.
includeAttainablePricesAndDiscounts bool Valgfri Sett denne parameteren til sann for å oppnå priser og rabatter. Standardverdien er usann.
Eksempel på forespørsel
{
    "projectDomain": 
    {
        "ChannelId": 5637144592,
        "CatalogId": 0
    },
    "productIds": 
    [
        68719489871
    ],
    "activeDate": "2022-06-20T14:40:05.873+08:00",
    "includeSimpleDiscountsInContextualPrice": true,
    "includeVariantPriceRange": false
}
Prøve svar brødtekst
{
    "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": [],
        }
    ]
}

Bruk PriceLookupContext

PriceLookupContext-klassen ble lansert i Commerce-versjonen 10.0.37. Klassen inneholder alle oppslagskriteriene for GetActivePrices-API, og erstatter de tidligere parameterne for productIds, activeDate, customerId og affiliationLoyaltyTiers. Klassen har også flere egenskaper som utviklerne kan bruke til å filtrere rabatter under rabattoppslag.

I henhold til organisasjonens behov kan GetActivePrices-API enten godta de forrige parameterne eller de nye parameterne som er tilknyttet PriceLookupContext-klassen.

Inndataparametere

Navn Undernavn Type Obligatorisk/valgfritt Beskrivelse
projectDomain ProjectionDomain Obligatorisk
ChannelId lang Obligatorisk
CatalogId lang Obligatorisk
priceLookupContext PriceLookupContext Obligatorisk
HeaderContext PriceLookupHeaderContext Obligatorisk Inneholder CustomerAccountNumber, AffiliationLoyaltyTierLines og SalesOrderProperties
LineContexts IEnumerable<PriceLookupLineContext> Obligatorisk Inneholder ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId og SalesLineProperties.
includeSimpleDiscountsInContextualPrice bool Valgfritt Angi denne parameteren til true slik at den skal inkludere enkle rabatter i prissettingsberegningen. Standardverdien er usann.
includeVariantPriceRange bool Valgfri Sett denne parameteren til sann for å få minimums- og maksimumsprisene blant alle varianter for et hovedprodukt. Standardverdien er usann.
includeAttainablePricesAndDiscounts bool Valgfri Sett denne parameteren til sann for å oppnå priser og rabatter. Standardverdien er usann.

Hvis du vil ha mer informasjon, kan du se PriceLookupContext.

CalculateSalesDocument

API-en CalculateSalesDocument ble lansert i Commerce-versjonen 10.0.25. Denne API-en beregner priser og rabatter for produkter til gitte antall hvis de kjøpes sammen i en bestilling. Prissettingsberegningen bak API-en CalculateSalesDocument vurderer både enkeltlinjerabatter og flerlinjerabatter.

Det viktigste bruksmåten for API-en CalculateSalesDocument er prissettingsberegningen i scenarioer der hele handlekurvkonteksten ikke fastholdes (for eksempel salgstilbud). Scenarioer i salgsstedet og Commerce-netthandel kan også dra nytte av denne bruken. En lavere totalpris når handlekurvvarer beregnes som et sett (for eksempel atskilte grupper, koblede eller anbefalte produkter eller produkter som allerede er lagt til i handlekurven), kan overtale kunder til å legge til produkter i handlekurven.

Datamodellen for både forespørselen og svaret på API-en CalculateSalesDocument er Handlekurv. I denne API-en kalles imidlertid datamodellen SalesDocument. Fordi de fleste egenskapene er valgfrie, og bare noen få påvirker prissettingsberegningen, vises bare prissettingsrelaterte felter i tabellen nedenfor. Vi anbefaler ikke at noen andre felter er involvert i API-forespørselen.

Området for API-en CalculateSalesDocument er bare beregningen av priser og rabatter. Avgifter og gebyrer er ikke involvert.

Følgende tabell viser inndataparameterne i objektet som kalles salesDocument.

Navn Undernavn Type Obligatorisk/valgfritt Beskrivelse
ID streng Obligatorisk Identifikatoren for salgsdokumentet.
CartLines IList<CartLine> Valgfri Listen over linjer det skal beregnes priser og rabatter for.
Produkt-ID lang Obligatorisk i området for CartLine Post-ID for produktet.
ItemId streng Valgfri Vareidentifikatoren. Hvis det angis en verdi, må den samsvare med verdien for ProductId-parameteren.
InventoryDimensionId streng Valgfri Identifikatoren for lagerdimensjonen. Hvis det angis en verdi, må kombinasjonen av verdiene ItemId og InventoryDimensionId samsvare med verdien for ProductId-parameteren.
Antall desimal Obligatorisk i området for CartLine Antallet for produktet.
UnitOfMeasureSymbol streng Valgfri Enheten for produktet. Hvis det ikke er oppgitt en verdiforsyning, bruker API-en som standard salgsenheten for produktet.
CustomerId streng Valgfri Kundekontonummeret.
LoyaltyCardId streng Valgfri Identifikatoren for fordelskortet. Alle kundekontoer som er knyttet til lojalitetskortet, må samsvare med verdien i CustomerId-parameteren (hvis den finnes). Det tas ikke hensyn til lojalitetskortet hvis statusen er Blokkert.
AffiliationLines IList<AffiliationLoyaltyTier> Valgfri Tilknytningslinjer for fordelskort. Hvis det finnes verdier for CustomerId og/eller LoyaltyCardId-verdiene, vil de tilsvarende fordelslagslinjene i ansettelsesforholdet bli flettet med linjer som finnes i AffiliationLines-verdien.
AffiliationId lang Obligatorisk i området for AffiliationLoyaltyTier Tilknytningspost-ID-en.
LoyaltyTierId lang Obligatorisk i området for AffiliationLoyaltyTier Fordelslagspost-ID-en.
AffiliationTypeValue int Obligatorisk i området for AffiliationLoyaltyTier En verdi som angir om ansettelseslinjen er av typen Generelt (0)eller Fordelstype (1). Hvis parameteren er satt til 0, tar API verdien for AffiliationId som identifikator, og ignorerer LoyaltyTierId-verdien. Hvis parameteren er satt til 1, tar API verdien for LoyaltyTierId som identifikator, og ignorerer AffiliationId-verdien.
ReasonCodeLines Collection<ReasonCodeLine> Obligatorisk i området for AffiliationLoyaltyTier Årsakskodelinjer. Denne parameteren har ingen innvirkning på prissettingsberegningen, men er nødvendig som en del av objektet AffiliationLoyaltyTier.
CustomerId streng Obligatorisk i området for AffiliationLoyaltyTier Kundekontonummeret.
Kuponger IList<Coupon> Valgfri Kuponger som ikke gjelder (inaktiv, utløpt eller ikke funnet) blir ikke tatt hensyn til i prissettingsberegningen.
Kode streng Obligatorisk i området for kupong Kupongkoden.
CodeId streng Valgfri Kupongkodeidentifikatoren. Hvis det angis en verdi, må den samsvare med verdien for Code-parameteren.
DiscountOfferId streng Valgfri Rabattidentifikatoren. Hvis det angis en verdi, må den samsvare med verdien for Code-parameteren.
Eksempel på forespørsel
{
    "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"
            }
        ]
    }
}

Hele handlekurvobjektet returneres som svartekst. Hvis du vil kontrollere priser og rabatter, bør du fokusere på feltene i følgende tabell.

Navn Undernavn Type Beskrivelse
NetPrice desimal Nettoprisen for hele salgsdokumentet før rabatter brukes.
DiscountAmount desimal Totalt rabattbeløp for hele salgsdokumentet.
TotalAmount desimal Totalt beløp for hele salgsdokumentet.
CartLines IList<CartLine> Beregnede linjer som inneholder pris- og rabattdetaljer.
Pris desimal Enhetsprisen for produktet.
NetPrice desimal Nettoprisen for linjen før rabatter brukes (= Pris × Antall).
DiscountAmount desimal Rabattbeløpet.
TotalAmount desimal Det endelige totale prissettingsresultatet for linjen.
PriceLines IList<PriceLine> Prisdetaljer, inkludert kilden til prisen (basispris, prisjustering eller handelsavtale) og beløpet.
DiscountLines IList<DiscountLine> Rabattdetaljer.

GetAvailablePromotions

Det finnes to like API-er kalt GetAvailablePromotions:

  • Carts/GetAvailablePromotions godtar en liste over handlekurvlinjeidentifikatorer som parameter.
  • GetAvailablePromotions godtar et DiscountsSearchCriteria-objekt som parameter.

Carts/GetAvailablePromotions

Gitt en handlekurv som har flere handlekurvlinjer, returnerer API-en Carts/GetAvailablePromotions alle gjeldende rabatter for handlekurvlinjene.

Det viktigste brukstilfellet for API-en Carts/GetAvailablePromotions er handlekurvsiden, der forhandlere viser brukte rabatter eller tilgjengelige kuponger for den gjeldende handlekurven.

Følgende tabell viser inndataparameterne for API-en Carts/GetAvailablePromotions.

Navn Type Obligatorisk/valgfritt Beskrivelse
nøkkel streng Obligatorisk Handlekurv-ID-en.
cartLineIds IEnumerable<string> Valgfri Angi denne parameteren for å returnere rabatter bare for valgte handlekurvlinjer.
Prøve svar brødtekst
{
    "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-en GetAvailablePromotions returnerer alle gjeldende rabatter for produkter for den gitte kanalen.

Det viktigste brukstilfellet for API-en GetAvailablePromotions er siden Alle rabatter, der forhandlere viser rabatter for den gjeldende kanalen.

Følgende tabell viser inndataparameterne for API-en GetAvailablePromotions.

Navn Undernavn Type Obligatorisk/valgfritt Beskrivelse
searchCriteria DiscountsSearchCriteria Obligatorisk
ChannelId lang Obligatorisk
Nøkkelord streng Valgfritt
IsDiscountCodeRequired bool Valgfritt Angir om kupongkoden kreves eller ikke. Hvis null sendes, hentes alle rabatter, uansett krav til kupongkode.
StartDate DateTimeOffset Obligatorisk Startdatoen (inklusive).
EndDate DateTimeOffset Obligatorisk Sluttdatoen (inklusive).
Eksempel på forespørsel
{
    "searchCriteria": {
        "ChannelId": 5637144592,
        "StartDate": "1900-01-01T00:00:00Z",
        "EndDate": "2154-12-31T00:00:00Z"
    }
}
Prøve svar brødtekst
{
    "@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-en AddCoupons støtter det å legge til en liste over kuponger i en handlekurv. Returnerer handlekurvobjektet etter at kupongene er lagt til.

Følgende tabell viser inndataparameterne for API-en AddCoupons.

Navn Type Obligatorisk/valgfri Beskrivelse
nøkkel streng Obligatorisk Handlekurv-ID-en.
couponCodes IEnumerable<string> Obligatorisk Kupongkodene som skal legges til i handlekurven.
isLegacyDiscountCode bool Valgfri Sett denne parameteren til sann for å angi at kupongen er en eldre rabattkode. Standardverdien er usann.

RemoveCoupons

API-en RemoveCoupons støtter fjerning av en liste over kuponger fra en handlekurv. Returnerer handlekurvobjektet etter at kupongene er fjernet.

Følgende tabell viser inndataparameterne for API-en RemoveCoupons.

Navn Type Obligatorisk/valgfri Beskrivelse
nøkkel streng Obligatorisk Handlekurv-ID-en.
couponCodes IEnumerable<string> Obligatorisk Kupongkodene som skal fjernes fra handlekurven.

GetProductPromotions

API-en GetProductPromotions ble lansert i Commerce-versjonen 10.0.38. Denne API-en inneholder en liste over kampanjeprodukter med gitte produktrabatter, og kan også ta en liste over produktrabatt-IDer og prissettingskontekst som inndata og spørre på de tilknyttede kampanjeproduktene. Det viktigste bruksområdet for GetProductPromotions-APIen er på produktoversiktssider, der forhandlere benytter produkter med rabatter. Denne API støtter både egenskapsgrunnlagsprismodellen og den eldre prissettingsmodellen.

Følgende tabell viser inndataparameterne for API-en GetProductPromotions.

Navn Undernavn Type Obligatorisk/valgfritt Beskrivelse
productDiscountIds IEnumerable<string> Obligatorisk Listen over produktrabatt-IDer for å se etter kampanjeprodukter.
priceLookupContext PriceLookupContext Obligatorisk Konteksten for prissetting.
activeDate DateTimeOffset Valgfritt Datoen da kampanje ble vurdert.

Restriksjoner og begrensninger:

  • Kan bare ta maksimalt fem produktrabatt-IDer som inndata.
  • Bare enkle rabatter støttes.
Eksempel på forespørsel
{
    {
    "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",
    },
}
Prøve svar brødtekst
{
    "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
                }
            ]   
        }
    ]
}

Hvis du vil ha mer informasjon, kan du se PriceLookupContext.

PriceLookupContext

PriceLookupContext-klassen brukes for den egenskapsgrunnlagsprismodellen i APIene for GetProductPromotions og GetActivePrices.

Strukturen til PriceLookupContext-klassen vises i følgende eksempel.

{
    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>
        },
    ]
}
Eksempel på forespørsel
"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 er ingen kundegruppe som er angitt i parameteren PriceLookupHeaderContext fordi kundens kontonummer hadde blitt utledet.
  • ChannelId kan angis i parameteren PriceLookupHeaderContext. Hvis kanal-IDen ikke er angitt, brukes ChannelId fra forespørselskonteksten (gjeldende kanal ved bruk av Store Commerce).