APIs de preços do Commerce
Isto artigo descreve várias APIs de preços fornecidas pelo mecanismo de Microsoft Dynamics 365 Commerce preços.
O Dynamics 365 Commerce mecanismo de preços fornece as seguintes APIs do Retail Server que os aplicativos externos podem consumir para oferecer suporte a vários cenários de preços:
- GetActivePrices – Esta API obtém o preço calculado de um produto, incluindo descontos simples.
- CalculateSalesDocument – Esta API calcula preços e descontos para produtos em determinadas quantidades se forem comprados juntos.
- GetAvailablePromotions – Esta API obtém descontos aplicáveis para produtos no carrinho.
- AddCoupons – Esta API adiciona cupons a um carrinho.
- RemoveCoupons – Esta API remove cupons de um carrinho.
Para obter mais informações sobre como consumir APIs do Retail Server em aplicativos externos, consulte Consumir APIs do Retail Server em aplicativos externos.
GetActivePrices
A API GetActivePrices foi introduzida na versão 10.0.4 do Commerce. Esta API obtém o preço calculado de um produto, incluindo descontos simples. Ele não calcula descontos de várias linhas e pressupõe que cada produto em uma solicitação de API tenha uma quantidade de 1. Essa API também pode tomar uma lista de produtos como entrada e consultar o preço de produtos individuais em massa.
A API GetActivePrices suporta as funções Funcionário, Cliente, Anónimo e Application Commerce.
O principal caso de uso da API GetActivePrices é a página de detalhes do produto (PDP), onde os varejistas mostram o melhor preço para um produto, incluindo eventuais descontos efetivos.
Nota
Se vir menos produtos devolvidos para uma GetActivePrices
chamada, pode seguir o validador de configuração de merchandising do canal para validar as suas configurações de merchandising.
A tabela a seguir mostra os parâmetros de entrada para a API GetActivePrices .
Nome | Subnome | Tipo | Obrigatório/Opcional | Descrição |
---|---|---|---|---|
projectDomain | ProjeçãoDomínio | Obrigatório | ||
ChannelId | Longo | Obrigatório | ||
CatalogId | Longo | Obrigatório | ||
productIds | IEnumerable<longo> | Obrigatório | A lista de produtos para calcular preços. | |
activeDate | DateTimeOffset | Obrigatório | A data em que os preços são calculados. | |
ID do cliente | cadeia | Opcional | O número da conta do cliente. | |
afiliaçãoLoyaltyTiers | IEnumerable<AffiliationLoyaltyTier> | Opcional | Os níveis de afiliação e fidelização. | |
AfiliationId | Longo | Obrigatório | O ID de afiliação. | |
LoyaltyTierId | Longo | Opcional | O ID da camada de fidelidade. | |
includeSimpleDiscountsInContextualPrice | bool | Opcional | Defina isto parâmetro como true para incluir descontos simples no cálculo de preços. O valor padrão é false. | |
incluirVariantPriceRange | bool | Opcional | Defina isto parâmetro como true para obter os preços mínimo e máximo entre todas as variantes de um produto principal. O valor padrão é false. | |
incluemPreçose descontos | bool | Opcional | Defina isto parâmetro como true para obter preços e descontos alcançáveis. O valor padrão é false. |
Corpo do pedido de amostra
{
"projectDomain":
{
"ChannelId": 5637144592,
"CatalogId": 0
},
"productIds":
[
68719489871
],
"activeDate": "2022-06-20T14:40:05.873+08:00",
"includeSimpleDiscountsInContextualPrice": true,
"includeVariantPriceRange": false
}
Corpo resposta amostra
{
"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": [],
}
]
}
Usar PriceLookupContext
A classe PriceLookupContext foi introduzida na versão 10.0.37 do Commerce. A classe contém todos os critérios de pesquisa para a API GetActivePrices e substitui os parâmetros anteriores de productIds, activeDate, customerId e affiliationLoyaltyTiers. A classe também tem propriedades adicionais que os desenvolvedores podem usar para filtrar descontos durante a pesquisa de descontos.
De acordo com as necessidades da sua organização, a API GetActivePrices pode aceitar os parâmetros anteriores ou os novos parâmetros associados à classe PriceLookupContext.
Parâmetros de entrada
Nome | Subnome | Tipo | Obrigatório/Opcional | Descrição |
---|---|---|---|---|
projectDomain | ProjeçãoDomínio | Obrigatório | ||
ChannelId | Longo | Obrigatório | ||
CatalogId | Longo | Obrigatório | ||
preçoLookupContext | PriceLookupContext | Obrigatório | ||
HeaderContext | PriceLookupHeaderContext | Obrigatório | Contém CustomerAccountNumber, AffiliationLoyaltyTierLines e SalesOrderProperties | |
LineContexts | IEnumerable<PriceLookupLineContext> | Obrigatório | Contém ProductRecordId, UnitOfMeasureSymbol, InventorySiteId, InventoryLocationId, DeliveryMode, CatalogId e SalesLineProperties. | |
includeSimpleDiscountsInContextualPrice | bool | Opcional | Defina isto parâmetro como true para incluir descontos simples no cálculo de preços. O valor padrão é false. | |
incluirVariantPriceRange | bool | Opcional | Defina isto parâmetro como true para obter os preços mínimo e máximo entre todas as variantes de um produto principal. O valor padrão é false. | |
incluemPreçose descontos | bool | Opcional | Defina isto parâmetro como true para obter preços e descontos alcançáveis. O valor padrão é false. |
Para obter mais informações, consulte PriceLookupContext.
CalculateSalesDocument
A API CalculateSalesDocument foi introduzida na versão 10.0.25 do Commerce. Esta API calcula os preços e descontos dos produtos em determinadas quantidades se forem comprados em conjunto numa encomenda. O cálculo de preços por trás da API CalculateSalesDocument considera descontos de linha única e descontos de várias linhas.
O principal caso de uso da API CalculateSalesDocument é o cálculo de preços em cenários onde o contexto completo do carrinho não persiste (como cotações de vendas). Cenários no ponto de venda (POS) e no comércio eletrónico do Commerce também podem beneficiar deste caso de utilização. Um preço total mais baixo quando os itens do carrinho são calculados como um conjunto (por exemplo, para pacotes discretos, produtos vinculados ou recomendados ou produtos que já foram adicionados ao carrinho) pode persuadir os clientes a adicionar produtos ao carrinho.
O modelo de dados para a solicitação e o resposta da API CalculateSalesDocument é Cart . No entanto, no contexto dessa API, o modelo de dados é chamado SalesDocument. Como a maioria das propriedades é opcional e apenas algumas delas afetam o cálculo de preços, apenas os campos relacionados a preços são mostrados na tabela a seguir. Não recomendamos que outros campos estejam envolvidos na solicitação de API.
O escopo da API CalculateSalesDocument é apenas o cálculo de preços e descontos. Não estão envolvidos impostos e encargos.
A tabela a seguir mostra os parâmetros de entrada dentro do objeto chamado salesDocument.
Nome | Subnome | Tipo | Obrigatório/Opcional | Descrição |
---|---|---|---|---|
ID | cadeia | Obrigatório | O identificador do documento de vendas. | |
CartLines | IList<CartLine> | Opcional | A lista de linhas para calcular preços e descontos. | |
ID do Produto | Longo | Obrigatório no âmbito do CartLine | O ID de registro do produto. | |
ItemId | cadeia | Opcional | O identificador do item. Se um valor for fornecido, ele deverá corresponder ao valor do parâmetro ProductId . | |
InventoryDimensionId | cadeia | Opcional | O identificador de dimensão de inventário. Se um valor for fornecido, a combinação dos valores ItemId e InventoryDimensionId deverá corresponder ao valor do parâmetro ProductId . | |
Quantidade | decimal | Obrigatório no âmbito do CartLine | A quantidade do produto. | |
UnitOfMeasureSymbol | cadeia | Opcional | A unidade do produto. Por padrão, se um valor não for fornecido, a API usará a unidade de venda do produto. | |
CustomerId | cadeia | Opcional | O número da conta do cliente. | |
LoyaltyCardId | cadeia | Opcional | O identificador cartão de fidelização. Qualquer conta de cliente associada ao cartão de fidelização deve corresponder ao valor do parâmetro CustomerId (se fornecido). O cartão de fidelização não será considerado se não for encontrado ou se o seu estado for Bloqueado. | |
AfiliaçãoLinhas | IList<AfiliationLoyaltyTier> | Opcional | Linhas de nível de fidelidade de afiliação. Se os valores CustomerId e/ou LoyaltyCardId forem fornecidos, as linhas de camada de fidelidade de afiliação correspondentes serão mescladas com as linhas fornecidas no valor AffiliationLines . | |
AfiliationId | Longo | Obrigatório no âmbito de AffiliationLoyaltyTier | O ID do registro de afiliação. | |
LoyaltyTierId | Longo | Obrigatório no âmbito de AffiliationLoyaltyTier | O ID do registro da camada de fidelidade. | |
AffiliationTypeValue | parâm. | Obrigatório no âmbito de AffiliationLoyaltyTier | Um valor que indica se a linha de afiliação é do tipo Geral (0) ou do tipo Fidelidade (1). Se o parâmetro for definido como 0, a API usará o valor AffiliationId como identificador e ignorará o valor LoyaltyTierId . Se o parâmetro for definido como 1, a API usará o valor LoyaltyTierId como identificador e ignorará o valor AffiliationId . | |
ReasonCodeLines | Coleção<ReasonCodeLine> | Obrigatório no âmbito de AffiliationLoyaltyTier | Linhas de código de razão. Isto parâmetro não tem efeito sobre o cálculo de preços, mas é necessário como parte do objeto AffiliationLoyaltyTier . | |
CustomerId | cadeia | Obrigatório no âmbito de AffiliationLoyaltyTier | O número da conta do cliente. | |
Cupões | Cupom IList<> | Opcional | Os cupões que não são aplicáveis (inativos, expirados ou não encontrados) não são considerados no cálculo do preço. | |
Código | cadeia | Obrigatório no âmbito do Cupão | O código do cupom. | |
CodeId | cadeia | Opcional | O identificador do código de cupom. Se um valor for fornecido, ele deverá corresponder ao valor do parâmetro Code . | |
DiscountOfferId | cadeia | Opcional | O identificador de desconto. Se um valor for fornecido, ele deverá corresponder ao valor do parâmetro Code . |
Corpo do pedido de amostra
{
"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"
}
]
}
}
Todo o objeto do carrinho é retornado como o corpo resposta. Para verificar preços e descontos, você deve se concentrar nos campos da tabela a seguir.
Nome | Subnome | Tipo | Descrição |
---|---|---|---|
Preço Líquido | decimal | O preço líquido de todo o documento de venda antes da aplicação de quaisquer descontos. | |
DiscountAmount | decimal | O valor total do desconto de todo o documento de vendas. | |
TotalMontante | decimal | O valor total de todo o documento de vendas. | |
CartLines | IList<CartLine> | Linhas calculadas que incluem detalhes de preço e desconto. | |
Preço | decimal | O preço unitário do produto. | |
Preço Líquido | decimal | O preço líquido da linha antes da aplicação de quaisquer descontos (= Preço × Quantidade). | |
DiscountAmount | decimal | O valor do desconto. | |
TotalMontante | decimal | O resultado final do preço total da linha. | |
Linhas de Preço | IList<PriceLine> | Detalhes do preço, incluindo a origem do preço (preço base, ajuste de preço ou acordo comercial) e o montante. | |
Linhas de Desconto | IList<DiscountLine> | Detalhes do desconto. |
GetAvailablePromotions
Existem duas APIs GetAvailablePromotions semelhantes :
- Carts/GetAvailablePromotions aceita uma lista de identificadores de linha de carrinho como parâmetro.
- GetAvailablePromotions aceita um objeto DiscountsSearchCriteria como parâmetro.
Carrinhos/GetDisponívelPromoções
Dado um carrinho que tem várias linhas de carrinho, a API Carts/GetAvailablePromotions retorna todos os descontos aplicáveis para as linhas de carrinho.
O principal caso de uso da API Carts/GetAvailablePromotions é a página do carrinho, onde os varejistas mostram descontos aplicados ou cupons disponíveis para o carrinho atual.
A tabela a seguir lista os parâmetros de entrada para a API Carts/GetAvailablePromotions .
Nome | Tipo | Obrigatório/Opcional | Descrição |
---|---|---|---|
chave | cadeia | Obrigatório | O ID do carrinho. |
cartLineIds | IEnumerable<string> | Opcional | Defina isto parâmetro para devolver descontos apenas para as linhas do carrinho selecionadas. |
Corpo resposta amostra
{
"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
A API GetAvailablePromotions devolve todos os descontos aplicáveis para um determinado canal.
O principal caso de uso da API GetAvailablePromotions é a página "Todos os descontos", onde os varejistas mostram todos os descontos para o canal atual.
A tabela a seguir lista os parâmetros de entrada para a API GetAvailablePromotions .
Nome | Subnome | Tipo | Obrigatório/Opcional | Descrição |
---|---|---|---|---|
pesquisaCritérios | DescontosPesquisarCritérios | Obrigatório | ||
ChannelId | Longo | Obrigatório | ||
Keyword | cadeia | Opcional | ||
IsDiscountCodeRequired | bool | Opcional | Indica se o código do cupom é necessário ou não. Se null for passado, todos os descontos serão recuperados, independentemente dos requisitos do código do cupom. | |
Data de Início | DateTimeOffset | Obrigatório | A data de início (inclusive). | |
Data de Fim | DateTimeOffset | Obrigatório | A data de fim (inclusive). |
Corpo do pedido de amostra
{
"searchCriteria": {
"ChannelId": 5637144592,
"StartDate": "1900-01-01T00:00:00Z",
"EndDate": "2154-12-31T00:00:00Z"
}
}
Corpo resposta amostra
{
"@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
A API AddCoupons suporta a adição de uma lista de cupons a um carrinho. Ele retorna o objeto de carrinho depois que os cupons são adicionados.
A tabela a seguir mostra os parâmetros de entrada para a API AddCoupons .
Nome | Tipo | Obrigatório/Opcional | Descrição |
---|---|---|---|
chave | cadeia | Obrigatório | O ID do carrinho. |
Códigos de cupão | IEnumerable<string> | Obrigatório | Os códigos de cupom para adicionar ao carrinho. |
isLegacyDiscountCode | bool | Opcional | Defina isto parâmetro como true para indicar que o cupom é um código de desconto legado. O valor padrão é false. |
RemoveCoupons
A API RemoveCoupons suporta a remoção de uma lista de cupons de um carrinho. Ele retorna o objeto de carrinho depois que os cupons são removidos.
A tabela a seguir mostra os parâmetros de entrada para a API RemoveCoupons .
Nome | Tipo | Obrigatório/Opcional | Descrição |
---|---|---|---|
chave | cadeia | Obrigatório | O ID do carrinho. |
Códigos de cupão | IEnumerable<string> | Obrigatório | Os códigos de cupom para remover do carrinho. |
GetProductPromotions
A API GetProductPromotions foi introduzida na versão 10.0.38 do Commerce. Esta API obtém uma lista de produtos promocionais com determinados descontos de produtos e também pode obter uma lista de IDs de desconto de produtos e contexto de preços como entrada e consultar os produtos promocionais associados. O principal caso de uso da API GetProductPromotions está nas páginas de listagem de produtos, onde os varejistas exibem produtos com descontos. Esta API suporta o modelo de preços base da propriedade e o modelo de preços legado.
A tabela a seguir mostra os parâmetros de entrada para a API GetProductPromotions .
Nome | Subnome | Tipo | Obrigatório/Opcional | Descrição |
---|---|---|---|---|
productDiscountIds | IEnumerable<string> | Obrigatório | A lista de ids de desconto de produtos para procurar produtos promocionais. | |
preçoLookupContext | PriceLookupContext | Obrigatório | O contexto para a fixação de preços. | |
activeDate | DateTimeOffset | Opcional | A data em que a promoção é considerada. |
Restrições e limitações:
- Só pode aceitar um máximo de cinco IDs de desconto de produto como entrada.
- Apenas descontos simples são suportados.
Corpo do pedido de amostra
{
{
"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 resposta amostra
{
"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
}
]
}
]
}
Para obter mais informações, consulte PriceLookupContext.
PriceLookupContext
A classe PriceLookupContext é usada para o modelo de preços base de propriedade nas APIs GetProductPromotions e GetActivePrices .
A estrutura da classe PriceLookupContext é mostrada no exemplo a seguir.
{
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 do pedido de amostra
"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
- Não há um grupo de clientes especificado no parâmetro PriceLookupHeaderContext porque ele foi inferido pelo número da conta do cliente.
- O ChannelId pode ser especificado no parâmetro PriceLookupHeaderContext. Se não for especificado, o ChannelId do contexto da solicitação (o canal atual ao usar Store Commerce) será utilizado.