Saltar a contenido

Manual integración modulo de promociones.

Introducción

Los conceptos involucrados en el módulo promocional, son las promociones, las ofertas, los cupones, los códigos promocionales, y los regalos.

Las promociones contienen las definiciones de los descuentos, los productos a que se aplican etc.; las ofertas, códigos promocionales y los cupones, son las aplicaciones reales y siempre se refieren a una promoción.

Definición de la promoción

Las promociones permiten ofrecer al usuario una ventaja sobre el surtido estándar, para ello se definen tanto los productos donde se pueden aplicar, así como el efecto de la promoción misma: por ejemplo el efecto puede ser cierto tipo de descuento o un regalo.

Una promoción puede tener vinculadas las siguientes entidades:

  • Ofertas

Cuando una promoción está vinculada a una oferta, esta será disponible para cualquier usuario.

  • Códigos promocionales

Cuando una promoción está vinculada a un código promocional será disponible solo para los usuarios que posean e introduzcan dicho código.

  • Cupones.

Siempre están vinculados a una promoción. La promoción sólo será disponible para quien disponga de dicho cupón.

Los cupones, códigos promocionales y ofertas, tienen siempre una vigencia (que eventualmente puede no expirar nunca).

De esta manera, una vez definida y cargada una promoción, esta será reusable siempre que se desee vincular algo (oferta, cupón, código promocional) a ella misma.

Por ejemplo podríamos cargar una promoción 3X2 sobre el agua, y en un segundo momento vincularle una oferta con cierta vigencia. Más adelante, una vez caducada la oferta, el cliente podría decidir reusar la misma promoción para una nueva oferta, o unos cupones para algunos clientes, sin necesidad de reenviar la definición de la promoción. Esto proporciona agilidad, sobre todo para promociones muy complejas de definir.

Una promoción que no tiene vinculado nada vigente, por sí sola no sirve de nada. Pero queda a disposición para ser lanzada en cualquier momento.

En seguida vamos a introducir los conceptos, o parámetros, en base a los cuales el sistema define una promoción. Las definiciones presentadas en las siguientes tablas tienen solo carácter orientativo, para introducir el lector a los conceptos que se detallarán en las especificaciones formales del formato Json.

Conceptos genéricos de una promoción

Conceptos promoción Descripción/Ejemplo
Donde Aplica Expresa cuál es el concepto que dispara la promoción. Pueden ser productos o totales.
Tipo Descuento Expresa la manera en la cual los productos o conceptos de Donde Aplica son involucrados en la promoción. Por ejemplo 3X2 o pack.
Como Aplica Expresa la acción concreta que desencadena la aplicación de la promoción. Por ejemplo descuento neto o porcentual.
Alcance de un uso Expresa si se tiene que aplicar el descuento sobre una sola unidad, sobre la linia, sobre el total del ticket o sobre portes (entrega o recogida).
Condiciones de la promoción Se trata de condiciones mínimas para poder aplicar la promoción. Por ejemplo hay que comprar un número mínimo de unidades, o gastar cierto importe.
Rango Aplicación Expresa los límites de aplicación de la promoción. Por ejemplo la promoción se aplica hasta un límite de 50 euros.
Variables de control de la promoción Expresa valores que condicionan y/o limitan el comportamiento de la promoción. Ej. Máximos usos por compra, u otro ejemplo, en el caso M x N, define M y N

A continuación se detallan los conceptos arriba expuestos.

Donde Aplica

Donde aplica especifica dónde se va a calcular el descuento. La promoción puede aplicar a un conjunto de productos, o a otros conceptos del ticket como el total o los portes. Donde aplica puede asumir los siguientes valores:

ID Nombre Descripcion
1 Producto Promoción que aplica a un producto. Se debe especificar el código del producto.
2 Categoría Promoción que aplica a una categoría.
3 Jerarquía Promoción que aplica a una o varias jerarquías.
4 Total Promoción que aplica al total del ticket (suma de importes a precio normal).
5 Lote Promoción que aplica a un lote.
6 Agrupación Promoción que aplica a una agrupación.
9 Importe neto Promoción que aplica al importe final del pedido (importe a pagar).
10 Informativa Promoción informativa que no modifica importes.
11 Bundle Promoción que aplica a un Bundle.

Tipo descuento

Se soportan promociones con los siguientes tipos de descuento.

  • MxN

Por ejemplo promoción 3 x 2 en productos de limpieza.

3 x 2 significa que se aplicará un descuento a 1 unidad en función del campo Como aplica, que podrá ser

  • Porcentaje

Ejemplo: Si descuento = 70% será interpretado como que por la compra de tres unidades la 3ª unidad vale el 70% menos

  • precio neto.

Ejemplo: Si importe promoción = 0 será interpretado como que por la compra de 3 unidades una es gratuita, siendo así un 3x2 clásico.

Ejemplo: Si importe promoción = 0,5 será interpretado como que por la compra de tres unidades una vale 0,5.

  • Descuento neto

En el caso que en las variables de control se especifique la oferta como cruzada, el descuento se aplicará a los artículos más baratos.

  • Tramo Importe

El descuento se aplicará a un tramo de importe en función del campo Como aplica

Por ejemplo cada 10 euros gastados, se descuenta el 10%

El descuento se aplicaría por tramos de 10 euros. Es decir si se gastan 12 euros, no hay descuento alguno sobre los 2 euros que sobran. Si se gastan 25 euros, el descuento se aplica a 20 euros, y no a los cinco que sobran.

El importe se deduce por el campo Donde aplica. Si aplica a la categoría charcutería, entonces el importe será el gastado en esta categoría.

  • Tramo Unidades

