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.
Instalación
El módulo se instala como cualquier módulo de PrestaShop, por el back office o por FTP.
- Desde Módulos y Gestor de módulos, haz clic en Subir un módulo y arrastra el archivo
dfpackpro.zip. - Por FTP, descomprime el archivo en la carpeta
/modules/de tu tienda e instala DataFirefly – Packs & Bundles desde el gestor de módulos. - 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.
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.
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.
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.
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 productofront/pack.tpl: la página del packhook/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
- Verifica que el pack está activo y que la fecha actual está dentro del periodo de validez.
- Verifica que el producto consultado forma parte de los componentes del pack.
- Controla el ajuste Bloque de packs activo y la posición elegida en la configuración.
- 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.