Dela via


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).