Es el mismo concepto del tramo importe, pero por unidades.

Como se calcula el número de unidades depende del campo donde aplica.

Por ejemplo descuento de un euro cada 5 unidades. Si Donde aplica es categoría limpieza, el descuento se aplica cada cinco unidades de productos de limpieza. Si Donde aplica es total, entonces las unidades son las del carrito entero.

  • Pack

El descuento pack solo se permite cuando donde aplica tiene valor = lote.

La promoción sólo aplica cuando se cumple por completo los productos definidos en el lote (con sus cantidades)

Se define por ejemplo un lote con código ‘zumos-varios’: (2 zumos naranja pascual de 1litro, 1 zumo manzana pascual de 1 litros, y un zumo de piña marca pascual 1l)

Se puede definir una promoción con donde aplica = lote, tipo descuento = pack, como aplica = precio neto = 3 euro. En este caso el cliente se lleva todo el pack por 3 euro.

  • Unitario

Descuento que se aplica cuando se cumplen las condiciones

Ejemplo: Descuento de 25% en chocolate Nestle postres. Donde aplica = producto (código chocolate nestle postres), Como aplica = porcentaje (25).

Como aplica

Expresa la acción concreta de la promoción. Puede tener los siguientes valores:

  • descuento neto

Se especifica en el campo importePromocion, y debe informarse en la divisa corresponidente.

  • precio neto

Es el precio que se aplicará a las unidades que aplica la promoción. Se especifica en el campo importePromocion, y debe informarse en la divisa corresponidente.

  • descuento porcentaje

El porcentaje se especifica en el campo descuento.

  • regalo.

En este caso se deberá especificar el código de regalo en el campo oportuno

41 – Regalo Tipo 1

46 – Regalo Tipo 6

47 – Regalo Tipo 7

  • % próxima compra.

Se utilizar para la generación de vales para compras futuras. Esta promoción no genera ningún importe

Alcance de un uso de la promoción

En el caso de cupones y códigos promocionales, se pueden dar casos de usos limitados; por ejemplo un cupón se puede usar solo diez veces. Puede ser también que muchos usos puedan ser consumidos en la misma compra. Para estos casos se tiene que definir el alcance de un uso, es decir cuántos productos se pueden descontar con un uso.

Alcance de un uso Descripción/Ejemplo
Unidad Un uso aplica el descuento a una unidad. Puede ser un artículo, un pack, un MxN (por ejemplo a un 3X2) o un tramo.
Línea Ticket Un uso aplica el descuento a todos las unidades de una sola línea del ticket
Ticket Un uso aplica el descuento a todo lo que se puede en el ticket.
Gastos entrega Un uso aplica el descuento al importe de los gastos de entrega.
Gastos recogida Un uso aplica el descuento al importe de los gastos de recogida.

Condiciones de la promoción

Las condiciones mínimas para que la promoción sea aplicable se expresan como número de unidades mínimas, como mínimo número de productos distintos, o importe mínimo.

  • Nº unidades mínimas

Con número de unidades mínimas nos referimos a la cantidad de unidades independientemente de si son el mismo producto.

  • Mínimo número de productos distintos

Con mínimo número de productos distintos nos referimos al número de productos diferentes, pero dentro de la promoción, sin considerar los productos fuera de la promoción, a menos que la promoción aplique al total

Ejemplo:

Descuento comprando un mínimo de 3 productos diferentes en charcutería. Se expresaría:

  • Donde Aplica = categoría; categoría = charcutería
  • mínimo número de productos distintos = 3.

  • Importe mínimo.

La condición de importe mínimo para aplicar una promoción tiene las siguientes interpretaciones posible en función del paramentro donde aplica:

  • Para “donde aplica” portes, recogida, total (7,8,4) se considera el importe del total de la compra (suma de importes de los productos menos los descuentos por promociones a total y producto)
  • Para “donde aplica” importe neto (9) se considera el importe del total del tiquet considerando la suma de todos los productos menos los descuentos y mas los gastos de envio/recogida y menos sus promociones.
  • Para “donde aplica” categoría, jerarquía, lote, agrupación (2,3,5,6) se considera el importe de lo comprado en el ticket para esa selección. En este caso es obligatorio informar el campo “cruzada” con el valor 1.

Rango de aplicación de una promoción

La aplicación de una promoción puede limitarse desde un mínimo o hasta un máximo y tanto por importe como por unidades.

Ejemplo:

50% de descuento a partir de la décima botella de Coca cola. Si se compran 15 coca colas, el descuento aplicará solo a cinco unidades.

5% de descuento a partir de la 1ª unidad y hasta un máximo de 20 unidades.

Rango aplicación de la promoción Descripción/Ejemplo
Desde importe El descuento se aplica al rango de importe después del valor especificado por este campo. El importe es él gastado en donde aplica (puede ser una categoría, el total, los portes etc.).
Hasta importe El descuento se aplica al rango de importe hasta el valor especificado por este campo. El importe es él gastado en donde aplica (puede ser una categoría, el total, los portes etc.).
Desde nº unidades El descuento se aplica a las unidades después del valor especificado por este campo. Se trata de las unidades de productos de donde aplica la promoción. En el caso la promoción aplique al total serían las unidades de todo el carrito
Hasta nº unidades El descuento se aplica a las unidades después del valor especificado por este campo. Se trata de las unidades de productos de donde aplica la promoción. En el caso la promoción aplique al total serían las unidades de todo el carrito

Variables de control de la promoción

Se trata de variables que definen de una manera más concreta la promoción. Por ejemplo si es un tipo de descuento M x N, habrá que especificar los valores de M y N. Análogamente para los tramos habrá que especificar su anchura.

