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:

  1. Defina un código de cálculo.
  2. Defina una norma de cálculo.
  3. Defina una escala de cálculo.
  4. Defina los rangos de cálculo.
  5. Defina los resultados de búsqueda para los rangos de cálculo.
  6. Asocie las escalas de cálculo con las normas de cálculo.
  7. 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:

Tabla 1. Propiedades de rango de cálculo Book0to50Range
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