PS PrestaShop Intermedio

Dividir las combinaciones en productos distintos

Instalar y utilizar el módulo que divide un producto con combinaciones en productos distintos, desde la elección de la estrategia hasta la reversión de una división.

Actualizado Versión del módulo 1.0.2

Instalación

Coloca la carpeta dfproductsplitter en el directorio /modules de tu tienda e instala el módulo desde Módulos y Servicios del back office. También puedes subir directamente el archivo ZIP suministrado.

Al instalarse, el módulo crea dos tablas, PREFIX_df_split_job y PREFIX_df_split_item, y añade una pestaña Product Splitter en el menú Catálogo. No se instala ningún override de clase ni de controlador, y no se requiere ninguna dependencia Composer.

El módulo es compatible con PrestaShop 8.0 a 9.x y PHP 7.4 a 8.4. Los nombres de tablas y constantes que difieren entre PrestaShop 8 y 9 se resuelven automáticamente en tiempo de ejecución.

Acceder a la interfaz

Ve a Catálogo y luego a Product Splitter. La pantalla se compone de cuatro bloques: la búsqueda del producto original, la estrategia de división, las opciones de generación y el historial de divisiones ya realizadas.

El módulo trabaja siempre en el contexto de la tienda seleccionada en la parte superior del back office. Los precios, el stock y las combinaciones que se leen son los de esa tienda.

Elegir el producto original

Escribe un nombre, una referencia o un identificador de producto en el campo de búsqueda. Solo aparecen en los resultados los productos que tienen al menos una combinación en la tienda actual.

Una vez seleccionado, el módulo muestra su precio, su referencia, el número de combinaciones y el número de grupos de atributos utilizados. Un enlace abre la ficha de producto en una pestaña nueva para comprobación.

Limitar la división a ciertas combinaciones

Marca la casilla Limitar a ciertas combinaciones para mostrar la tabla completa, con su referencia, su impacto de precio y su stock. Desmarca las que no quieras extraer. Útil para sacar un solo color de una gama y dejar el resto en el producto original.

Las dos estrategias de división

Un producto por combinación

Cada combinación se convierte en un producto simple, sin ninguna combinación propia. El impacto de precio y el impacto de peso de la combinación pasan al precio y al peso base del nuevo producto. La referencia, el EAN, el ISBN, el UPC, el MPN, la cantidad mínima y la fecha de disponibilidad de la combinación se trasladan cuando están informados; en caso contrario se usan los valores del producto original.

Este modo conviene cuando cada combinación tiene su propia existencia comercial, por ejemplo un perfume vendido en tres formatos o un software vendido con tres duraciones de licencia.

Un producto por valor de un grupo de atributos

Eliges un grupo de atributos a extraer, por ejemplo Color. El módulo crea un producto por valor de ese grupo, y los demás grupos siguen siendo combinaciones del nuevo producto. Un producto con tres colores y cinco tallas se convierte en tres productos con cinco combinaciones cada uno.

Si el producto solo tiene un grupo de atributos, este modo pasa automáticamente al modo por combinación. Se muestra un aviso en la vista previa.

Cómo se mantienen idénticos los precios

En modo por grupo, el módulo toma el impacto de precio más bajo entre las combinaciones de cada valor extraído. Ese impacto pasa al precio base del nuevo producto y después cada impacto restante se recalcula por sustracción.

Ejemplo. Un producto de 89 euros, disponible en blanco y negro, en tallas S, M y L. Las combinaciones en blanco llevan impactos de 0, 3 y 6 euros. El producto Blanco se crea a 89 euros, con impactos de 0, 3 y 6 euros en sus tres tallas. Si los impactos en blanco hubieran sido de 3, 6 y 9 euros, el producto Blanco se crearía a 92 euros con impactos de 0, 3 y 6 euros. En ambos casos el precio que paga el cliente por una talla concreta no cambia.

El peso recibe exactamente el mismo tratamiento.