En este juego de variables también se especifica el concepto de promoción cruzada. Una promoción se define cruzada cuando involucra diferentes productos en el mismo descuento concreto. Se piensa por ejemplo en los yogures de distintos sabores. Un ejemplo de promoción cruzada es un 3X2 sobre los yogures Danone, aunque sean de diferentes tipos. Se piense también en un descuento desde la unidad 20 en la sección envasado sin importar que productos sean. Si una promoción es cruzada hay que especificarlo.

Otro comportamiento que se puede definir es relativo al máximo número de usos por compra. Los cupones y los códigos promocionales pueden tener usos limitados, pero por ejemplo se puede no querer que se usen más de una vez en la misma compra. O limitar como se quiera su uso en la misma compra.

Variable Descripción/Ejemplo
Unidades M Valor M para la promoción (M x N)
Unidades N Valor N para la promoción (M x N)
Cruzada Específica si para el cálculo del descuento hay que considerar diferentes productos o no. Hay que tener en cuenta que el tipo descuento pack siempre es cruzado, y el tipo descuento unitario (estándar) nunca lo es. Si Donde Aplica no representa un conjunto, la promoción no puede ser cruzada
Tramo importe Anchura del tramo expresado en importe para las promociones con Tipo Descuento tramo importe
Tramo unidades Anchura del tramo expresado en unidades para las promociones con Tipo Descuento tramo unidades
Máximo de usos por compra Máximos de usos por compra
Inmediato Descuento inmediato o diferido
Acumula Para las promociones de fidelización define si genera un vale o acumula a la cuenta de fidelización
Uso Exlusivo Importe mínimo Define si el importe mínimo de esta promoción puede compartirse con otra promoción o si lo consume la promoción ya no esta disponible para otras promociones.
Precio Oferta Define si la promoción es el precio oferta. Este tipo de promociones son las que aparecen en el grid de producto con precio tachado. En este caso la promoción solo es valida para los siguientes valores de la variable “Donde Aplica” 1 – Producto Adicionalmente se controla
Origen Precio Descuento Define el precio a partir del cual se calcula el descuento de la promoción en el caso de no aplicar a total. 1 → Precio articulo. El descuento se calcula a partir del precio del artículo. 2 → Precio oferta artículo El descuento se calcula a partir del precio oferta del artículo. 3 → Ultimo precio calculado. El descuento se calcula a partir del último precio calculado después de aplicar todas las ofertas para ese articulo Solo soportado para promociones diferidas (“inmediato” = 0)

Variables de visualización de la promoción

Se trata de variables que permiten definir la visualización de la promoción en las pantallas de la TOL.

Variable Descripción/Ejemplo
Visible Define si la promoción es visible en el widget de producto
Visible widget Define si la promoción es visible en el widget de promociones
Visible Validar Define si la promoción es visible cuando no esta aplicada en la pantalla de validar carrito
Grupo Agrupación promoción Permite ver el total de varias promociones en una única línea en la pantalla validar carrito.
Tipo creatividad promoción Este código se utiliza para poder definir diferentes creatividades.

Ilustraciones de las promociones

Existen 2 tipos de integración de ilustraciones de promociones en la TOL:

INTEGRACIÓN BÁSICA

En esta integración básica donde se pueden configura un icono en una promoción. Para ello se utiliza la combinación de dos campos:

  • imagen: identifica el nombre de la imagen que se asocia a la promoción en los diferentes lugares de la TOL.
  • descripcionMinima: es la descripción más reducida de la promoción.

Con la combinación de estos dos campos obtenemos las siguientes casuísticas:

Image

Se informa descripción mínima No se informa descripción mínima
Se informa imagen AZUCARERA Se muestra la imagen. La descripción mínima se oculta KELLOGS Se muestra la imagen. La descripción mínima se oculta
No se informa imagen CERVEZA MAHOU Ocultar imagen Background color Mostrar la descripción mínima (2x1) LECHE CELTA Ocultar imagen Background color por defecto Ocultar texto (esta configuración no sería correcta, debería tener por lo menos una de las dos)

Este es el comportamiento por defecto, al tratarse de comportamientos frontales se podrían configurar en cada una de las instalaciones.

Atributos adicionales de la promoción

La siguiente tabla define los atributos adicionales que pueden aplicar a una promoción:

Id de atributo Descripción
max_usos_globales Determina cuántas veces puede aplicarse una promoción.
max_usos_usuario Determina cuántas veces puede aplicarse una promoción por un usuario concreto.
numero_maximo_pedidos_usuario Define cuántos pedidos máximos debe tener un usuario para que aplique la promoción.

Definición de cupones

Las cupones son ofertas personalizadas a un usuario en concreto.

En un cupón se puede informar las siguientes variables :

  • Fecha de validez

Periodo durante el que el cupón será aplicable al usuario.

  • Usos

Número de usos que puede realizar el usuario de ese cupon.

  • Usos automáticos

Permite definir si el cupón se aplica automáticamente en el caso que se cumplan las condiciones de disparo o es el usuario que tiene que aplicarlo manualmente.

  • Zonas

Permite informar las tiendas donde el usuario podrá utilizar el cupon, en caso de no informarse el cupón será valido para todas las tiendas.

  • Codigo de validación

Opcionalmente puede informarse un código de validación de manera que el usuario solo podrá utilizar el cupon si tiene el código de validación..

Cupones tipo ALL

Es posible cargar cupones genéricos para todos los clientes, denominados tipo ALL, en la carga se utiliza el usuario #ALL# (valor a definir en la implantación)

