API dei prezzi di Commerce
Questo articolo descrive varie API dei prezzi fornite dal motore di determinazione dei prezzi di Microsoft Dynamics 365 Commerce.
Il motore di determinazione dei prezzi di Dynamics 365 Commerce fornisce le seguenti API di Retail Server che possono essere utilizzate da applicazioni esterne per supportare vari scenari di prezzi:
- GetActivePrices: questa API ottiene il prezzo calcolato di un prodotto, inclusi semplici sconti.
- CalculateSalesDocument: questa API calcola i prezzi e gli sconti per i prodotti a determinate quantità se vengono acquistati insieme.
- GetAvailablePromotions: questa API ottiene sconti applicabili per i prodotti nel carrello.
- AddCoupons: questa API aggiunge buoni sconto a un carrello.
- RemoveCoupons: questa API rimuove buoni sconto da un carrello.
Per ulteriori informazioni su come utilizzare le API di Retail Server in applicazioni esterne, vedi Utilizzare le API di Retail Server in applicazioni esterne.
GetActivePrices
L'API GetActivePrices è stata introdotta nella versione 10.0.4 di Commerce. Questa API ottiene il prezzo calcolato di un prodotto, inclusi semplici sconti. Non calcola sconti plurimi e presume che la quantità di ogni prodotto in una richiesta API sia pari a 1. Questa API può anche utilizzare un elenco di prodotti come input ed eseguire query sul prezzo di singoli prodotti in blocco.
L'API GetActivePrices supporta i ruoli Dipendente, Cliente, Anonimo e Applicazione di Commerce.
Il caso d'uso principale per l'API GetActivePrices è la pagina dei dettagli del prodotto (PDP), in cui i rivenditori presentano il miglior prezzo di un prodotto, inclusi eventuali sconti effettivi.
Nota
Se vedi meno prodotti restituiti per una chiamata GetActivePrices
, puoi seguire Strumento di convalida configurazione merchandising canale per convalidare le configurazioni del merchandising.
La tabella seguente mostra i parametri di input per l'API GetActivePrices.
Name | Nome secondario | Tipo | Obbligatorio/Facoltativo | Descrizione |
---|---|---|---|---|
projectDomain | ProjectionDomain | Obbligatorio | ||
ChannelId | long | Richiesto | ||
CatalogId | long | Richiesto | ||
productIds | IEnumerable<long> | Richiesto | L'elenco dei prodotti per cui calcolare i prezzi. | |
activeDate | DateTimeOffset | Obbligatorio | La data in cui vengono calcolati i prezzi. | |
customerId | stringa | Facoltativo | Numero del conto cliente. | |
affiliationLoyaltyTiers | IEnumerable<AffiliationLoyaltyTier> | Facoltativo | I livelli di rapporto e fedeltà. | |
AffiliationId | long | Obbligatorio | L'ID rapporto. | |
LoyaltyTierId | long | Facoltativo | L'ID livello fedeltà. | |
includeSimpleDiscountsInContextualPrice | bool | Facoltativo | Imposta questo parametro su true per includere semplici sconti nel calcolo del prezzo. Il valore predefinito è false. | |
includeVariantPriceRange | bool | Facoltativo | Imposta questo parametro su true per ottenere i prezzi minimo e massimo tra tutte le varianti di un prodotto master. Il valore predefinito è false. | |
includeAttainablePricesAndDiscounts | bool | Facoltativo | Imposta questo parametro su true per ottenere prezzi e sconti raggiungibili. Il valore predefinito è false. |
Corpo della richiesta di esempio
{
"projectDomain":
{
"ChannelId": 5637144592,
"CatalogId": 0
},
"productIds":
[
68719489871
],
"activeDate": "2022-06-20T14:40:05.873+08:00",
"includeSimpleDiscountsInContextualPrice": true,
"includeVariantPriceRange": false
}
Corpo della risposta di esempio
{
"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": [],
}
]
}
Utilizzare PriceLookupContext
La classe PriceLookupContext è stata introdotta nella versione 10.0.37 di Commerce. La classe contiene tutti i criteri di ricerca per l'API GetActivePrices e sostituisce i parametri precedenti di productIds, activeDate, customerId e affiliationLoyaltyTiers. La classe dispone inoltre di proprietà aggiuntive che gli sviluppatori possono utilizzare per filtrare gli sconti durante la ricerca degli sconti.
In base alle esigenze della tua organizzazione, l'API GetActivePrices può accettare i parametri precedenti o nuovi parametri associati alla classe PriceLookupContext.
Parametri di input
Name | Nome secondario | Tipo | Obbligatorio/Facoltativo | Descrizione |
---|---|---|---|---|
projectDomain | ProjectionDomain | Richiesto | ||
ChannelId | long | Richiesto | ||
CatalogId | long | Richiesto | ||
priceLookupContext | PriceLookupContext | Richiesto | ||
HeaderContext | PriceLookupHeaderContext | Richiesto | Contiene CustomerAccountNumber, AffiliationLoyaltyTierLines e SalesOrderProperties | |
LineContexts | IEnumerable<PriceLookupLineContext> | Richiesto | Contiene ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId e SalesLineProperties. | |
includeSimpleDiscountsInContextualPrice | bool | Facoltativo | Imposta questo parametro su true per includere semplici sconti nel calcolo del prezzo. Il valore predefinito è false. | |
includeVariantPriceRange | bool | Facoltativo | Imposta questo parametro su true per ottenere i prezzi minimo e massimo tra tutte le varianti di un prodotto master. Il valore predefinito è false. | |
includeAttainablePricesAndDiscounts | bool | Facoltativo | Imposta questo parametro su true per ottenere prezzi e sconti raggiungibili. Il valore predefinito è false. |
Per ulteriori informazioni, vedi PriceLookupContext.
CalculateSalesDocument
L'API CalculateSalesDocument è stata introdotta nella versione 10.0.25 di Commerce. Questa API calcola i prezzi e gli sconti per i prodotti a determinate quantità se vengono acquistati insieme in un ordine. Il calcolo dei prezzi con l'API CalculateSalesDocument prende in considerazione sia gli sconti a riga singola che sconti plurimi.
Il caso d'uso principale per l'API CalculateSalesDocument è il calcolo dei prezzi in scenari in cui il contesto del carrello completo non persiste (come offerte di vendita). Anche gli scenari nel POS e nell'e-commerce di Commerce possono trarre vantaggio da questo caso d'uso. Un prezzo totale inferiore quando gli articoli del carrello vengono calcolati come insieme (ad esempio, per aggregazioni discrete, prodotti collegati o consigliati o prodotti che sono già stati aggiunti al carrello) potrebbe indurre i clienti ad aggiungere prodotti al carrello.
Il modello di dati sia per la richiesta che per la risposta dell'API CalculateSalesDocument è Cart. Tuttavia, nel contesto di questa API, il modello di dati è denominato SalesDocument. Poiché la maggior parte delle proprietà è facoltativa e solo alcune di esse influiscono sul calcolo dei prezzi, nella tabella seguente vengono mostrati solo i campi relativi ai prezzi. Non è consigliabile includere altri campi nella richiesta API.
L'ambito dell'API CalculateSalesDocument è solo il calcolo di prezzi e sconti. IVA e spese non sono incluse.
La tabella seguente mostra i parametri di input nell'oggetto denominato salesDocument.
Name | Nome secondario | Tipo | Obbligatorio/Facoltativo | Descrizione |
---|---|---|---|---|
ID | stringa | Richiesto | L'identificatore del documento di vendita. | |
CartLines | IList<CartLine> | Facoltativo | L'elenco delle righe per cui calcolare prezzi e sconti. | |
ID prodotto | long | Richiesto nell'ambito di CartLine | L'ID record prodotto. | |
ItemId | stringa | Facoltativo | L'Identificatore dell'articolo. Se viene fornito un valore, deve corrispondere al valore del parametro ProductId. | |
InventoryDimensionId | stringa | Facoltativo | L'identificatore della dimensione inventariale. Se viene fornito un valore, la combinazione dei valori ItemId e InventoryDimensionId deve corrispondere al valore del parametro ProductId. | |
Quantity | decimale | Richiesto nell'ambito di CartLine | La quantità del prodotto. | |
UnitOfMeasureSymbol | stringa | Facoltativo | L'unità del prodotto. Per impostazione predefinita, se non viene fornito un valore, l'API utilizza l'unità di vendita del prodotto. | |
CustomerId | stringa | Facoltativo | Numero del conto cliente. | |
LoyaltyCardId | stringa | Facoltativo | L'identificatore della carta fedeltà. Qualsiasi conto cliente associato alla carta fedeltà deve corrispondere al valore del parametro CustomerId (se fornito). La carta fedeltà non viene presa in considerazione se non viene trovata o se lo stato è Bloccata. | |
AffiliationLines | IList<AffiliationLoyaltyTier> | Facoltativo | Le righe del livello di fedeltà del rapporto. Se vengono specificati i valori CustomerId e/o LoyaltyCardId, le righe del livello di fedeltà del rapporto corrispondenti vengono unite alle righe nel valore AffiliationLines. | |
AffiliationId | long | Richiesto nell'ambito di AffiliationLoyaltyTier | L'ID record rapporto. | |
LoyaltyTierId | long | Richiesto nell'ambito di AffiliationLoyaltyTier | L'ID record livello di fedeltà. | |
AffiliationTypeValue | int | Richiesto nell'ambito di AffiliationLoyaltyTier | Un valore che indica se il tipo della riga del rapporto è Generale (0) o Fedeltà (1). Se questo parametro è impostato su 0, l'API usa il valore AffiliationId come identificatore e ignora il valore LoyaltyTierId. Se questo parametro è impostato su 1, l'API usa il valore LoyaltyTierId come identificatore e ignora il valore AffiliationId. | |
ReasonCodeLines | Collection<ReasonCodeLine> | Richiesto nell'ambito di AffiliationLoyaltyTier | Le righe del codice motivo. Questo parametro non ha effetto sul calcolo del prezzo ma è obbligatorio come parte dell'oggetto AffiliationLoyaltyTier. | |
CustomerId | stringa | Richiesto nell'ambito di AffiliationLoyaltyTier | Numero del conto cliente. | |
Buoni sconto | IList<Coupon> | Facoltativo | I buoni sconto non applicabili (inattivi, scaduti o non trovati) non vengono presi in considerazione nel calcolo del prezzo. | |
Codice | stringa | Richiesto nell'ambito di Coupon | Il codice buono sconto. | |
CodeId | stringa | Facoltativo | L'identificatore del codice buono sconto. Se viene fornito un valore, deve corrispondere al valore del parametro Code. | |
DiscountOfferId | stringa | Facoltativo | L'Identificatore dello sconto. Se viene fornito un valore, deve corrispondere al valore del parametro Code. |
Corpo della richiesta di esempio
{
"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"
}
]
}
}
L'intero oggetto carrello viene restituito come corpo della risposta. Per controllare prezzi e sconti, dovresti concentrarti sui campi nella tabella seguente.
Name | Nome secondario | Tipo | Descrizione |
---|---|---|---|
NetPrice | decimale | Il prezzo netto dell'intero documento di vendita prima che vengano applicati gli sconti. | |
DiscountAmount | decimale | L'importo totale delle sconto dell'intero documento di vendita. | |
TotalAmount | decimale | L'importo totale dell'intero documento di vendita. | |
CartLines | IList<CartLine> | Le righe calcolate che includono dettagli su prezzo e sconti. | |
Prezzo | decimale | Il prezzo unitario del prodotto. | |
NetPrice | decimale | Il prezzo netto della riga prima che vengano applicati gli sconti (= Prezzo × Quantità). | |
DiscountAmount | decimale | L'importo dello sconto. | |
TotalAmount | decimale | Il risultato finale del prezzo totale della riga. | |
PriceLines | IList<PriceLine> | I dettagli sul prezzo, inclusa l'origine del prezzo (prezzo base, rettifica prezzo o accordo commerciale) e l'importo. | |
DiscountLines | IList<DiscountLine> | I dettagli dello sconto. |
GetAvailablePromotions
Esistono due API GetAvailablePromotions simili:
- Carts/GetAvailablePromotions accetta un elenco di identificatori di riga del carrello come parametro.
- GetAvailablePromotions accetta un oggetto DiscountsSearchCriteria come parametro.
Carts/GetAvailablePromotions
Dato un carrello che ha diverse righe di carrello, l'API Carts/GetAvailablePromotions restituisce tutti gli sconti applicabili per le righe del carrello.
Il caso d'uso principale per l'API Carts/GetAvailablePromotions è la pagina del carrello, in cui i rivenditori presentano gli sconti applicati o i buoni sconto disponibili per il carrello corrente.
La tabella seguente elenca i parametri di input per l'API Carts/GetAvailablePromotions.
Name | Tipo | Obbligatorio/Facoltativo | Descrizione |
---|---|---|---|
chiave | stringa | Richiesto | L'ID carrello. |
cartLineIds | IEnumerable<string> | Facoltativo | Imposta questo parametro per restituire sconti solo per le righe del carrello selezionate. |
Corpo della risposta di esempio
{
"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
L'API GetAvailablePromotions restituisce tutti gli sconti applicabili per il canale in questione.
Il caso d'uso principale per l'API GetAvailablePromotions è la pagina del carrello "Tutti gli sconti", in cui i rivenditori presentano tutti gli sconti per il carrello corrente.
La tabella seguente elenca i parametri di input per l'API GetAvailablePromotions.
Name | Nome secondario | Tipo | Obbligatorio/Facoltativo | Descrizione |
---|---|---|---|---|
searchCriteria | DiscountsSearchCriteria | Obbligatorio | ||
ChannelId | long | Obbligatorio | ||
Parola chiave | stringa | Facoltativo | ||
IsDiscountCodeRequired | bool | Facoltativo | Indica se il codice buono sconto è richiesto o meno. Se viene passato null, vengono recuperati tutti gli sconti, indipendentemente dai requisiti del codice buono sconto. | |
StartDate | DateTimeOffset | Richiesto | La data di inizio (inclusiva). | |
EndDate | DateTimeOffset | Richiesto | La data di fine (inclusiva). |
Corpo della richiesta di esempio
{
"searchCriteria": {
"ChannelId": 5637144592,
"StartDate": "1900-01-01T00:00:00Z",
"EndDate": "2154-12-31T00:00:00Z"
}
}
Corpo della risposta di esempio
{
"@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
L'API AddCoupons supporta l'aggiunta di un elenco di buoni sconto a un carrello. Restituisce l'oggetto carrello dopo l'aggiunta di buoni sconto.
La tabella seguente mostra i parametri di input per l'API AddCoupons.
Name | Tipo | Obbligatorio/Facoltativo | Descrizione |
---|---|---|---|
chiave | stringa | Richiesto | L'ID carrello. |
couponCodes | IEnumerable<string> | Richiesto | I codici buoni sconto da aggiungere al carrello. |
isLegacyDiscountCode | bool | Facoltativo | Imposta questo parametro su true per indicare che il buono sconto è un codice sconto legacy. Il valore predefinito è false. |
RemoveCoupons
L'API RemoveCoupons supporta la rimozione di un elenco di buoni sconto da un carrello. Restituisce l'oggetto carrello dopo la rimozione di buoni sconto.
La tabella seguente mostra i parametri di input per l'API RemoveCoupons.
Name | Tipo | Obbligatorio/Facoltativo | Descrizione |
---|---|---|---|
chiave | stringa | Richiesto | L'ID carrello. |
couponCodes | IEnumerable<string> | Richiesto | I codici buoni sconto da rimuovere dal carrello. |
GetProductPromotions
L'API GetProductPromotions è stata introdotta nella versione 10.0.38 di Commerce. Questa API ottiene un elenco di prodotti promozionali con determinati sconti sui prodotti e può anche prendere come input un elenco di ID sconti prodotto e contesto di prezzo ed eseguire query sui prodotti promozionali associati. Il caso d'uso principale dell'API GetProductPromotions è nelle pagine di elenco dei prodotti, dove i rivenditori mostrano i prodotti con sconti. Questa API supporta sia il modello di prezzo basato sulla struttura sia il modello di prezzo legacy.
La tabella seguente mostra i parametri di input per l'API GetProductPromotions.
Name | Nome secondario | Tipo | Obbligatorio/Facoltativo | Descrizione |
---|---|---|---|---|
productDiscountIds | IEnumerable<string> | Richiesto | L'elenco degli ID sconto dei prodotti per cercare prodotti promozionali. | |
priceLookupContext | PriceLookupContext | Richiesto | Il contesto per i prezzi. | |
activeDate | DateTimeOffset | Facoltativo | Data in cui la promozione viene considerata. |
Restrizioni e limitazioni:
- Può accettare solo un massimo di cinque ID sconto prodotti come input.
- Sono supportati solo gli sconti semplici.
Corpo della richiesta di esempio
{
{
"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",
},
}
Corpo della risposta di esempio
{
"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
}
]
}
]
}
Per ulteriori informazioni, vedi PriceLookupContext.
PriceLookupContext
La classe PriceLookupContext viene utilizzata per il modello di prezzo basato sulla proprietà nelle API GetProductPromotions e GetActivePrices.
La struttura della classe PriceLookupContext è mostrata nell'esempio seguente.
{
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>
},
]
}
Corpo della richiesta di esempio
"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": []
}
Nota
- Non è stato specificato un gruppo di clienti nel parametro PriceLookupHeaderContext perché è stato dedotto dal numero di conto del cliente.
- Il ChannelId può essere specificato nel parametro PriceLookupHeaderContext. Se non è specificato, viene utilizzato il ChannelId dal contesto della richiesta (il canale corrente quando si utilizza Store Commerce).