Opciones de generación

Plantilla de nombre

El nombre de los productos creados se construye a partir de una plantilla. Hay tres variables disponibles: el nombre del producto original, los valores de atributos absorbidos y la referencia del producto original. La plantilla por defecto une el nombre original y los valores de atributos con un guion.

El nombre se genera de forma independiente en cada idioma de la tienda, con los valores de atributos traducidos. Los caracteres prohibidos por PrestaShop en un nombre de producto se eliminan automáticamente y el resultado se trunca a 128 caracteres.

Plantilla de referencia

Hay cuatro variables disponibles: la referencia del producto original, la referencia de la combinación, un slug de los valores de atributos y el identificador del producto original. Si la plantilla produce una cadena vacía, el módulo recurre a la referencia de la combinación y luego a la del producto original.

Reescritura de URL

Se genera una reescritura de URL para cada idioma a partir del nombre del producto. El módulo comprueba que no exista ya en ese idioma y añade un sufijo numérico si es necesario, lo que evita colisiones y URLs duplicadas.

Imágenes trasladadas

Se proponen tres modos. Imágenes de la combinación duplica en primer lugar las imágenes asociadas a las combinaciones tratadas, con recurso a todas las imágenes del producto original cuando no hay ninguna asociada. Todas las imágenes duplica siempre el conjunto completo. Ninguna imagen crea los productos sin ningún visual.

La duplicación es física. Se copian el archivo original y todas las miniaturas ya generadas, sea cual sea su formato, jpg además de webp o avif, y también se copian las leyendas traducidas. La primera imagen de cada producto pasa a ser su portada.

Datos a trasladar

Diez casillas controlan el traslado del stock, las categorías, las características, las etiquetas, los precios específicos, los transportistas, los adjuntos, los proveedores, los campos de personalización y los accesorios del producto original. Las nueve primeras están activadas por defecto.

Procesos complementarios

Convertir los atributos absorbidos en características crea una característica con el nombre público del grupo de atributos y un valor con el nombre del atributo, y luego los vincula al producto generado. Si la característica o el valor ya existen, se reutilizan. Práctico para conservar el color como criterio de filtro tras la división.

Vincular entre sí los productos generados añade cada producto creado como accesorio de todos los demás procedentes de la misma división.

Reindexar la búsqueda lanza la indexación de la búsqueda de PrestaShop sobre los productos creados, al final del proceso.

Estado de los productos creados

A elegir entre igual que el producto original, todos activos o todos desactivados. El modo desactivado permite revisar las fichas antes de publicarlas.

Previsualizar antes de escribir

El botón Vista previa calcula el plan completo sin escribir nada en la base de datos. Obtienes el número de productos que se crearán y, para cada uno, su nombre, el número de combinaciones conservadas, el precio sin impuestos y el peso resultantes.

El botón Lanzar la división permanece desactivado mientras no se haya hecho una vista previa, y se desactiva de nuevo en cuanto modificas una opción.

Ejecutar la división

Al lanzarla, el módulo guarda un trabajo en base de datos con la configuración completa y la lista de productos a generar, y luego procesa los elementos en lotes sucesivos en AJAX. Una barra de progreso indica el avance y un registro lista cada producto creado con un enlace directo a su ficha.

El campo Productos tratados por lote controla cuántos productos se crean en cada petición. El valor por defecto es cinco.

En alojamiento compartido o con productos que tienen muchas imágenes, reduce el tamaño del lote a dos o tres. El proceso será algo más largo pero no correrá el riesgo de alcanzar el límite de tiempo de ejecución de PHP.

Qué ocurre con el producto original

