PS PrestaShop Intermedio

Packs de productos y bundles: documentación

Crear packs y bundles en PrestaShop 8 y 9: composición, cuatro modos de precio, visualización en las fichas de producto, comportamiento en el carrito y adaptación al tema.

Actualizado Versión del módulo 2.5.1

Instalación

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

  1. Desde Módulos y Gestor de módulos, haz clic en Subir un módulo y arrastra el archivo dfpackpro.zip.
  2. Por FTP, descomprime el archivo en la carpeta /modules/ de tu tienda e instala DataFirefly – Packs & Bundles desde el gestor de módulos.
  3. Vacía la caché en Parámetros avanzados y Rendimiento.

La instalación crea seis tablas con prefijo ps_dfpackpro, registra los hooks necesarios y añade la pestaña Packs & Bundles (DF) en el menú Catálogo.

El módulo no instala ningún override de clases ni de controladores. 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 todos los packs.

  • Posición del bloque en la ficha de producto: bajo el bloque de compra, al pie de la ficha, o ambos. El bloque lista los packs que contienen el producto consultado.
  • Bloque de packs activo: corta la visualización cross-sell sin desinstalar. Las páginas de packs siguen accesibles.
  • Número máximo de packs mostrados: 3 por defecto.
  • Orden de los packs: posición, fecha de creación o aleatorio.
  • Mostrar precios unitarios: detalla el precio de cada componente en la página del pack.
  • Mostrar el ahorro: badge e importe ahorrado, en el bloque de la ficha y en la página del pack.
  • Mostrar la disponibilidad: estado de stock del pack, calculado desde los stocks de los componentes.
  • Modo carrito estricto: si el cliente retira un componente, todo el pack y su descuento se retiran. Desactivado, la retirada se acepta y el descuento se conserva sobre el resto.
  • Tras añadir al carrito: redirección al carrito o confirmación en el sitio.
  • Color de acento: color de los badges, botones y bordes de los bloques del módulo.
  • Producto escaparate en el catálogo: activa el producto escaparate generado para cada pack (listados, búsqueda, sitemap).
  • Base de precio del escaparate: con impuestos para una tienda B2C, sin impuestos para una tienda que muestra precios sin IVA.
  • Resumen de packs en la factura PDF: bloque añadido al final de la factura, el único punto que expone PrestaShop.
  • Resumen de packs en la confirmación y el historial de pedidos.
  • Selector de combinaciones en la página del pack: como la ficha de producto (un selector por atributo: desplegable, muestras de color o botones, según el tipo de cada grupo de atributos), un desplegable con todas las combinaciones, o miniaturas de imagen clicables. En todos los modos, elegir una combinación cambia la foto del producto a la imagen asociada, y si la variante predeterminada de un componente de elección libre se agota, la página se abre en una combinación con stock.
  • Visualización de la página del pack: página de pack dedicada, o ficha de producto de la tienda. Ver la sección «Mostrar el pack como una ficha de producto».
  • Pack en el carrito: una línea por producto, o una sola línea para el pack. Ver la sección «Una sola línea para el pack en el carrito».

Crear un pack

Abre Catálogo y Packs & Bundles (DF), y haz clic en Nuevo pack.

Información del pack

  • Nombre: campo traducido, mostrado en el bloque de la ficha, la página del pack y el badge del carrito.
  • Alias de URL: generado automáticamente desde el nombre si lo dejas vacío. Compone la dirección de la página del pack.
  • Descripción: texto enriquecido traducido, mostrado en la página del pack.
  • Badge: texto corto traducido, mostrado en las tarjetas del bloque cross-sell. Déjalo vacío para mostrar el porcentaje de ahorro.
  • Modo de precio: los cuatro modos descritos más abajo. El formulario oculta los campos innecesarios según el modo elegido.
  • Heredar las promociones existentes: activado, los descuentos de catálogo en curso son el precio de partida del cálculo del pack.
  • Fechas de validez: déjalas vacías para un pack permanente. Fuera del periodo, el pack desaparece del front.
  • Activo: equivalente al interruptor de activación de la lista.

Componentes