Cuando existe un cupón de este tipo (puede ser para una tienda o para todas) y el usuario hace login, entonces se genera una copia del cupón ALL y se le asigna al usuario. Este cupón tendrá las mismas condiciones que el cupon cargado para el usuario ALL.

De esta forma, con un cupón ALL podemos controlar los usos del cupon por parte de cada usuario en concreto.

Cupones tipo INPUT

Para los cupones tipo ALL es posible informar un código de validación de forma que el usuario tenga que introducir un código para poder utilizar dicho cupón.

Detalle del formato JSON

Datos de la promoción

En la siguiente tabla se detalla de manera completa el listado de campos a informar para definir una promoción.

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código “codigo” Código que identifica la promoción de forma distintiva para intercambio con la TOL No se puede repetir Literal (50 caracteres max.) Sí
Canal “canal” Canal en el que se hace efectiva la promoción. Numérico entero Sí
Dónde aplica promoción “dondeAplicaPromocion” Posible valores: 1 → Producto 2 → Categoría 3 → Jerarquía 4 → Total compra 5 → Lote 6 → Agrupación 9 → Importe neto 10 → Informativas 11 → Bundle Numérico entero Sí
Tipo descuento promoción “tipoDescuentoPromocion” Posibles valores: 1 → MxN: Especifica que el descuento se aplica a las ‘M-N’ unidades de productos. En el caso que la promoción sea cruzada, los productos descontados serán los más baratos. 2 → Tramo Importe: Por tramo de importe gastado en Donde Aplica. 3 → Tramo Unidades: Por tramos de unidades de productos de Donde Aplica. 4 → Pack: Para obtener el descuento hay que llevarse todos los artículos especificados en Donde Aplica. 5 → Unitario: Descuento estándar unidad por unidad. Numérico entero Sí
Alcance del uso de la promoción “alcanceUsoPromocion” Expresa el alcance de la aplicación de una promoción una vez. Posibles valores: 1 → Unitario: Un uso aplica el descuento a la unidad del tipo descuento. Por ejemplo a una unidad de un producto, a una unidad de pack, a una unidad de M x N o a una unidad de tramo. 2 → Linea de ticket: Un uso aplica el descuento a todos las unidades de una sola línea del ticket. 3 → Ticket: Un uso aplica el descuento a todo lo que se puede en el ticket. 41 → Gastos envío: Un uso aplica el descuento a los gastos de envío. 42 → Gastos recogida: Un uso aplica el descuento a los gastos de recogida. Numérico entero Sí
Como aplica la promoción “comoAplica” Expresa la acción concreta que desencadena la aplicación de la promoción Posibles valores: 1 → Descuento neto 2 → Precio neto 3 → Porcentaje 4 → Regalo 5 → Porcentaje descuento en próxima compra 111 → Descuento neto de grupo Bundle 112 → Precio neto de grupo Bundle 113 → Porcentaje de grupo Bundle Los valores 111, 112 y 113 solo son válidos con “dondeAplicaPromocion” = 11, y en ellos el importe o el porcentaje lo define cada grupo del Bundle y no la promoción Numérico entero Sí
Máximo de usos por compra “maxUsosCompra” Cuantas veces puede ser utilizada una promoción en una compra (-1 para ilimitado). Actualmente está disponible para promociones como: producto, bundles y conjunto de productos(lote, jerarquia, agrupación, etc). Ejemplos: 2x1, 10%, 2ud al 50%, 2x20€ MXN, 2x20€ Tramo (Cruzadas y no cruzadas). En promociones de descuento porcentual, se limita las unidades como hace "HastaUnidades". En el caso de descuento porcentual cruzada, cogen las unidades con el menor importe. Si es cruzada indica N usos por compra, si es no cruzada indica N usos por linea. Si se desea limitar los usos de una promoción no cruzada a N usos por compra (Aplicar en N lineas, por ejemplo promoción a productos de un lote, pero que solo aplique en los N más baratos), dicha promo tiene que tener idScopeUsoPromocion=ALCANCE_USO_UNITARIO. Numérico entero Sí
Inmediato “inmediato” Si el descuento se aplica en la compra actual o en otro momento 1 → Oferta aplica a la compra actual 0 → Oferta genera descuento para futuras compras (fidelización, vales) Booleano (1,0) Sí
Acumula “acumula” Para el caso de ofertas diferidas (fidelización) define si se suma al total o individualmete. 0 → La promoción suma el importe al total diferido (fidelización) 1 →La promoción genera un importe por si mismo (ej. Vale) Si la promoción es “inmediato” = 0 y acumula no viene informado se informa 0 Numérico entero No
Grupo promoción “grupoPromocion” Codigo de agrupación de la promoción. Este código se utiliza para poder totalizar varias promociones en una única línea en la pantalla validar carrito. Literal (50 caracteres máx.) No
Tipo creatividad promoción “tipoCreatividadPromocion” Codigo de creatividad de la promoción. Este código se utiliza para poder definir diferentes creatividades. Literal (10 caracteres) No
Uso exclusivo importe mínimo "usoExclusivoImporteMinimo” Define si el importe mínimo de esta promoción puede compartirse con otra: 0 → No exclusivo (el importe se comparte con otras promociones). 1+ → Cualquier valor superior a 0 indica con que otras promociones se calcula el importe minimo exlusivo. Por ejemplo si se usa valor 1 →Exclusivo (el importe es “quemado” y no esta disponible para otras promociones de valor 1). Si se usa valor N, el importe es “quemado” y no esta disponible para otras promociones de con valor N.
Si no aplica se informa 0. Numérico entero No
Precio Oferta “esPrecioOferta” Define si la promoción es el precio oferta 0 → No es precio oferta 1 → Precio oferta Si no aplica se informa 0 Booleano (1,0) Sí
Origen Precio Descuento “origenPrecioDescuento” Define el precio a partir del cual se calcula el descuento de la promoción. 1 → Precio articulo Valor obligatorio si “esPrecioOferta” = 1 2 → Precio oferta artículo 3 → Ultimo precio calculado. Solo soportado para promociones diferidas (“inmediato” = 0) Si el precio definido no existe para el artículo se utiliza el precio anterior. Ejemplo promoción con origenPrecioDescuento = 2 pero artículo no tiene Precio Oferta. La promoción aplica sobre precio articulo. Numérico entero Si
Destacado “destacado” Visualización destacada del producto con promoción Booleano (1,0) Sí
Unidades mínimas “unidadesMinimas” Unidades mínimas para hacer efectiva la promoción Sin no hay mínimo poner 0. Sólo compatible con el Tipo Descuento = Unidades Numérico decimal (formato: 0.00) Sí
Mínimo producto distinto “mininimoProductosDistintos” Número de productos distintos para hacer efectiva la promoción. Si no aplica es informa 1 Numérico entero Sí
Importes “importes” Importes que aplican en la promoción Tipo Moneda No
Desde número unidades “desdeNumUnidades” El descuento se aplica a las unidades después del valor especificado por este campo. Sólo compatible con el Tipo Descuento de Unidaes Numérico decimal (formato: 0.00) No
Hasta número unidades “hastaNumUnidades” El descuento se aplica a las unidades hasta el valor especificado por este campo. Numérico decimal (formato: 0.00) No
Unidades M “unidadesM” Valor M para la promoción (M x N) Numérico entero No
Unidades N “unidadesN” Valor N para la promoción (M x N) Numérico entero No
Tramo unidades “tramoUnidades” Valor del tramo en unidades donde se aplica promoción si el Tipo Descuento es tramo unidades; nulo si es otro Tipo Descuento. Numérico decimal (formato: 0.00) No
Descuento “descuento” Descuento que se aplica a la promoción del tipo porcentaje. Este campo es obligatorio si Como Aplica 3: descuento porcentaje; 5: % próxima compra. En esta caso es un valor informativo para pintar el vale nulo si es otro Como Aplica. Numérico decimal (formato: 0.00) No
Producto “producto” Código del producto al que se aplica la promoción. Este campo es obligatorio si Donde Aplica es producto;nulo si es otro Tipo Descuento. Literal (10 caracteres máx.) No
Lote “lote” Código del Lote donde se aplica la promoción. . Este campo es obligatorio si Donde Aplica es lote;nulo si es otro Tipo Descuento. Literal (30 caracteres máx.) No
Categoría “categoria” Identificador de la categoría donde se aplica la promoción. Este campo es obligatorio si Donde Aplica es categoría;nulo si es otro Tipo Descuento. Numérico entero No
Agrupación “agrupación” Agrupación donde se aplica la promoción. Este campo es obligatorio si Donde Aplica es agrupación;nulo si es otro Tipo Descuento. Literal (15 caracteres máx.) No
Código Jerarquía “jerarquiaCodigo” Código de la Jerarquía donde se aplica la promoción dentro del árbol de jerarquías propio de la tienda física. Literal (30 caracteres máx.) No
Nivel Jerarquía “jerarquiaNivel” Nivel de la Jerarquía donde se aplica la promoción dentro del árbol de jerarquías propio de la tienda física. Numérico entero No
Lista de jerarquías “jerarquias” En caso de promociones a múltiples jerarquías: Lista de jerarquías donde se aplica la promoción. Tipo Lista jerarquias No
Tipo Lista Regalos “regalos” Nodo tipo lista para regalar productos a los usuarios en función de la compra realizada, ya sea dependiendo de los productos añadidos al carrito Tipo Lista regalos No
Tipo Bundle “bundle” Definición de la promoción de tipo Bundle. Donde aplica = 11 Tipo Bundle No
Cruzada “cruzada” Especifica si para el cálculo del descuento hay que considerar diferentes productos o no. Hay que tener en cuenta que el tipo descuento pack siempre es cruzado, y el tipo descuento unitario (estándar) nunca lo es. Si Donde Aplica no representa un conjunto, la promoción no puede ser cruzada Si no aplica se informa 0 Booleano (1,0) No
Descripciones “descripciones” Descripción de la promoción. Tipo Literal Multi-idioma Si
Fecha Vigencia Vale desde “fechaValeDesde” Fecha de inicio de vigencia del vale que genera la oferta. Se añade 00:00:00 en el caso de informar dd/mm/aaaa Fecha (dd/mm/aaaa hh:mm:ss) No
Fecha Vigencia Vale hasta “fechaValeHasta” Fecha fin de vigencia del vale que genera la oferta. Se añade 23:59:59 en el caso de informar dd/mm/aaaa Fecha (dd/mm/aaaa hh:mm:ss) No
Codigo promoción origen “codigoOrigenPromocion” Codigo de la promoción origen que generó el vale o cupon Literal (50 caracteres max.) No
Codigo promoción cliente “codigoPromocionCliente” Codigo de la promoción/oferta en los sistemas del cliente Literal (50 caracteres max.) No
Codigo segmentacion “codigoSegmentacion” Codigo de segmentación para los usuarios que tengan dicha promoción. Literal (100 caracteres max.) No
Imagen “imagen” Nombre de la imagen que se asocia a la promoción. Si no se informa se asociará la imagen: “codigoPromocion.png” Literal (30 caracteres máx.) No
Acción “accion” Alta, baja o modificación Literal (1 carácter ) “A”, “B” Sí