Se proponen cuatro comportamientos, aplicados una vez generados todos los productos.

  • Conservarlo tal cual. El producto original sigue activo y sin cambios. Obtienes temporalmente duplicados en el catálogo, lo que permite comparar antes de decidir.
  • Desactivarlo. El producto original queda fuera de línea pero sigue consultable en el back office.
  • Desactivarlo y redirigirlo con un 301 al primer producto creado. El producto original se desactiva, su tipo de redirección pasa a redirección permanente hacia un producto y el destino es el primer producto generado. Es la opción preferible cuando la URL original está indexada o recibe enlaces entrantes.
  • Eliminarlo definitivamente. El producto original se elimina tras la generación. Elige esta opción solo después de haber comprobado el resultado en una primera división de prueba.

Historial y reversión

Cada división aparece en el historial con su identificador, el producto original, el número de productos tratados, su estado y su fecha. El botón Detalle despliega la lista de productos generados con su estado individual y un enlace a cada ficha.

El botón Anular elimina todos los productos generados por ese trabajo y luego restaura el estado activo o inactivo y la redirección original del producto original, tal y como estaban antes de la división. El trabajo pasa al estado revertido.

Si has elegido eliminar definitivamente el producto original, la reversión sí elimina los productos generados pero no puede restaurar el producto de partida. Usa esa opción únicamente una vez validado el resultado.

Qué se traslada, en detalle

Stock

La cantidad de cada combinación se transfiere al producto o a la combinación correspondiente del producto generado. Se traslada el comportamiento en rotura de stock definido en el producto original. El stock del producto original no se decrementa.

Categorías

Se trasladan todas las categorías del producto original, incluida la categoría predeterminada.

Características

Las características se copian. Los valores personalizados, propios de un producto, se duplican para que cada producto generado disponga del suyo.

Precios específicos

Se copian los precios específicos del producto original. Los definidos para todas las combinaciones se trasladan tal cual. Los definidos para una combinación concreta solo se trasladan si esa combinación forma parte del producto generado, y entonces se aplican al producto entero.

Proveedores

Las líneas de proveedor se trasladan a nivel de producto. Los duplicados entre combinaciones de un mismo proveedor se eliminan.

Multitienda

Los productos generados se asocian a las mismas tiendas que el producto original.

Casos particulares y límites

  • Los packs de productos no se pueden dividir. El módulo lo indica antes de cualquier procesamiento.
  • Los productos virtuales y descargables se tratan con normalidad.
  • Los pedidos realizados sobre el producto original no se modifican. Siguen referenciando el producto y la combinación de origen.
  • Las reseñas de clientes vinculadas al producto original no se transfieren.
  • La gestión de URLs canónicas de tu plantilla puede requerir un vaciado de caché tras una división importante.

Resolución de problemas

El proceso se detiene a mitad de camino

Reduce el número de productos tratados por lote. Los productos con muchas imágenes o muchas combinaciones son los más costosos. El trabajo permanece en base de datos pero no se puede reanudar desde la interfaz: anúlalo desde el historial para eliminar los productos ya creados y vuelve a lanzarlo con un tamaño de lote menor.

Las imágenes no se copian

Comprueba los permisos de escritura sobre el directorio de imágenes de producto, img/p. El módulo crea las subcarpetas necesarias pero no puede sortear una restricción del sistema de archivos.

Los precios no coinciden con lo esperado

Consulta la vista previa, que muestra el precio sin impuestos calculado para cada producto. En modo por grupo, el precio base de un producto es el precio original más el impacto mínimo del grupo extraído para ese valor, que no es necesariamente el impacto de la combinación predeterminada.

Dos productos comparten la misma reescritura de URL

El módulo comprueba la unicidad en el momento de la creación y añade un sufijo numérico en caso de colisión. Si el conflicto aparece después, probablemente proviene de otro módulo o de una importación. Modifica la reescritura desde la pestaña SEO de la ficha de producto.

Desinstalación

La desinstalación elimina la pestaña, los ajustes y las dos tablas del módulo. Los productos generados por tus divisiones se conservan. Si quieres eliminarlos, anula primero los trabajos correspondientes desde el historial y después desinstala el módulo.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte