Partilhar via


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.