PS PrestaShop Intermedio

Ofertas por cantidad y badges promo: documentación

Configura las promociones por cantidad y los badges promo en PrestaShop 8 y 9: tipos de oferta, segmentación, personalización del badge y cálculo del descuento.

Actualizado Versión del módulo 1.0.0

Instalación

El módulo se instala como cualquier otro módulo de PrestaShop, desde el back office o por FTP.

  1. En Módulos y luego Gestor de módulos, haz clic en Subir un módulo y suelta el archivo dfquantitydeal.zip.
  2. Por FTP, descomprime el archivo en la carpeta /modules/ de tu tienda e instala DataFirefly – Ofertas por cantidad y badges promo desde el gestor de módulos.
  3. Vacía la caché en Parámetros avanzados y luego Rendimiento.

La instalación crea ocho tablas con el prefijo ps_df_quantity_deal, registra siete hooks y añade la pestaña Ofertas por cantidad al menú Catálogo.

No se instala ningún override de clase ni de controlador. La desinstalación elimina las tablas, las claves de configuración y la pestaña.

Ajustes generales

El botón Configurar de la ficha del módulo abre los ajustes que se aplican a todas las ofertas.

  • Activar el módulo: desactiva la visualización de los badges y el cálculo de los descuentos sin desinstalar.
  • Badges en los listados: muestra el badge en las miniaturas de las páginas de categoría, los resultados de búsqueda y los bloques de productos.
  • Badge en la ficha de producto: interruptor independiente, por si prefieres mantener el badge solo en los listados.
  • Tabla de ofertas en la ficha de producto: lista las ofertas aplicables al producto, bajo el botón de añadir al carrito.
  • Detalle de las ofertas en el carrito: añade bajo el resumen del carrito el importe aportado por cada oferta.
  • Calcular los descuentos con impuestos: activado, la regla de carrito lleva un importe con IVA incluido. Desactivado, el importe es neto y PrestaShop aplica el IVA según tus reglas.
  • Etiqueta del descuento en el carrito: texto mostrado en la línea de descuento del carrito y del pedido. Por defecto «Ofertas por cantidad».
  • Tamaño de fuente del badge: en píxeles, 13 por defecto.

Crear una oferta

Abre Catálogo y luego Ofertas por cantidad, y haz clic en Nueva oferta. El formulario se reparte en tres pestañas.

Pestaña Oferta

  • Nombre de la oferta: campo traducido, usado en el listado del back office y en la tabla de ofertas de la ficha de producto.
  • Tipo de oferta: las cinco mecánicas descritas más abajo. El formulario oculta los campos que no aplican al tipo elegido.
  • Cantidad comprada (X) y Cantidad regalada (Y): para el tipo compra X llévate Y gratis, y solo X para el precio de lote.
  • Posición del artículo con descuento (N): 2 para «el 2º a -25 %», 3 para «el 3º a -50 %».
  • Valor del descuento: porcentaje, importe de descuento o precio impuesto según el tipo. La etiqueta del campo cambia sola.
  • Oferta repetible: activada, la oferta se aplica tantas veces como permita la cantidad. Desactivada, se aplica una sola vez por carrito.
  • Agrupación de las cantidades: por producto, por combinación, o mix and match.
  • Prioridad: los valores más bajos se aplican primero.
  • Activar la oferta: equivale al interruptor del listado.

Pestaña Condiciones

  • Alcance: todo el catálogo, productos seleccionados, categorías seleccionadas o marcas seleccionadas. El selector correspondiente aparece según tu elección.
  • Productos incluidos: escribe al menos dos caracteres para lanzar la búsqueda. Cubre el nombre, la referencia y el ID. Haz clic en un resultado para añadirlo a la lista.
  • Categorías incluidas: árbol de categorías con casillas. Un producto vinculado a cualquiera de las categorías marcadas activa la oferta.
  • Marcas incluidas: lista de fabricantes de la tienda.
  • Grupos de clientes: deja todo sin marcar para aplicar la oferta a todos los grupos, visitantes incluidos.
  • Excluir los productos ya rebajados: los productos con un precio específico quedan fuera del cálculo.
  • Fecha de inicio y Fecha de fin: déjalas vacías para una oferta permanente. Una fecha sola se completa con 00:00:00 para el inicio y 23:59:59 para el fin.
  • Tiendas: solo visible si el modo multitienda está activo.

Pestaña Badge y visualización

  • Texto del badge: campo traducido. Déjalo vacío para una generación automática a partir de los valores de la oferta.
  • Color de fondo y Color del texto: selectores de color, rojo y blanco por defecto.
  • Forma: cuadrado, esquinas redondeadas, píldora, cinta inclinada, pastilla redonda.
  • Posición sobre la miniatura: arriba izquierda, arriba derecha, abajo izquierda, abajo derecha, o en línea bajo el precio.
  • Mostrar en los listados, en la ficha de producto, en la tabla de ofertas: tres interruptores por oferta, además de los ajustes globales.
  • Descripción de la oferta: texto enriquecido traducido, mostrado bajo la frase explicativa en la tabla de ofertas.

Los cinco tipos de oferta

Compra X, llévate Y gratis

El formato clásico del 2+1, 3+1 o 4+2. El motor reparte las unidades elegibles del carrito en lotes de X más Y. Por cada lote completo, las Y unidades más baratas son gratuitas.

Ejemplo: oferta 4+2, seis artículos a 4,49 en el carrito. Un lote completo, dos unidades regaladas, descuento de 8,98. Con solo cinco artículos ningún lote está completo y el descuento es cero.

El enésimo a -X %

El motor reparte las unidades en lotes de N. En cada lote, la unidad de posición N recibe el porcentaje de descuento. Como las unidades se ordenan por precio descendente, el artículo con descuento es el más barato del lote.

Ejemplo: oferta «el 2º a -25 %», cuatro artículos a 20. Dos lotes de dos, dos artículos con 5 de descuento, 10 de descuento total.

El enésimo con descuento fijo

El mismo reparto, pero el descuento es un importe fijo. Queda limitado al precio del artículo: un descuento de 30 sobre un artículo de 8 da 8, no 30.

El enésimo a precio impuesto

El artículo de posición N baja al precio que fijes. El descuento es la diferencia. Para «el 2º a 1» sobre dos artículos de 12, el descuento es de 11.

Precio de lote

Por cada lote de X unidades, el total baja al precio que anuncias. En una oferta 3 por 10 con seis artículos a 5, el motor forma dos lotes y aplica 10 de descuento en total.

Qué artículo se regala

El motor ordena las unidades elegibles por precio descendente y aplica la ventaja a las más baratas de cada lote. Es la regla que usa la gran distribución y la que espera el cliente.

En un lote 3+1 formado por artículos de 20, 15, 10 y 5, el artículo regalado es el de 5. El cliente paga 45 en lugar de 50.

Agrupación de las cantidades

  • Por producto: todas las combinaciones de una misma referencia cuentan juntas. Seis botes del mismo gel de ducha activan una oferta 4+2 aunque sean tres aromas.
  • Por combinación: cada variante cuenta por sí misma. Hacen falta seis unidades del mismo aroma para activar la misma oferta.
  • Mix and match: todas las unidades de los productos vinculados a la oferta alimentan el mismo recuento. Útil para montar un 4+2 sobre una gama completa.

Prioridad y acumulación

Las ofertas se evalúan por orden de prioridad, del valor más bajo al más alto. Cada oferta consume las unidades que utiliza y la siguiente trabaja sobre el resto. Una misma unidad nunca recibe descuento dos veces.

Ejemplo: siete artículos en el carrito y una oferta 4+2 con prioridad 10. El lote consume seis unidades, la séptima queda disponible para una oferta de prioridad 20 sobre el mismo producto.

Da una prioridad baja a tus ofertas más generosas si quieres que se apliquen primero. A igualdad de prioridad, el orden sigue el ID de la oferta.

El badge

Variables del texto

El campo Texto del badge acepta cinco variables, sustituidas al mostrarse por los valores de la oferta.

  • {x}: cantidad comprada
  • {y}: cantidad regalada
  • {n}: posición del artículo con descuento
  • {value}: valor del descuento, sin ceros inútiles
  • {price}: valor del descuento formateado como precio, en la moneda del cliente

También puedes escribir el texto directamente: «4+2 gratis», «3+1 de regalo», «el 2º a -25 %». El campo está traducido, así que cada idioma tiene su formulación.

Si el campo queda vacío, el módulo genera una etiqueta corta a partir del tipo y de los valores: 4+2 para una oferta compra X llévate Y, -25% x2 para un enésimo con porcentaje.

Posición e integración en la miniatura

El badge se genera dentro del bloque de precio, mediante el hook displayProductPriceBlock. Un script front lo traslada después al contenedor de la miniatura para mostrarlo sobre la imagen. La colocación se repite tras los refrescos Ajax de la búsqueda por facetas, la paginación y el quick view.

El modo En línea (bajo el precio) desactiva ese traslado y deja el badge en el flujo, bajo el precio. Elige este modo si tu tema usa una estructura de miniatura no estándar.

Cálculo del descuento en el carrito

En cada modificación del carrito, el motor recalcula el total de descuentos y sincroniza una regla de carrito privada. Su código interno empieza por DFQD seguido del ID del carrito. El cliente ve una sola línea de descuento y no introduce ningún código.

La regla solo se actualiza si el importe ha cambiado, lo que evita recrearla en cada carga de página. Si el total vuelve a cero, la regla se desvincula del carrito y se elimina.

Al validar el pedido, la regla se desactiva y su fecha de fin se lleva al pasado para que no pueda reutilizarse. Permanece asociada al pedido, por lo que sigue visible en tus exportaciones contables y sirve para un abono.

El importe del descuento no puede superar el total de productos del carrito. PrestaShop lo limita automáticamente en ese caso.

Adaptar la visualización a tu tema

Se pueden sobrescribir tres plantillas. Cópialas desde /modules/dfquantitydeal/views/templates/hook/ hacia /themes/tu-tema/modules/dfquantitydeal/views/templates/hook/.

  • badge.tpl: el badge en sí
  • offers.tpl: la tabla de ofertas de la ficha de producto
  • cart.tpl: el resumen bajo el carrito

El CSS queda aislado bajo el prefijo dfqd. Para un ajuste puntual, apunta a las clases desde la hoja de estilo de tu tema en lugar de modificar views/css/front.css, que se sobrescribiría en la actualización.

Multitienda y multiidioma

Cada oferta se vincula a las tiendas que marques en la pestaña Condiciones. Una oferta creada en una tienda no aparece en las demás mientras no se vincule a ellas.

Los campos Nombre, Texto del badge y Descripción se traducen a los idiomas instalados. El badge mostrado sigue el idioma del cliente.

Resolución de problemas

El badge no aparece

  1. Comprueba que el módulo y la oferta están activos, y que la fecha de hoy cae dentro del periodo de validez.
  2. Revisa el alcance: un producto debe estar vinculado explícitamente a la oferta, o pertenecer a una categoría o marca marcada.
  3. Verifica los interruptores de visualización, en los ajustes globales y en la pestaña Badge de la oferta.
  4. Si el grupo de clientes está restringido, prueba con una cuenta del grupo correcto.
  5. Vacía la caché de Smarty y la caché de tu servidor.

El descuento no se aplica en el carrito

La cantidad debe alcanzar el umbral de la oferta según el modo de agrupación elegido. En modo Por combinación, seis unidades repartidas en tres variantes no activan una oferta 4+2. Comprueba además que el producto no esté excluido por la opción sobre productos ya rebajados.

Dos ofertas se pisan

Ese comportamiento es el esperado: una unidad consumida por la primera oferta sale del cálculo de la segunda. Si quieres que una oferta pase antes que la otra, baja su prioridad.

El badge sale en el sitio equivocado

Algunos temas personalizados no usan la estructura de miniatura estándar. Cambia la posición a En línea (bajo el precio), o sobrescribe badge.tpl para colocar el badge donde quieras.

Desinstalación

La desinstalación elimina las ocho tablas del módulo, sus claves de configuración y la pestaña del menú Catálogo. Las reglas de carrito ya asociadas a pedidos anteriores se conservan, para no alterar tu histórico contable.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte