Códigos de descuento

Un descuento es un incentivo de precio ofrecido a los clientes para promocionar una compra. Un código de descuento es un código de cálculo cuyo uso de cálculo es "descuento". Se utiliza para calcular ajustes de artículo de pedido. Cada fila de la tabla CALCODE representa un código de cálculo. Los códigos de cálculo representan formas de determinar importes monetarios asociados con Artículos de pedido. Se utilizan para calcular descuentos, costes de envío, impuestos sobre la venta e impuestos sobre el envío. Un adjunto de código de cálculo puede limitarse a acuerdos comerciales específicos.

La asociación de un código de descuento a un producto o a un grupo de productos incluye dos dimensiones. En primer lugar, el descuento puede asociarse a una o más entradas de catálogo y grupos de catálogo. La acción de asociar un código de cálculo a un grupo de catálogo tiene el mismo efecto que la acción de asociarlo directamente a todas las entradas de catálogo del grupo de catálogo.

En segundo lugar, los artículos de pedido se agrupan para el cálculo de uno de los cuatro modos siguientes: por acuerdo comercial, por producto, por oferta o por dirección de envío. Esto se especifica mediante el atributo groupBy. Se realiza un cálculo independiente para cada grupo de objetos Artículo de pedido. Si no se especifica ninguna agrupación, se utilizan todos los Artículos de pedido asociados a un objeto Código de cálculo determinado para realizar un solo cálculo. A continuación se describen los atributos utilizados para calcular diferentes tipos de descuentos:

Descuentos calculados por acuerdo comercial
El atributo perTradingAgreement significa que todos los artículos de pedido de un grupo deben tener el mismo acuerdo comercial para que se aplique el código de cálculo.
Example: El acuerdo comercial 123 que tiene asociado un código de descuento, que proporciona un descuento del 10% si se gastan más de 100 euros. Bajo la agrupación perTradingAgreement, si un cliente gasta 175 euros bajo el contrato 123, el descuento será de 17,50 euros del precio total del pedido, lo que da un total de 157,50 euros, después del descuento.
Descuentos calculados por producto
El atributo perProduct significa que todos los artículos de pedido de un grupo deben asociarse con el mismo producto para que se aplique el código de cálculo. (El producto puede ser la entrada de catálogo padre del artículo de catálogo, de acuerdo con el tipo de relación PRODUCT_ITEM en la tabla de base de datos CATRELTYPE (si existe), o solo el propio artículo de catálogo.)
Example: un código de descuento está asociado al objeto Entrada de catálogo 1 y al objeto Entrada de catálogo 2, y el código de descuento especifica que se proporciona un descuento del 15% cuando se compra un número superior a 10. Si el atributo perProduct es true, al comprar 7 de la Entrada de catálogo 1 y 3 de la Entrada de catálogo 2 no se tendría derecho al descuento del 15%. Solo una cantidad de Entrada de catálogo puede ser 10 o más para recibir el descuento. Sin embargo, si el atributo perProduct es false, los dos importes cuyo total sea 10 tendrán derecho al descuento.
Descuentos calculados por oferta
La agrupación del atributo perOffer es apropiada para los códigos de cálculo de impuestos.
Example: La frase "No hay impuestos en los zapatos de niño de menos de 30 euros" hace referencia al precio de un solo par de zapatos de niño. Si en el pedido hay varios pares de zapatos de niño, cada par que esté por debajo del precio límite estará exento de impuestos. Dado que cada oferta representa un precio por unidad diferente, los Artículos de pedido se agrupan por el objeto Oferta para determinar los importes de impuestos basados en el precio por unidad.
Descuentos calculados por dirección de envío
Aunque normalmente se utiliza para el cálculo de costes de envío, el atributo perShippingAddress groupBy también se puede utilizar para agrupar artículos de pedido para códigos de descuento de acuerdo con las direcciones de envío.
Example: un descuento a nivel de pedido se define como un "10% de descuento en compras por un total de 100 euros o más con la misma dirección de envío" y un pedido contiene cuatro artículos: artículo 1 (precio 40 euros, dirección de envío 10), artículo 2 (precio 50 euros, dirección de envío 10), artículo 3 (precio 40 euros, dirección de envío 20) y artículo 4 (precio 60 euros, dirección de envío 20). Dado que tienen la misma dirección de envío, los artículos de pedido 1 y 2 forman un grupo y los artículos de pedido 3 y 4 forman otro grupo. El cálculo de descuento se realiza dos veces, una para cada grupo. Puesto que el importe total para el primer grupo es inferior a 100 euros, los artículos 1 y 2 no tienen derecho a un descuento del 10%. Sin embargo, dado que el importe total del segundo grupo es 100 euros, los artículos 3 y 4 tienen derecho cada uno de ellos a un descuento del 10%. Por otra parte, si no se hubiera especificado el valor del atributo perShippingAddress groupBy, los cuatro artículos hubieran tenido derecho al descuento, independientemente de las direcciones de envío.

Los productos pueden tener más de un descuento asociado. De forma parecida, los grupos de miembros pueden ser susceptibles para más de un descuento. Cuando sea aplicable más de un código de cálculo de descuento a un objeto Pedido, los cálculos de descuento se realizarán en secuencia ascendente de sus atributos de secuencia de objeto de Código de cálculo. Esto limita el uso de un código de cálculo solo a determinados grupos de que se definen en la tabla CALCODEMGP. Como sucede con todos los códigos de cálculo, se pueden asociar varios códigos de descuento con cada producto y se puede restringir el uso de los códigos de descuento solo a determinados grupos de miembros.