Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive varie API per i prezzi fornite dal motore prezzi di Microsoft Dynamics 365 Commerce.
Il motore dei prezzi di Dynamics 365 Commerce fornisce le API server retail seguenti che possono essere usate dalle applicazioni esterne per supportare diversi scenari di prezzi:
- GetActivePrices: questa API ottiene il prezzo calcolato di un prodotto, inclusi semplici sconti.
- CalculateSalesDocument: questa API calcola prezzi e sconti per prodotti a determinate quantità se 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.
| Nome | Nome secondario | Tipo | Obbligatorio/Facoltativo | Descrizione |
|---|---|---|---|---|
| projectDomain | ProjectionDomain | Obbligatorio | ||
| ChannelId | long | Obbligatorio | ||
| CatalogId | long | Obbligatorio | ||
| productIds | IEnumerable<long> | Obbligatorio | 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 richiesta 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 versione Commerce versione 10.0.37 introduce la classe PriceLookupContext. Questa classe contiene tutti i criteri di ricerca per l'API GetActivePrices. Sostituisce i parametri precedenti di productIds, activeDate, customerId e affiliationLoyaltyTiers. La classe include anche proprietà aggiuntive che gli sviluppatori possono usare per filtrare gli sconti durante la ricerca dello sconto.
A seconda delle esigenze dell'organizzazione, l'API GetActivePrices può accettare i parametri precedenti o i nuovi parametri associati alla classe PriceLookupContext.
Parametri di input
| Nome | Nome secondario | Tipo | Obbligatorio/Facoltativo | Descrizione |
|---|---|---|---|---|
| projectDomain | ProjectionDomain | Obbligatorio | ||
| ChannelId | long | Obbligatorio | ||
| CatalogId | long | Obbligatorio | ||
| priceLookupContext | PriceLookupContext | Obbligatorio | ||
| HeaderContext | PriceLookupHeaderContext | Obbligatorio | Contiene CustomerAccountNumber, AffiliationLoyaltyTierLines e SalesOrderProperties | |
| LineContexts | IEnumerable<PriceLookupLineContext> | Obbligatorio | Contiene ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId e proprietà della riga di vendita. | |
| 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 dietro l'API CalculateSalesDocument considera gli sconti a riga singola e gli sconti su più righe.
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 set (ad esempio, per bundle discreti, prodotti collegati o consigliati o prodotti che sono già presenti nel carrello) potrebbero convincere 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 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.
| Nome | Nome secondario | Tipo | Obbligatorio/Facoltativo | Descrizione |
|---|---|---|---|---|
| ID | stringa | Obbligatorio | 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 i prezzi e gli sconti, concentrarsi sui campi nella tabella seguente.
| Nome | 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<LineaSconto> | I dettagli dello sconto. |
GetAvailablePromotions
Sono disponibili due API GetAvailablePromotions simili:
- Carts/GetAvailablePromotions accetta un elenco di identificatori di riga del carrello come parametro.
- GetAvailablePromotions accetta un oggetto DiscountSearchCriteria 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.
| Nome | Tipo | Obbligatorio/Facoltativo | Descrizione |
|---|---|---|---|
| chiave | stringa | Obbligatorio | L'ID carrello. |
| cartLineIds | IEnumerable<string> | Facoltativo | Imposta questo parametro per restituire sconti solo per le righe del carrello selezionate. |
Corpo della richiesta 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 Tutti gli sconti , in cui i rivenditori mostrano tutti gli sconti per il canale corrente.
La tabella seguente elenca i parametri di input per l'API GetAvailablePromotions.
| Nome | 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, l'API recupera tutti gli sconti, indipendentemente dai requisiti del codice coupon. | |
| StartDate | DateTimeOffset | Obbligatorio | La data di inizio (inclusiva). | |
| EndDate | DateTimeOffset | Obbligatorio | 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 richiesta 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.
| Nome | Tipo | Obbligatorio/Facoltativo | Descrizione |
|---|---|---|---|
| chiave | stringa | Obbligatorio | L'ID carrello. |
| couponCodes | IEnumerable<string> | Obbligatorio | 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.
| Nome | Tipo | Obbligatorio/Facoltativo | Descrizione |
|---|---|---|---|
| chiave | stringa | Obbligatorio | L'ID carrello. |
| couponCodes | IEnumerable<string> | Obbligatorio | 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 sconti per i prodotti specificati. Può anche prendere come input un elenco di ID sconto prodotto e contesto di prezzo ed eseguire query sui prodotti promozionali corrispondenti. 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.
| Nome | Nome secondario | Tipo | Obbligatorio/Facoltativo | Descrizione |
|---|---|---|---|---|
| productDiscountIds | IEnumerable<string> | Obbligatorio | L'elenco degli ID dei prodotti scontati da utilizzare per identificare i prodotti promozionali. | |
| priceLookupContext | PriceLookupContext | Obbligatorio | 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 richiesta 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
Usare la classe PriceLookupContext per il modello tariffario basato su proprietà nelle API GetProductPromotions e GetActivePrices .
Nell'esempio seguente viene illustrata la struttura della classe PriceLookupContext.
{
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
- L'API deduce il gruppo di clienti dal numero di account del cliente, quindi la richiesta non specifica un gruppo di clienti nel parametro PriceLookupHeaderContext.
- È possibile specificare ChannelId nel parametro PriceLookupHeaderContext. Se non lo specifichi, l'API usa il ChannelId dal contesto della richiesta (il canale corrente quando si usa Store Commerce).