Importes

El campo importes definido en el json depende de la divisa y se informa con un campo Tipo Moneda. Para cada uno de ellos se tiene que especificar un valor para cada divisa que se quiere soportar.

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Divisa “divisa” Código que identifica la divisa (ISO-4217) Literal (3 caracteres máx.) Sí
Desde importe “desdeImporte” El descuento se aplica al rango de importe después del valor especificado por este campo. El importe es el de los productos involucrados en el descuento. Decimal (10,5) No
Hasta importe “hastaImporte” El descuento se aplica al rango de importe hasta el valor especificado por este campo. El importe es el de los productos involucrados en el descuento. Decimal (10,5) No
Importe promoción “importePromocion” Se aplica la promoción con un determinado valor. Este campo es obligatorio si Como Aplica es precio neto o descuento neto;nulo si es otro Como Aplica. Decimal (10,5) No
Importe mínimo “importeMinimo” Importe mínimo para efectuar la promoción Decimal (10,5) No
Tramo importe “tramoImporte” Valor del tramo en importe donde se aplica promoción si el Tipo Descuento es tramo importe; nulo si es otro Tipo Descuento. Decimal (10,5) No

Descripciones

Las descripciones se deben informar en fución de cada idioma soportado para ello se utiliza un campo de Tipo Literal Multi-idioma:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Idioma “idioma” Identificador del idioma (ISO 639-1) Literal (2 caracteres máx.) Sí
Descripción Mínima “descripcionMinima” Descripción Mínima de la promoción, se utiliza para pintar sobre los iconos. Literal (10 caracteres) Si
Descripción Breve “descripcionBreve” Descripción breve de la promoción Literal (50 caracteres) Si
Descripción Larga “descripcionLarga” Descripción larga Literal (150 caracteres.) No
Descripción Vale “descripcionVale” Descripción detallada del vale que genera la promoción Permite código html que se visualizara en la TOL. Literal (200 caracteres.) No
Descripción Vale Extendida “descripcionValeExtendida” Descripción detallada del vale que genera la promoción Permite código html que se visualizara en la TOL. Literal (600 caracteres.) No
Atributos de la promocion “atributos” Atributos de la promocion Tipo Mapa clave/valor No
Zonas de Envío “zonasEnvio” Zonas de envío donde aplica la promoción. Lista Tipo Código Zona Envío No

Jerarquías

En el caso de que un promoción aplique a varias jerarquias se utilizara un lista informada en el campo Tipo Lista jerarquias:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código Jerarquía “jerarquiaCodigo” Código de la Jerarquía donde se aplica la promoción dentro del árbol de jerarquías propio de la tienda física. Literal (30 caracteres máx.) No
Nivel Jerarquía “jerarquiaNivel” Nivel de la Jerarquía donde se aplica la promoción dentro del árbol de jerarquías propio de la tienda física. Numérico entero No

Regalos

Este nodo tiene el objetivo de poder regalar productos a los usuarios en función de la compra realizada, ya sea dependiendo de los productos añadidos al carrito, o del importe total alcanzado en el mismo.

Dichos productos se informarán en el JSON siguiendo el siguiente formato:

Tipo Lista Regalos:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código de producto “codigo” Código del producto / regalo / obsequio Literal (50 caracteres máx.) Si
Cantidad “cantidad” Cantidad a regalar en formato decimal Decimal (10,2) Si

Bundles

El objetivo del nodo bundles es que los clientes pueden vender un conjunto de productos distintos (mínimo 2) aplicando un descuento en caso de que el usuario compre todo este conjunto de productos. Es decir, el precio de estos artículos resultará más bajo si se compran todos ellos, que en caso de adquirirlos de forma separada.

Existen dos tipologías de Bundle, que se distinguen por el campo “comoAplica” de la promoción:

Tipología “comoAplica” Dónde se define el descuento
Bundle cerrado 1, 2 o 3 En la promoción. Cada grupo indica en “repartoDescuentoPorcentaje” qué parte de ese descuento le corresponde.
Bundle abierto 111, 112 o 113 En cada grupo del Bundle. La promoción no lleva importe ni porcentaje propios.

En el Bundle abierto, el campo en el que se informa la cifra de cada grupo depende del “comoAplica” elegido:

“comoAplica” Campo del grupo Significado
111 → Descuento neto de grupo “repartoDescuentoImporte”, por divisa Importe que descuenta el grupo.
112 → Precio neto de grupo “repartoImporteNeto”, por divisa Importe final al que queda el grupo.
113 → Porcentaje de grupo “repartoDescuentoPorcentaje” Porcentaje de descuento sobre el precio del propio grupo.

Con las tres tipologías de grupo se aplican las siguientes reglas:

  • La promoción no puede informar “descuento” ni “importePromocion”, porque la cifra la define cada grupo.
  • Todos los grupos deben informar el campo que corresponde al “comoAplica” elegido.
  • El nombre del grupo en español es obligatorio.

Dichos productos se informarán en el JSON siguiendo el siguiente formato:

Tipo Bundle:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Definición del Bundle “grupoDefiniciones” Lista de grupos que componen el Bundle. Lista Tipo Bundle Grupo Si

