Ejemplo: Descuentos
Este ejemplo muestra cómo puede implementar un descuento utilizando la infraestructura de cálculo. También puede implementar descuentos utilizando HCL Commerce Accelerator.
Descripción del ejemplo
La tienda desea ofrecer durante un tiempo limitado un descuento en la categoría de productos Books. El periodo de tiempo es de StartDate (Fecha de inicio) a EndDate (Fecha de finalización). El descuento ofrece a los clientes un descuento de 15,00 euros en los pedidos cuando el valor antes de impuestos de los productos de la categoría Books es de 50,00 euros o más.
La moneda del pedido es la moneda local del país o región donde está ubicada la tienda.
El descuento no afecta a ninguno de los cálculos de impuestos. Los impuestos se calculan utilizando los totales de pedido antes del descuento. Este ejemplo no incluye la implementación de estos cálculos de impuestos.
Todos los clientes de la tienda tienen derecho a este descuento.
Implementación del ejemplo de descuento
Si desea utilizar la infraestructura de cálculo para calcular los cargos de envío de este ejemplo, realice los pasos siguientes:
- Defina un código de cálculo.
- Defina una norma de cálculo.
- Defina una escala de cálculo.
- Defina los rangos de cálculo.
- Defina los resultados de búsqueda para los rangos de cálculo.
- Asocie las escalas de cálculo con las normas de cálculo.
- Asocie el código de cálculo con la entrada de catálogo de categoría de productos Books.
Importante: En las secciones siguientes se utilizan identificadores de texto para que sea más fácil ver las relaciones entre los componentes.
Los identificadores de texto a menudo no son válidos en la base de datos de HCL Commerce. Debe convertir los identificadores de texto en enteros o bien permitir que HCL Commerce genere automáticamente los identificadores.
Definición de códigos de cálculo de descuento
En este ejemplo es necesario definir un código de cálculo porque el descuento de este ejemplo es independiente de otros descuentos que pueda estar ofreciendo la tienda. Asimismo, el descuento sólo se aplica a una categoría de productos. En este ejemplo no es necesario invocar el método de cálculo CalculationCodeQualify que debe especificarse como parte de un código de cálculo, por consiguiente no se establece el distintivo de restricción.
A continuación se proporcionan las propiedades clave necesarias para el código de cálculo que se debe definir:
Property | Valor | Descripción del valor |
---|---|---|
Método de agrupación | 0 | El código de cálculo sólo se asociará a un grupo de catálogo (Books). La agrupación de productos es útil cuando el código de cálculo va a asociarse a varios productos padre. |
Distintivo de calificación | 0 | No se invocará el método de cálculo CalculationCodeQualify especificado para este código de cálculo |
Serie de identificación | Promoción de descuento en libros | Es una serie de caracteres que identifica de forma exclusiva este código de cálculo, teniendo en cuenta un uso de cálculo y una tienda o un grupo de tiendas determinados. |
Publicada | 1 | El código de cálculo está activo |
Fecha de inicio | StartDate | Este código de cálculo empieza a estar activo en la fecha de inicio (StartDate) |
Fecha de finalización | EndDate | Este código de cálculo deja de estar activo en la fecha de finalización (EndDate) |
ID de uso de cálculo | -1 | Este es el ID para el uso de cálculo de descuento |
Método de cálculo CalculationCodeQualify | -2 | Es el ID de CalculationCodeQualifyCmd |
Método de cálculo CalculationCodeApply | -4 | Este es el ID para DiscountCalculationCodeApplyCmd |
Método de cálculo CalculationCodeCalculate | -3 | Es el ID de CalculationCodeCalculateCmd |
Definición de normas de cálculo de descuentos
Se necesita una norma de cálculo para calcular este descuento.
A continuación se proporcionan las propiedades clave para la norma de cálculo que se debe definir:
Property | Valor | Descripción del valor |
---|---|---|
ID de código de cálculo | BookDiscCode | Es el código de cálculo de descuento que se ha definido anteriormente |
Número de identificación | 1 | Es un número que, junto con el ID de código de cálculo, identifica de forma exclusiva esta norma de cálculo. |
Distintivo de calificación | 0 | No se invocará el método de cálculo CalculationRuleQualify que especifica para esta norma de cálculo. |
Combinación | 2 | Los resultados de esta norma de cálculo pueden combinarse con otras normas de cálculo que tengan una propiedad de combinación 0 o 2. En este ejemplo, el valor de la propiedad de combinación no tiene ningún efecto porque se está definiendo una sola norma de cálculo para este código de cálculo. |
Método de cálculo CalculationRuleQualify | -6 | ID de método de cálculo para DiscountCalculationRuleQualifyCmd |
Método de cálculo CalculationRuleCalculate | -7 | ID de método de cálculo para CalculationRuleCalculateCmd |
Definición de escalas de cálculo de descuento
En este ejemplo el descuento puede expresarse como una escala de cálculo, tal como muestra esta tabla:
Valor de los artículos de pedido Book | Descuento de importe fijo |
---|---|
inferior a 50,00 | 0,00 |
50,00 o más | 15,00 |
Esta tabla proporciona indicaciones sobre cómo se implementarán las escalas de cálculo y los rangos de cálculo:
- "Valor de artículos de pedido Book" indica que nuestro método de cálculo CalculationScaleLookup utilizará la suma de los precios de todos los artículos de pedido Book.
- "Descuento de importe fijo" indica que nuestro método de cálculo CalculationRange devolverá un importe fijo.
- Existen dos rangos de cálculo en esta escala de cálculo ("inferior a 50,00" y "50,00 o superior").
- Existen dos resultados de búsqueda para esta escala de descuento ("0,00" y "15,00").
La escala de cálculo debe asociarse con una moneda dado que el número de búsqueda es un importe monetario. En este ejemplo la moneda no se indicará pero es necesaria al implementar este ejemplo en WebSphere Commerce.
Deberá definir una escala para cada moneda que soporte la tienda. En este ejemplo, la tienda sólo soporta una moneda, de modo que definiremos sólo una escala.
Las tablas siguientes indican los valores clave para las escalas de cálculo:
Property | Valor | Descripción del valor |
---|---|---|
Uso de cálculo | -1 | Uso de cálculo de descuento |
Serie de identificación | Promoción de descuento en libros | Es una serie de caracteres que identifica de manera exclusiva esta escala de cálculo, teniendo en cuenta un uso de cálculo y una tienda o un grupo de tiendas determinados. |
Método de cálculo CalculationScaleLookup | -10 | NonDiscountedPriceCalculationScaleLookupCmd (el número de búsqueda es la suma de los precios sin descuento de los artículos de pedido Book) |
Definición de rangos de cálculo de descuentos
El descuento tiene dos rangos de cálculo para la escala de cálculo. Los rangos de cálculo son:
- valor de los artículos de pedido Book inferior a 50,00
- valor de los artículos de pedido Book de 50,00 o superior
Los rangos de cálculo no son acumulativos.
A continuación se indican las propiedades clave que debe definir para cada rango de cálculo:
Property | Valor | Descripción del valor |
---|---|---|
ID de escala de cálculo | BookDiscountScale | Escala de cálculo definida anteriormente |
Valor inicial de rango de cálculo | 0,00 | Rango de cálculo que se aplica cuando la suma de los precios sin descuentos de los artículos de pedido es mayor que o igual a 0,00 |
Indicador de rango de cálculo acumulativo | 0 | El rango de cálculo es no acumulativo. |
Método de cálculo CalculationRange | -13 | FixedAmountCalculationRangeCmd (el resultado de búsqueda se trata como un importe monetario fijo) |
Property | Valor | Descripción del valor |
---|---|---|
ID de escala de cálculo | BookDiscountScale | Escala de cálculo definida anteriormente |
Valor inicial de rango de cálculo | 50,00 | Rango de cálculo que se aplica cuando la suma de los precios sin descuentos de los artículos de pedido es mayor que o igual a 50,00 |
Indicador de rango de cálculo acumulativo | 0 | El rango de cálculo es no acumulativo |
Método de cálculo CalculationRange | -13 | FixedAmountCalculationRangeCmd (el resultado de búsqueda se trata como un importe monetario fijo) |
Definición de resultados de búsqueda para rangos de cálculo de descuento
Cada rango de cálculo necesita un conjunto de resultados de búsqueda. En este ejemplo, los resultados de búsqueda son importes monetarios fijos. Cada rango de cálculo tiene un solo valor asociado, de modo que sólo se necesita un resultado de búsqueda para cada rango. Cada resultado de búsqueda debe asociarse con la moneda local del país o de la región para la tienda porque esa es la moneda de los cargos de envío.
Los valores de resultado de búsqueda se suman al precio y a otros importes monetarios existentes que están asociados con un artículo de pedido. Para un descuento, el valor del resultado de búsqueda es un número negativo.
Las tablas siguientes muestran las propiedades clave que debe definir para cada resultado de búsqueda de rango de cálculo. Aquí se ha omitido la moneda, pero ésta debe incluirse en una implementación real.
Property | Valor | Descripción del valor |
---|---|---|
Resultado de búsqueda | 0,00 | No hay descuento |
ID de rango de cálculo | Book0to50Range | Identificador del rango de cálculo al que pertenece este resultado de búsqueda |
Property | Valor | Descripción del valor |
---|---|---|
Resultado de búsqueda | -15.00 | Descuento de 15,00 |
ID de rango de cálculo | Book50+Range | Identificador del rango de cálculo al que pertenece este resultado de búsqueda |
Aviso:
En estas propiedades de resultado de búsqueda de rango de cálculo falta la moneda para los resultados de búsqueda. Se debe definir la moneda de los resultados de búsqueda. En este ejemplo, debe coincidir con la moneda de la escala de cálculo.
Asociación de escalas de cálculo de descuentos con normas de cálculo de impuestos
La escala de cálculo que se ha definido debe asociarse con la norma de cálculo definida en la tabla de base de datos CRULESCALE. En la tabla siguiente se muestra la relación entre la escala de cálculo definida y la norma de cálculo definida.
Escalas de cálculo | Normas de cálculo |
---|---|
BookDiscountScale | BookDiscRule |
Asociación del código de cálculo de descuento
Para utilizar el nuevo código de cálculo de descuento que ha definido anteriormente, debe asociar el código de cálculo a los artículos de pedido. El código de cálculo se asociará indirectamente, porque se aplica a todos los artículos resultantes de una compra de cliente de un producto en el catálogo de tienda, no a un solo artículo.
El código de cálculo de descuento se aplica sólo a Books, de forma que lo asociaremos al grupo de catálogo para esa categoría de producto. Asociaremos indirectamente el código de cálculo creando una entrada en la tabla de base de datos CATGPCALCD.
Llene la tabla de base de datos CATGPCALCD con la información siguiente:
ID de tienda | ID de grupo de catálogo | Código de cálculo |
---|---|---|
Store | BookCategory | BookDiscCalcCode |