Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describen varias API de precios que proporciona el motor de precios de Microsoft Dynamics 365 Commerce.
El motor de precios de Dynamics 365 Commerce proporciona las siguientes API de retail Server que las aplicaciones externas pueden usar para admitir varios escenarios de precios:
- GetActivePrices – Esta API obtiene el precio calculado de un producto, incluidos los descuentos simples.
- CalculateSalesDocument – Esta API calcula precios y descuentos para productos en cantidades determinadas si se compran juntos.
- GetAvailablePromotions – Esta API obtiene descuentos aplicables para productos en el carrito.
- AddCoupons – Esta API agrega cupones a un carrito.
- RemoveCoupons – Esta API elimina cupones de un carrito.
Para obtener más información sobre cómo consumir las API de Retail Server en aplicaciones externas, consulte Consumir API de servidores minoristas en aplicaciones externas.
GetActivePrices
La API GetActivePrices se introdujo en la versión 10.0.4 de Commerce. Esta API obtiene el precio calculado de un producto, incluidos los descuentos simples. No calcula los descuentos de varias líneas y asume que cada producto en una solicitud de API tiene una cantidad de 1. Esta API también puede tomar una lista de productos como entrada y consultar el precio de productos individuales de forma masiva.
La API GetActivePrices admite las funciones comerciales Empleado, Cliente, Anónimo y Aplicación.
El principal caso de uso para la API GetActivePrices es la página de detalles del producto (PDP), donde los minoristas muestran el mejor precio para un producto, incluidos los descuentos efectivos.
Nota
Si ve menos productos devueltos por una llamada GetActivePrices, puede seguir el Validador de configuración de comercialización de canal para validar sus configuraciones de comercialización.
La siguiente tabla muestra los parámetros de entrada para la API GetActivePrices.
| Nombre | Subnombre | Tipo | Obligatorio/Opcional | Descripción |
|---|---|---|---|---|
| projectDomain | ProjectionDomain | Obligatorio | ||
| ChannelId | largo | Obligatorio | ||
| CatalogId | largo | Obligatorio | ||
| productIds | IEnumerable<long> | Obligatorio | La lista de productos para calcular los precios. | |
| activeDate | DateTimeOffset | Obligatorio | La fecha en que se calculan los precios. | |
| customerId | cadena | Opcional | Número de cuenta del cliente. | |
| affiliationLoyaltyTiers | IEnumerable<AffiliationLoyaltyTier> | Opcional | Los niveles de afiliación y fidelización. | |
| AffiliationId | largo | Obligatorio | Id. de afiliación. | |
| LoyaltyTierId | largo | Opcional | Id. de nivel de fidelización. | |
| includeSimpleDiscountsInContextualPrice | bool | Opcional | Establezca este parámetro en verdadero para incluir descuentos simples en el cálculo de precios. El valor predeterminado es false. | |
| includeVariantPriceRange | bool | Opcional | Establezca este parámetro en verdadero para obtener los precios mínimo y máximo entre todas las variantes para un producto maestro. El valor predeterminado es false. | |
| includeAttainablePricesAndDiscounts | bool | Opcional | Establezca este parámetro en verdadero para obtener precios y descuentos asequibles. El valor predeterminado es false. |
Cuerpo de solicitud de ejemplo
{
"projectDomain":
{
"ChannelId": 5637144592,
"CatalogId": 0
},
"productIds":
[
68719489871
],
"activeDate": "2022-06-20T14:40:05.873+08:00",
"includeSimpleDiscountsInContextualPrice": true,
"includeVariantPriceRange": false
}
Cuerpo de la respuesta de muestra
{
"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
La versión de Commerce 10.0.37 presenta la clase PriceLookupContext. Esta clase contiene todos los criterios de búsqueda de la API GetActivePrices. Reemplaza los parámetros anteriores de productIds, activeDate, customerId y affiliationLoyaltyTiers. La clase también tiene propiedades adicionales que los desarrolladores pueden usar para filtrar los descuentos durante la búsqueda de descuentos.
Según las necesidades de su organización, la API GetActivePrices puede aceptar los parámetros anteriores o los nuevos parámetros asociados a la clase PriceLookupContext.
Parámetros de entrada
| Nombre | Subnombre | Tipo | Obligatorio/Opcional | Descripción |
|---|---|---|---|---|
| projectDomain | ProjectionDomain | Obligatorio | ||
| ChannelId | largo | Obligatorio | ||
| CatalogId | largo | Obligatorio | ||
| priceLookupContext | PriceLookupContext | Obligatorio | ||
| HeaderContext | PriceLookupHeaderContext | Obligatorio | Contiene CustomerAccountNumber, AffiliationLoyaltyTierLines y SalesOrderProperties | |
| LineContexts | IEnumerable<PriceLookupLineContext> | Obligatorio | Contiene ProductRecordId, SímboloDeUnidadDeMedida, InventorySiteId, InventoryLocationId, ModoDeEntrega, IdDeCatálogo y PropiedadesDeLíneaDeVentas. | |
| includeSimpleDiscountsInContextualPrice | bool | Opcional | Establezca este parámetro en verdadero para incluir descuentos simples en el cálculo de precios. El valor predeterminado es false. | |
| includeVariantPriceRange | bool | Opcional | Establezca este parámetro en verdadero para obtener los precios mínimo y máximo entre todas las variantes para un producto maestro. El valor predeterminado es false. | |
| includeAttainablePricesAndDiscounts | bool | Opcional | Establezca este parámetro en verdadero para obtener precios y descuentos asequibles. El valor predeterminado es false. |
Para obtener más información, consulte PriceLookupContext.
CalculateSalesDocument
La API CalculateSalesDocument se introdujo en la versión 10.0.25 de Commerce. Esta API calcula precios y descuentos para productos en cantidades determinadas si se compran juntos en un pedido. El cálculo de precios detrás de CalculateSalesDocument API considera los descuentos de una sola línea y los descuentos de varias líneas.
El principal caso de uso para la API CalculateSalesDocument es el cálculo de precios en escenarios donde el contexto completo del carrito no persiste (como cotizaciones de ventas). Los escenarios en el punto de venta (PDV) y el comercio electrónico Commerce también pueden beneficiarse de este caso de uso. Un precio total menor cuando los artículos de carro se calculan como un conjunto (por ejemplo, para paquetes discretos, productos vinculados o recomendados, o productos que ya están en el carro) podrían convencer a los clientes de agregar productos al carro.
El modelo de datos tanto para la solicitud como para la respuesta de la API CalculateSalesDocument es Carro. Sin embargo, en el contexto de esta API, el modelo de datos se denomina SalesDocument. Debido a que la mayoría de las propiedades son opcionales y solo algunas de ellas afectan el cálculo de precios, en la siguiente tabla solo se muestran los campos relacionados con los precios. No incluya ningún otro campo en la solicitud de API.
El alcance de la API CalculateSalesDocument es solo el cálculo de precios y descuentos. Los impuestos y cargos no están involucrados.
La siguiente tabla muestra los parámetros de entrada dentro del objeto que se llama salesDocument.
| Nombre | Subnombre | Tipo | Obligatorio/Opcional | Descripción |
|---|---|---|---|---|
| Id. | cadena | Obligatorio | EL identificador del documento de ventas. | |
| CartLines | IList<CartLine> | Opcional | La lista de líneas para calcular los precios y los descuentos. | |
| Id. de producto | largo | Requerido en el alcance de CartLine | Id. de registro de producto. | |
| ItemId | cadena | Opcional | Identificador de artículo. Si se proporciona un valor, debe coincidir con el valor del parámetro ProductId. | |
| InventoryDimensionId | cadena | Opcional | Identificador de dimensión de inventario. Si se proporciona un valor, la combinación de los valores ItemId y InventoryDimensionId deben coincidir con el valor del parámetro ProductId. | |
| Quantity | decimal | Requerido en el alcance de CartLine | Cantidad del producto. | |
| UnitOfMeasureSymbol | cadena | Opcional | Unidad del producto. De manera predeterminada, si no se proporciona un valor, la API usa la unidad de venta del producto. | |
| CustomerId | cadena | Opcional | Número de cuenta del cliente. | |
| LoyaltyCardId | cadena | Opcional | Identificador de la tarjeta de fidelización. Cualquier cuenta de cliente que esté asociada con la tarjeta de fidelización debe coincidir con el valor del parámetro CustomerId (si se proporciona). La tarjeta de fidelización no se tiene en cuenta si no se encuentra o su estado es Bloqueado. | |
| AffiliationLines | IList<AffiliationLoyaltyTier> | Opcional | Líneas del nivel de fidelización de la afiliación. Si los valores CustomerId y/o LoyaltyCardId se proporcionan, las líneas de nivel de fidelidad de afiliación correspondientes se fusionan con las líneas que se proporcionan en el valor AffiliationLines. | |
| AffiliationId | largo | Requerido en el alcance de AffiliationLoyaltyTier | Id. de registro de afiliación. | |
| LoyaltyTierId | largo | Requerido en el alcance de AffiliationLoyaltyTier | Id. de registro del nivel de fidelización. | |
| AffiliationTypeValue | int | Requerido en el alcance de AffiliationLoyaltyTier | Un valor que indica si la línea de afiliación es del tipo General (0) o del tipo Fidelización (1). Si el parámetro se establece en 0, la API toma el valor AffiliationId como el identificador e ignora el valor LoyaltyTierId. Si el parámetro se establece en 1, la API toma el valor LoyaltyTierId como el identificador e ignora el valor AffiliationId. | |
| ReasonCodeLines | Colección<ReasonCodeLine> | Requerido en el alcance de AffiliationLoyaltyTier | Líneas de código de motivo. Este parámetro no tiene efecto en el cálculo del precio, pero se requiere como parte del objeto AffiliationLoyaltyTier. | |
| CustomerId | cadena | Requerido en el alcance de AffiliationLoyaltyTier | Número de cuenta del cliente. | |
| Vales | Cupón de IList<> | Opcional | Los cupones que no sean aplicables (inactivos, caducados o no encontrados) no se tienen en cuenta en el cálculo del precio. | |
| Código | cadena | Requerido en el ámbito de Cupón | El código de cupón. | |
| CodeId | cadena | Opcional | El identificador del código de vale. Si se proporciona un valor, debe coincidir con el valor del parámetro Code. | |
| DiscountOfferId | cadena | Opcional | El identificador del descuento. Si se proporciona un valor, debe coincidir con el valor del parámetro Code. |
Cuerpo de solicitud de ejemplo
{
"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 el objeto del carrito se devuelve como el cuerpo de la respuesta. Para comprobar los precios y los descuentos, céntrese en los campos de la tabla siguiente.
| Nombre | Subnombre | Tipo | Descripción |
|---|---|---|---|
| NetPrice | decimal | El precio neto del documento de ventas completo antes de aplicar los descuentos. | |
| DiscountAmount | decimal | El importe total del descuento del documento de ventas completo. | |
| TotalAmount | decimal | El importe total del documento de ventas completo. | |
| CartLines | IList<CartLine> | Líneas calculadas que incluyen detalles de precios y descuentos. | |
| Precio | decimal | Precio unitario del producto. | |
| NetPrice | decimal | El precio neto de la línea antes de aplicar los descuentos (= Precio × Cantidad). | |
| DiscountAmount | decimal | Importe de descuento. | |
| TotalAmount | decimal | El resultado final del precio total de la línea. | |
| PriceLines | IList<PriceLine> | Detalles del precio, incluida la fuente del precio (precio base, ajuste de precio o acuerdo comercial) y el importe. | |
| DiscountLines | IList<LíneaDeDescuento> | Detalles del descuento. |
GetAvailablePromotions
Hay dos APIs de GetAvailablePromotions similares disponibles:
- Carts/GetAvailablePromotions acepta una lista de identificadores de línea de carritos como parámetro.
- GetAvailablePromotions acepta un objeto DiscountsSearchCriteria como parámetro.
Carts/GetAvailablePromotions
Dado un carro que tiene varias líneas de carros, la API Carts/GetAvailablePromotions devuelve todos los descuentos aplicables para las líneas del carrito.
El principal caso de uso para la API Carts/GetAvailablePromotions es la página del carrito, donde los minoristas muestran los descuentos aplicados o los cupones disponibles para el carrito actual.
La siguiente tabla muestra los parámetros de entrada para la API Carts/GetAvailablePromotions.
| Nombre | Tipo | Obligatorio/Opcional | Descripción |
|---|---|---|---|
| clave | cadena | Obligatorio | El id. del carro. |
| cartLineIds | IEnumerable<cadena> | Opcional | Establezca este parámetro para devolver descuentos solo para las líneas de carrito seleccionadas. |
Cuerpo de la respuesta de muestra
{
"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
La API GetAvailablePromotions devuelve todos los descuentos aplicables para el canal dado.
El caso de uso principal de la API GetAvailablePromotions es la página Todos los descuentos , donde los minoristas muestran todos los descuentos para el canal actual.
La siguiente tabla muestra los parámetros de entrada para la API GetAvailablePromotions.
| Nombre | Subnombre | Tipo | Obligatorio/Opcional | Descripción |
|---|---|---|---|---|
| searchCriteria | DiscountsSearchCriteria | Obligatorio | ||
| ChannelId | largo | Obligatorio | ||
| Palabra clave | cadena | Opcional | ||
| IsDiscountCodeRequired | bool | Opcional | Indica si el código de cupón es necesario o no. Si se pasa null, la API recupera todos los descuentos, independientemente de los requisitos del código de cupón. | |
| StartDate | DateTimeOffset | Obligatorio | Fecha y hora de inicio (inclusive). | |
| EndDate | DateTimeOffset | Obligatorio | Fecha final (inclusive). |
Cuerpo de solicitud de ejemplo
{
"searchCriteria": {
"ChannelId": 5637144592,
"StartDate": "1900-01-01T00:00:00Z",
"EndDate": "2154-12-31T00:00:00Z"
}
}
Cuerpo de la respuesta de muestra
{
"@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
La API AddCoupons admite agregar una lista de cupones a un carrito. Devuelve el objeto del carrito después de agregar los cupones.
La siguiente tabla muestra los parámetros de entrada para la API AddCoupons.
| Nombre | Tipo | Obligatorio/Opcional | Descripción |
|---|---|---|---|
| clave | cadena | Obligatorio | El id. del carro. |
| couponCodes | IEnumerable<cadena> | Obligatorio | Códigos de vale para agregar al carrito. |
| isLegacyDiscountCode | bool | Opcional | Establezca este parámetro en verdadero para indicar que el vale es un código de descuento heredado. El valor predeterminado es false. |
RemoveCoupons
La API RemoveCoupons admite la eliminación de una lista de cupones de un carrito. Devuelve el objeto del carrito después de quitar los cupones.
La siguiente tabla muestra los parámetros de entrada para la API RemoveCoupons.
| Nombre | Tipo | Obligatorio/Opcional | Descripción |
|---|---|---|---|
| clave | cadena | Obligatorio | El id. del carro. |
| couponCodes | IEnumerable<cadena> | Obligatorio | Códigos de cupón para quitar del carrito. |
GetProductPromotions
La API GetProductPromotions se introdujo en la versión 10.0.38 de Commerce. Esta API obtiene una lista de productos promocionales con descuentos de producto dados. También puede tomar una lista de identificadores de descuento de producto y contexto de precios como entrada y consultar los productos promocionales asociados. El principal caso de uso de la API GetProductPromotions es en las páginas de listado de productos, donde los minoristas muestran productos con descuentos. Esta API admite tanto el modelo de precios basado en propiedades como el modelo de precios heredado.
La siguiente tabla muestra los parámetros de entrada para la API GetProductPromotions.
| Nombre | Subnombre | Tipo | Obligatorio/Opcional | Descripción |
|---|---|---|---|---|
| productDiscountIds | IEnumerable<cadena> | Obligatorio | Lista de identificadores de descuento de producto para buscar productos promocionales. | |
| priceLookupContext | PriceLookupContext | Obligatorio | El contexto de la fijación de precios. | |
| activeDate | DateTimeOffset | Opcional | La fecha en la que se considera la promoción. |
Restricciones y limitaciones:
- Solo se puede aceptar un máximo de cinco ID de descuento de producto como entrada.
- Sólo se admiten descuentos simples.
Cuerpo de solicitud de ejemplo
{
{
"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",
},
}
Cuerpo de la respuesta de muestra
{
"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 obtener más información, consulte PriceLookupContext.
PriceLookupContext
Use la clase PriceLookupContext para el modelo de precios basado en propiedades en las API GetProductPromotions y GetActivePrices .
En el ejemplo siguiente se muestra la estructura de la clase 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>
},
]
}
Cuerpo de solicitud de ejemplo
"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
- La API deduce el grupo de clientes del número de cuenta de cliente, por lo que la solicitud no especifica un grupo de clientes en el parámetro PriceLookupHeaderContext.
- Puede especificar channelId en el parámetro PriceLookupHeaderContext. Si no lo especificas, la API usa channelId desde el contexto de solicitud (el canal actual al usar Store Commerce).