Tipo Bundle Grupo:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Orden “orden” Orden de los grupos del Bundle. Numérico No
Unidades minimas “unidadesMinimas” Productos del grupo pueden ser AND o OR, se controla mediante mínimo de de productos distintos (cuantos productos distintos) y mínimo de unidades por grupo. Unidades mínimas (mínimo de unidades totales) por grupo, en formato decimal. Decimal (10,2) Si
Mínimo productos distintos “minProDistinto” Productos del grupo pueden ser AND o OR, se controla mediante mínimo de de productos distintos (cuantos productos distintos) y mínimo de unidades por grupo. Mínimo de productos distintos en formato decimal. Decimal (10,2) Si
Reparto del descuento porcentaje “repartoDescuentoPorcentaje” Con “comoAplica” 1, 2 o 3, reparto porcentual del descuento de la promoción en cada grupo. Con “comoAplica” = 113, porcentaje de descuento sobre el precio del propio grupo. Formato decimal. Decimal (10,2) Si
Idiomas “descripciones” Lista con los valores por idioma del grupo del Bundle. Lista Tipo Bundle Grupo Idioma No
Divisas “importes” Lista con los valores por divisa del grupo del Bundle. Lista Tipo Bundle Grupo Divisa No
Productos “infoProducto” Lista de los productos que conforman el Bundle Lista Tipo Bundle Grupo Producto Si

Lista Bundle Grupo Idioma:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Idioma “idioma” Identificador del idioma (ISO 639-1). Literal (2 caracteres máx.) Sí
Nombre grupo “nombre” Nombre del grupo del Bundle. Literal (250 caracteres) Si

Lista Bundle Grupo Divisa:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Divisa “divisa” Código que identifica la divisa (ISO-4217). Literal (3 caracteres máx.) Sí
Reparto importe neto “repartoImporteNeto” Importe final al que queda el grupo, formato decimal. Obligatorio con “comoAplica” = 112. Decimal (10,5) No
Reparto descuento importe “repartoDescuentoImporte” Importe que descuenta el grupo, formato decimal. Obligatorio con “comoAplica” = 111. Decimal (10,5) No

Lista Bundle Grupo Producto:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código de producto “codigo” Código del producto del Bundle. Literal (50 caracteres máx.) Si
Unidades mínimas “unidadesMinimas” Condición por producto, cuantas unidades mínimas por producto (por defecto 1). Decimal (10,5) No
Prioridad “prioridad” Cuando hay varios productos que puedan entran en el Bundle, se usa este campo para determinar cual se incluye. Numérico No

Ofertas

El archivo JSON de un ofertas tiene el siguiente formato:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código “codigo” Código que identifica la oferta de forma distintiva. Literal (30 caracteres max.) Sí
Promoción “promocion” Código que identifica la promoción de forma distintiva para intercambio con la TOL Literal (50 caracteres max.) Sí
Canal “canal” Canal en el que se hace efectiva la oferta. Numérico entero Sí
Zonas “zonas” Zonas donde se hace efectiva la oferta. Lista Tipo Código Zona Sí
Desde “desde” Fecha de inicio de vigencia de la oferta. Fecha (dd/mm/aaaa hh:mm) Sí
Hasta “hasta” Fecha de caducidad de la oferta. Fecha (dd/mm/aaaa hh:mm) Sí
Visible “visible” Define si la promoción es visible en el desplegable de promociones 0 → No visible 1 →Visible Si no aplica se informa 1 Numerico No
Visible widget “visibleWidget” Define si la promoción es visible en el widget de producto si esta aplica a producto 0 → No visible 1 →Visible Si no aplica se informa 1 Numerico No
Visible Validar “visibleValidar” Define si la promoción es visible en el validar carrito. 0 → No visible 1 →Visible Si no aplica se informa 1 Numerico No
Prioridad “prioridad” Prioridad en el caso de promociones solapadas. Si no se informa, se inicializa a 1. La prioridad afecta solamente al calculo del carrito cuando las promociones usan como origen de precio el ultimo precio calculado. Numérico entero No

A continuación describimos el Tipo Código Zona:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código “codigo” Código que identifica de forma distintiva la Zona Numérico entero Sí

Cupones

El archivo JSON de cupones tiene el siguiente formato:

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código “codigo” Código que identifica al cupón de forma distintiva. Literal (30 caracteres máx.) Sí
Promoción “promocion” Código que identifica la promoción de forma distintiva para intercambio con la TOL Literal (50 caracteres max.) Sí
Código usuario “codigoUsuario” Código que identifica al usuario de forma distintiva. Literal (50 caracteres máx.) Sí
Desde “desde” Fecha de inicio de vigencia del cupón. Fecha (dd/mm/aaaa hh:mm) Sí
Hasta “hasta” Fecha de caducidad el cupón. Fecha (dd/mm/aaaa hh:mm) Sí
Usos “usos” Nº de usos máximo que tiene el cupón dentro del periodo de vigencia. -1  ilimitado Numérico entero Sí
Consumos “consumos” Indica el número de veces que se ha utilizado el cupón. Numérico entero Sí
Usos Automáticos “usosAutomaticos” Indica el número de usos automáticos que se aplican en el cupón. Numérico entero Sí
Usos globales “usosGlobales” Número de usos total de cupones para todos los clientes Si no se aplica: -1(usos ilimitados) Numérico entero No
Codigo Validación “códigoValidacion” Codigo alfanúmerico que puede utilizarse para que el cliente valide el cupn. Literal (30 caracteres máx.) No
Visible “visible” Define si la promoción es visible en el desplegable de promociones 0 → No visible 1 →Visible Si no aplica se informa 1 Numerico No
Visible widget “visibleWidget” Define si la promoción es visible en el widget de producto si esta aplica a producto 0 → No visible 1 →Visible Si no aplica se informa 1 Numerico No
Visible Validar “visibleValidar” Define si la promoción es visible en el validar carrito. 0 → No visible 1 →Visible Si no aplica se informa 1 Numerico No
Canal “canal” Canal en el que se hace efectivo el cupón. Numérico entero Sí
Zonas “zonas” Zonas donde se hace efectiva el cupón. Lista del Tipo Código Zona No

Zonas

Campo “Nombre campo” Descripción/Ejemplo Formato Oblig.
Código “codigo” Código que identifica de forma distintiva la Zona Numérico entero Sí

¿En que orden se aplican las promociones?

Al definir una oferta o cupon, se puede usar el campo "prioridad" para determinar el orden de ejecución de una promoción. Cuanta más alta sea la prioridad antes será el orden de ejecución de la prioridad. Por defecto todas las promociones de tipo oferta tienen prioridad 1.000.000, son siempre las primeras a ejecutar. El resto de promociones si no tienen prioridad asignada, se marca la prioridad a 1. En caso de que 2 promociones tengan la misma prioridad, la promoción más nueva será la que se aplique antes. La prioridad es importante en ciertos tipos de promociones, ya que usan el último precio calculado para calcular el descuento. Por ello es importante saber en que instante se hará ese cálculo.

Por ejemplo si tenemos las siguientes promociones que aplican a un producto con precio 2€:

  • PromoA: Precio Oferta 1€. Prioridad 1.000.000 (Por defecto)
  • PromoB: 10% descuento sobre último precio calculado. Prioridad 100
  • PromoC: 10% descuento sobre precio oferta. Prioridad 50
  • PromoD: 10% descuento sobre último precio calculado. Prioridad 10

El orden de ejecución sería:

  • Paso 0
    • Resultado: Artículo - PrecioOriginal: 2€, PrecioOferta: -, UltimoPrecio: 2€
  • Paso 1
    • Aplica PromoA: Cambia el precio a 1€
    • Resultado: Artículo - PrecioOriginal: 2€, PrecioOferta: 1€, UltimoPrecio: 1€
  • Paso 2
    • Aplica PromoB: Aplica 10% sobre el último precio (1€). Descuento de 0.10€
    • Resultado: Artículo - PrecioOriginal: 2€, PrecioOferta: 1€, UltimoPrecio:0.90€
  • Paso 3
    • Aplica PromoC: Aplica 10% sobre el precio oferta a 1€. Descuento de 0.10€
    • Resultado: Artículo - PrecioOriginal: 2€, PrecioOferta: 1€, UltimoPrecio:0.80€
  • Paso 4
    • Aplica PromoD: Aplica 10% sobre el último precio (0.80€). Descuento de 0.08€
    • Resultado: Artículo - PrecioOriginal: 2€, PrecioOferta: 1€, UltimoPrecio:0.72€

Campos obligatorios en dependencia de otros campos

En la siguiente tabla se muestran los campos que deberán tener definido un valor si están definidos los campos de los que dependen.

  • En la columna Valor del Campo se muestran los diferentes valores que tienen las entidades definidas en la columna Campo
  • En la columna Campos dependientes, se encuentran todos los campos que deberán tener un valor definido obligatoriamente en el Json, si depende de definida en la columna Campo
Campo Valor del campo Campos dependientes obligatorios Observaciones
Donde aplica promoción 1 → Producto producto
Donde aplica promoción 2 → Categoría categoria
Donde aplica promoción 3 → Jerarquía → jerarquiaCodigo → jerarquiaNivel o → jerarquias .
Donde aplica promoción 5 → Lote lote
Donde aplica promoción 6 → Agrupación agrupacion
Tipo descuento promoción 1 → MxN → Unidades M → Unidades N
Tipo descuento promoción 2 → Tramo importe → Tramo importe
Tipo descuento promoción 3 → Tramo unidades → Tramo unidad
Tipo descuento promoción 4 → Pack → N/A
Tipo descuento promoción 5 → Unitario
Importe mínimo informado Alcance importe mínimo 1 → Total 2 → Donde Aplica
Como aplica promoción 1 → Descuento neto → Importe promoción
Como aplica promoción 2 → Precio neto → Importe promoción
Como aplica promoción 3 → Porcentaje → Descuento
Como aplica promoción 4 → Regalo → Regalo
Precio Oferta 1 → Precio oferta → Origen precio descuento Valor obligatorio 1 Precio artículo
Precio Oferta 1 → Precio oferta → Inmediato Valor obligatorio 1
Precio Oferta 1 → Precio oferta tipo_descuento_promocion Valor obligatorio 5
Precio Oferta 1 → Precio oferta id_donde_aplica_promocion Valor obligatorio 1
Precio Oferta 1 → Precio oferta id_como_aplica_promocion Valores posibles 1,2,3

Proceso de carga

El proceso de carga de promociones se basa en campo “codigo” y “accion” para definir el proceso a realizar:

  • Alta (“accion” = A)

Se da de alta una promoción con el “codigo” informado.

Si se vuelve a enviar una promoción con el mismo “código” el sistema la rechaza por duplicado.

  • Baja (“accion” = B)

Se da de baja una promoción con el “codigo” informado.

  • Modifiación (“accion” = M)

Funcionalidad no soportada.

Función campos código

  • “codigo” – que se utiliza como campo intercambio TOL – sistemas de cliente  y que es un campo único en la TOL.
  • “codigo_promocion_cliente” – que permite guardar el código de promoción de los clientes.

En resumen para modificar una promoción hay que darla de baja y volverla a carga con otro “codigo” aunque puede mantener el “codigo_promocion_cliente”

Gestión de versiones

Versión Cambios
25.0 Agregado campos para definir atributos de la promoción y zonas de envío de la promoción
25.3 Eliminación versionJ