El panel Componentes gestiona el contenido del pack.

  • Búsqueda de productos: escribe al menos dos caracteres. La búsqueda cubre nombre, referencia e ID. Haz clic en un resultado para añadirlo.
  • Combinación: para un producto con combinaciones, el selector lista las variantes con su precio. La variante elegida se convierte en la predeterminada.
  • Elección de la combinación por el cliente: activado, el cliente selecciona su variante en la página del pack y en el bloque de la ficha. Desactivado, la variante está impuesta.
  • Cantidad: número de unidades del componente en el pack. Un pack puede contener un solo producto en cantidad, para una venta por lote.
  • Cantidad editable: el cliente puede ajustar la cantidad de este componente en la página del pack.
  • Opcional: el cliente puede desmarcar este componente, el precio se recalcula.
  • Descuento por producto: en porcentaje o importe, visible solo en el modo Descuento por producto. Un descuento del 100 % convierte el componente en regalo.
  • Orden: flechas arriba y abajo para ordenar la visualización.

El simulador de precio bajo la tabla recalcula en directo el precio total, el precio del pack y el ahorro con cada cambio.

El botón Duplicar de la lista copia un pack completo con sus componentes, práctico para declinar la misma mecánica en varias gamas.

El editor de pack

El formulario se organiza en seis pasos: información (nombre, referencia, etiqueta, visibilidad, URL amigable, periodo de validez), productos, precio, imágenes, descripción y catálogo. El selector de idioma en la parte superior de los pasos 1 y 5 cambia todos los campos traducidos. A la derecha, el resumen se actualiza con cada cambio: precio de los productos comprados por separado, descuento, precio del pack con y sin IVA, y desglose del IVA por tipo tal como aparecerá en la factura.

Las imágenes se añaden arrastrando y soltando o con un clic. Arrastra las miniaturas para cambiar su orden: la primera pasa a ser la portada. El árbol de categorías del paso 6 decide dónde aparece el pack en el catálogo, y la primera categoría marcada pasa a ser su categoría por defecto.

Los cuatro modos de precio

Sin descuento

El pack vende los componentes a su precio actual. Útil para un pack de pura comodidad o para destacar solo la composición.

Descuento global en porcentaje

El porcentaje se aplica al precio de cada componente. Un pack al -15 % descuenta cada línea un 15 %.

Descuento por producto

Cada componente lleva su propio descuento, en porcentaje o importe. Es el modo de las ofertas tipo máquina más consumible de regalo: la máquina al 0 %, el consumible al 100 %.

Precio fijo

Anuncias el precio del pack, con impuestos en la moneda por defecto. La diferencia entre la suma de los precios actuales y el precio anunciado se reparte proporcionalmente en cada línea, sin impuestos. Cada producto conserva su tipo de IVA.

Ejemplo: un pack a 49 € compuesto por un producto A a 40 € y un producto B a 30 €. La suma actual es 70 €, el descuento 21 €. A soporta 12 € de descuento y B 9 €, en proporción a su peso en el total. La factura sigue siendo exacta aunque A esté al 21 % de IVA y B al 10 %.

El bloque en las fichas de producto

Cada producto que pertenece a un pack muestra un bloque « este producto también está disponible en pack ». Cada tarjeta presenta las miniaturas de los componentes, el nombre del pack, el total tachado, el precio del pack, el badge de ahorro y el estado de stock.

  • Ver el pack abre la página del pack.
  • Añadir añade directamente el pack al carrito en su configuración predeterminada. El botón se convierte en Configurar cuando el pack contiene elecciones: combinación libre, componente opcional o cantidad editable.

La posición del bloque, el número de tarjetas y su orden se ajustan en la configuración del módulo.

La página del pack

Cada pack tiene su página en /pack/12-mi-alias, con el identificador del pack y el alias del idioma en curso. La página lista los componentes con sus selectores de combinación, las casillas de los productos opcionales y los campos de cantidad cuando están abiertos.

Cada cambio recalcula en Ajax el precio total, el precio del pack, el ahorro y la disponibilidad, sin recargar la página. El botón de añadir envía la selección actual al carrito.

La disponibilidad se calcula desde el stock real: el pack es vendible si cada componente requerido está disponible en la cantidad solicitada, teniendo en cuenta los permisos de pedido sin stock de cada producto.

El carrito

Al añadir un pack, cada componente se convierte en una línea real del carrito, facturada a su precio de pack mediante un precio específico limitado a ese carrito. No se crea ningún producto fantasma.

Badge de pack

Cada línea que pertenece a un pack muestra un badge con el nombre del pack, un enlace a su página y un botón Retirar el pack completo. La retirada elimina todas las líneas del pack y sus descuentos en una acción.

Cantidades adicionales

El precio del pack solo cubre las cantidades del pack. Si el cliente sube la cantidad de una línea, el módulo aplica un precio unitario medio ponderado: cantidad del pack al precio de pack, excedente al precio normal.

Ejemplo: pack de 2 unidades a 8 € con precio normal de 10 €. El cliente pasa la línea a 5 unidades. El precio unitario pasa a (2 x 8 + 3 x 10) / 5 = 9,20 €, un total de 46 €. El descuento queda acotado a las 2 unidades del pack.

Modo estricto

Activado, eliminar un componente retira todo el pack y su descuento. Esto impide conservar el descuento devolviendo parte del lote. Desactivado, la retirada se acepta y el descuento se conserva en las líneas restantes.

Un mismo producto puede pertenecer a varios packs en el mismo carrito. Cada pack se sigue por separado y el precio medio tiene en cuenta el conjunto.

Pedidos y contabilidad

Cada producto del pack llega en su propia línea de pedido, a su precio de pack. Facturas, albaranes, abonos y devoluciones parciales funcionan de forma nativa, artículo por artículo. Tus exportaciones contables y ERP solo ven referencias reales de tu catálogo.

La factura muestra el precio sin pack (promociones de catálogo incluidas) y el precio unitario de pack por línea, más un bloque Detalle de los packs al final de la factura: total sin pack, descuento en importe y porcentaje, total del pack. El mismo resumen aparece en la página de confirmación y en el historial de pedidos del cliente. El detalle de cada pedido en el back office muestra un resumen de los packs pedidos. La lista de packs muestra un contador de ventas por pack.

Cada pack genera un producto escaparate sincronizado automáticamente: un producto real del catálogo, sin regla de impuestos, con referencia DFPACK seguida del identificador del pack. Aparece en los listados de categorías, la búsqueda nativa, los filtros por facetas y el sitemap, con la galería del pack, el total tachado y el badge de promoción nativos. Su stock mostrado sigue la disponibilidad calculada del pack.

Según el ajuste «Visualización de la página del pack», la ficha del escaparate redirige con un 301 a la página del pack, o muestra ella misma el pack como una ficha de producto. Según el ajuste «Pack en el carrito», una línea de carrito que lo referencie se convierte en líneas de productos, cada una con su propio tipo de IVA, o pasa a ser una sola línea de pack con su contenido. Se resincroniza en cada guardado del pack, en cada cambio o movimiento de stock de un producto componente y tras cada pedido.

No edites el producto escaparate directamente en el catálogo: la próxima sincronización sobrescribiría tus cambios. Todo se gestiona desde el formulario del pack.

Importar los packs nativos de PrestaShop

El botón Import PrestaShop packs de la lista de packs convierte tus packs nativos: componentes con combinaciones y cantidades, categorías, imágenes y precio incluidos (modo precio fijo). El producto pack nativo se desactiva tras la importación para no competir con el escaparate; reactívalo en el catálogo si lo necesitas. La referencia PSPACK guarda el origen: relanzar la importación nunca importa dos veces el mismo pack. Los packs anidados dentro de otros packs se ignoran.

Mostrar el pack como una ficha de producto

Con el ajuste «Visualización de la página del pack» en «Ficha de producto de la tienda», el pack se muestra en la ficha de su producto escaparate, construida por tu tema como cualquier otro producto: galería, ruta de navegación, precio, cantidad, botón de añadir al carrito, pestañas, opiniones. El bloque «Este pack contiene» se coloca encima de la cantidad, con los productos, sus selectores de combinaciones, los productos opcionales y el ahorro.

Cuando el cliente cambia una combinación, el precio, el precio tachado y el porcentaje de descuento del tema se actualizan. El botón de añadir al carrito del tema añade el pack con la selección del cliente, y el campo cantidad fija el número de packs. Los enlaces al pack (bloque cross-sell, página /packs, etiqueta del carrito) apuntan a esta ficha, y las antiguas direcciones /pack/ redirigen a ella con un 301.

