Box Builder (Mix & Match) — Guía completa
Instalar, configurar y usar el compositor de cajas «Mix & Match»: fuentes producto/categoría, 4 modelos de precio, ranuras por categoría, plantillas predefinidas, sorpresa, guardar y compartir, gamificación y estadísticas para PrestaShop 8 y 9.
Presentación
El módulo Box Builder (Mix & Match) (dfboxbuilder) añade una página donde tus clientes componen su propia caja a partir de una selección de productos que tú defines. Eligen artículos en una cuadrícula, siguen una barra de progreso, ven el precio actualizarse en directo y añaden la caja completa al carrito con un solo clic. Ideal para cajas gourmet, cajas de belleza, cestas, packs «compra 3», suscripciones de descubrimiento y más.
Creas tantas cajas como quieras, cada una con sus propios productos, sus reglas (mínimo / máximo de artículos) y su modelo de precios. Un mismo catálogo puede alimentar varias cajas muy distintas.
Compatibilidad
- PrestaShop 1.7.6 a 8.x y 9.x
- PHP 7.4 a 8.x
- Tienda única y multitienda
- 5 idiomas: FR, EN, ES, DE, IT (totalmente traducido, sin recurso)
- Tema Classic y temas personalizados (compositor en JavaScript nativo, sin dependencia de jQuery)
- Sin dependencias (ni Composer ni framework)
Instalación
- En el back office, abre Módulos > Administrador de módulos.
- Haz clic en Subir un módulo y selecciona el archivo
dfboxbuilder.zip. - Una vez instalado, abre la pestaña Box Builder añadida al menú para crear tu primera caja.
Al instalarse, el módulo crea sus tablas, registra sus hooks (displayHeader, actionFrontControllerSetMedia, displayHome y actionValidateOrder) y añade una pestaña de administración Box Builder. Al guardar una caja por primera vez, se genera automáticamente un producto contenedor oculto: lleva la línea de la caja en el carrito y no es visible en el catálogo.
Configurar una caja
El formulario de edición de una caja se organiza en cinco pestañas.
Pestaña General
- Nombre, descripción, texto del botón: traducibles en los 5 idiomas.
- Artículos mín. / máx.: límites de la composición. El máximo define el objetivo de la barra de progreso.
- Permitir duplicados y unidades máx. por artículo: permiten (o no) añadir el mismo producto varias veces, con un tope por producto.
- Ocultar productos sin stock: retira de la cuadrícula los productos no disponibles (respetando el ajuste de rotura de cada producto).
- Activar «Sorpréndeme» y Activar guardar y compartir: muestran u ocultan estas acciones del cliente.
- Activo: publica o no la caja.
Pestaña Precios
Hay cuatro modelos de precio disponibles:
- Precio fijo: un precio único para la caja, sea cual sea su contenido.
- Niveles de volumen: el precio cambia según el número de artículos (p. ej. 3 artículos = 25 €, 6 artículos = 45 €). Defines tantos niveles «a partir de X artículos» como necesites.
- Suma de productos con descuento: el precio es la suma de los productos de la caja, menos un porcentaje de descuento.
- Precio por ranura: cada ranura aporta un precio unitario fijo; el total depende de las ranuras ocupadas.
Esta pestaña también gestiona la gamificación: regalo cuando la caja está completa (elige el producto de regalo, añadido gratis al carrito) y envío gratis al completar.
El precio base / fijo se introduce sin impuestos. El módulo aplica luego el impuesto del producto contenedor y muestra al cliente el precio con impuestos incluidos.
Pestaña Composición (fuentes y ranuras)
Defines los productos elegibles que aparecerán en la cuadrícula del compositor, mediante dos tipos de fuentes:
- Productos: añadidos uno a uno con una búsqueda con autocompletado.
- Categorías: todos los productos activos de la categoría pasan a ser elegibles.
La opción Usar ranuras por categoría activa una composición «por pasos». Cada ranura tiene su propio nombre, sus límites mín. / máx., un posible precio de ranura y sus propias fuentes. Así puedes exigir, por ejemplo, «2 platos + 3 guarniciones + 1 postre». Sin ranuras, el cliente elige libremente de la lista global.
Pestaña Plantillas (cajas predefinidas)
Ofreces cajas «listas para usar» que el cliente elige con un clic y luego ajusta a su gusto. Cada plantilla tiene un nombre, una descripción y una lista de productos (añadidos por búsqueda con autocompletado). Ideal para guiar al cliente indeciso o destacar un surtido superventas.
Pestaña Restricciones
Declaras pares de productos incompatibles que no pueden coincidir en la misma caja. El compositor impide entonces su selección conjunta y la validación del servidor la rechaza.
Uso por parte del cliente
El compositor interactivo
La página de composición muestra la cuadrícula de productos (imagen, nombre, aviso de «pocas existencias» cuando corresponde) y un panel de resumen fijo: barra de progreso, lista de artículos elegidos, precio calculado en directo (llamada AJAX optimizada) y mensajes de validación. El botón de añadir al carrito solo se activa cuando la composición cumple todas las reglas.
Ranuras por categoría
Cuando las ranuras están activadas, unas pestañas guían al cliente de una ranura a otra, cada una con su contador (por ejemplo «Platos 2/3») y su propia selección de productos.
Sorpréndeme
El botón Sorpréndeme rellena automáticamente la caja con productos elegibles, respetando el máximo de artículos, los límites de cada ranura y las incompatibilidades. El cliente puede luego ajustar la selección propuesta.
Guardar y compartir
El cliente puede guardar su composición y obtener un enlace para compartir. Cualquiera que abra ese enlace encuentra la caja precargada, lista para ajustar y pedir.
Añadir al carrito y pedido
Al añadir al carrito, la composición se guarda como personalización de la línea (y permanece visible en el carrito y en el pedido), y se aplica el precio calculado de la caja. Si la gamificación está activada, el regalo se añade gratis. Al validar el pedido, el módulo descuenta el stock de cada producto componente de la caja y registra la venta para las estadísticas.
Estadísticas (back office)
La pestaña Estadísticas agrega las cajas pedidas: facturación, número de pedidos, media de artículos por caja, rendimiento por caja y combinaciones más populares. Todo lo que necesitas para identificar tus surtidos ganadores y afinar tus fuentes.
Visualización en la página de inicio (opcional)
Un bloque de inicio opcional lista tus cajas activas con un enlace directo a su compositor. La página de una caja también es accesible directamente mediante su dirección: index.php?fc=module&module=dfboxbuilder&controller=builder&id_dfbox=ID. Puedes enlazarla desde tu menú, una página CMS o un banner.
Funcionamiento técnico
Para cada caja, un producto contenedor oculto (visibilidad «en ningún sitio», no navegable) lleva la línea en el carrito. El precio de la caja se aplica mediante un precio específico limitado al carrito, de modo que el precio de catálogo del contenedor nunca se muestra. La composición se guarda como personalización y el stock de los componentes se descuenta al validar el pedido.
En el modelo Suma con descuento, si un cliente añade dos cajas de la misma definición con composiciones de precio diferente, el último precio calculado se aplica a ambas líneas (el precio específico lo lleva el producto contenedor). Con precio fijo, por niveles o por ranura con igual número de artículos, no hay impacto.
Eliminar una caja no elimina automáticamente su producto contenedor oculto (v1). Si eliminas una caja de prueba, puedes retirar manualmente el producto contenedor asociado desde el catálogo.
FAQ y resolución de problemas
El compositor no se muestra o los botones no responden
Vacía la caché de PrestaShop (Parámetros avanzados > Rendimiento) y, durante las pruebas, desactiva la combinación/compresión de archivos (CCC). Asegúrate de que la caja esté activa y tenga al menos una fuente de productos.
La cuadrícula está vacía
Comprueba que las fuentes (productos o categorías) contienen productos activos para la tienda actual. Si «Ocultar productos sin stock» está activado, los productos no disponibles no aparecen.
El precio mostrado no es el que esperaba
Revisa el modelo de precios elegido: el precio fijo ignora el contenido, los niveles dependen del número de artículos, la suma con descuento depende del precio de los productos y el precio por ranura depende de las ranuras ocupadas. El precio base se introduce sin impuestos.
El stock de los componentes no se descuenta
El descuento ocurre al validar el pedido (hook actionValidateOrder), no al añadir al carrito. Comprueba que el pedido alcance un estado válido.
¿Puedo exigir una estructura precisa (por categorías)?
Sí: activa las ranuras y define para cada una un mínimo / máximo y sus fuentes. Obtienes una composición guiada del tipo «2 + 3 + 1».
¿Es compatible con PrestaShop 9?
Sí. El módulo es compatible con PrestaShop 8 y 9, en multitienda y multilingüe (FR, EN, ES, DE, IT).