La vista rápida de los listados sigue siendo una ventana de producto simple: añadir desde ella añade el pack en su configuración por defecto.

Una sola línea para el pack en el carrito

Con el ajuste «Pack en el carrito» en «Una línea para el pack», el pack entra en el carrito como una sola línea, con el nombre del pack y su contenido debajo: «1 x Camiseta (Talla: S, Color: Blanco)». Dos selecciones distintas dan dos líneas, y el mismo pack añadido dos veces con la misma selección aumenta la cantidad de la línea.

El precio de la línea es la suma de los precios de los productos, calculada con el tipo de IVA de cada uno: los totales sin IVA, con IVA y de IVA del carrito y del pedido son exactos. En la factura, la línea del pack muestra su precio base y su descuento, y el IVA se desglosa por tipo. El contenido del pack aparece también en el checkout, el detalle del pedido, los emails y la factura, y la tarjeta «Packs de este pedido» del back office indica los productos y combinaciones que hay que preparar.

El stock de cada producto se descuenta al hacer el pedido, se devuelve si el pedido pasa a «Cancelado» o «Error en el pago», y se vuelve a descontar si se reactiva.

Las devoluciones parciales con reposición de stock solo devuelven el producto escaparate. Tus exportaciones contables ven una referencia DFPACK con varios tipos de IVA en la misma línea: si tu contabilidad exige una línea por tipo, mantén el modo «Una línea por producto».

Multitienda y multilingüe

Cada pack se asocia a las tiendas de su contexto de creación y puede gestionarse tienda a tienda. Los campos Nombre, Alias de URL, Descripción y Badge se traducen en los idiomas instalados. El front sigue el idioma del cliente, incluido el alias de la página del pack.

Adaptar la visualización a tu tema

Tres plantillas son sobrescribibles. Cópialas desde /modules/dfpackpro/views/templates/ a /themes/tu-tema/modules/dfpackpro/views/templates/ conservando las subcarpetas.

  • hook/product_packs.tpl: el bloque cross-sell de las fichas de producto
  • front/pack.tpl: la página del pack
  • hook/cart_line_badge.tpl: el badge de pack en el carrito

El CSS está aislado bajo el prefijo dfpackpro y el color de acento lo lleva la variable CSS --dfpackpro-accent. Para un ajuste puntual, apunta a las clases desde la hoja de estilos de tu tema en lugar de modificar views/css/front.css, que se sobrescribiría en la actualización.

Solución de problemas

El bloque no aparece en la ficha de producto

  1. Verifica que el pack está activo y que la fecha actual está dentro del periodo de validez.
  2. Verifica que el producto consultado forma parte de los componentes del pack.
  3. Controla el ajuste Bloque de packs activo y la posición elegida en la configuración.
  4. Vacía la caché Smarty y la caché de tu servidor.

El pack aparece como no disponible

La disponibilidad es el mínimo de los stocks de los componentes requeridos divididos por su cantidad en el pack. Un solo componente agotado sin permiso de pedido sin stock basta para hacer el pack no disponible. Los componentes opcionales desmarcados no cuentan.

El badge del carrito aparece en el lugar equivocado

El tema renderiza el badge en la columna de acciones y luego JavaScript lo mueve al bloque de información del producto. En un tema muy personalizado sin los contenedores estándar, el badge se queda en su posición original. Sobrescribe cart_line_badge.tpl para integrarlo en tu estructura.

El precio de pack se aplica a demasiadas unidades

Este caso lo cubre el precio medio ponderado: comprueba el precio unitario de la línea, debe situarse entre el precio de pack y el precio normal en cuanto la cantidad supera la del pack. Si no es así, vacía la caché y modifica la cantidad para forzar un recálculo.

La página del pack devuelve un 404

Verifica que el pack está activo y dentro de su periodo de validez. Tras un cambio de alias, la dirección antigua redirige con un 301 a la nueva mientras el identificador del pack sea correcto.

Desinstalación

La desinstalación elimina las seis tablas del módulo, sus claves de configuración y la pestaña del menú Catálogo. Los pedidos pasados conservan sus líneas y precios, tu histórico contable no se altera.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte