PS PrestaShop Principiante

Posiciones de Productos — Guía completa

Instalar, configurar y usar el módulo de posiciones de productos: drag & drop, ordenación automática multi-criterio, anclaje de posiciones y protección frente a las importaciones ERP para PrestaShop 8 y 9.

Actualizado Versión del módulo 1.2.0

Presentación

El módulo Posiciones de Productos ofrece una interfaz moderna de drag & drop para reorganizar los productos dentro de sus categorías PrestaShop, acompañada de potentes herramientas de ordenación automática y de un sistema de anclaje que protege las posiciones elegidas frente a las modificaciones automatizadas (importaciones ERP, CSV, scripts de terceros).

El módulo es compatible con PrestaShop 8 y 9, tanto en tienda única como en multitienda, y está totalmente traducido (FR, EN, ES, DE, IT). Escribe directamente en la columna position estándar de PrestaShop: el orden definido en el back office aparece de forma idéntica en el front office, sin configuración adicional ni integración en el tema.

Compatibilidad y requisitos

  • PrestaShop 8.0 a 9.x — un único paquete cubre ambas ramas, sin configuración específica.
  • PHP 8.0 a 8.4.
  • Tienda única y multitienda.
  • Sin dependencias de Composer, sin servicios externos, sin JavaScript de terceros: jQuery y jQuery UI vienen incluidos de forma nativa con PrestaShop.
  • PrestaShop 1.7 no es compatible: la API de administración y el sistema de hooks difieren demasiado para garantizar un comportamiento fiable.

La compatibilidad con PrestaShop 9 está disponible a partir de la versión 1.2.0 del módulo. Si migra una tienda PrestaShop 8 a PrestaShop 9, instale la última versión del módulo antes o después de la actualización: sus posiciones y sus anclajes se conservan, ya que la tabla de anclajes no se modifica durante la actualización.

Instalación

  1. Desde el back office, abra Módulos > Gestor de módulos.
  2. Haga clic en Subir un módulo y suelte el archivo ZIP.
  3. Una vez completada la instalación, la entrada Catálogo > Posiciones de productos aparece en el menú.

Durante la instalación, el módulo crea una tabla dedicada para el sistema de anclaje y registra los hooks necesarios para el restablecimiento automático de las posiciones bloqueadas.

Para actualizar el módulo, basta con subir el nuevo archivo sobre el anterior: los scripts de migración se ejecutan automáticamente y sus anclajes y posiciones se conservan.

Interfaz

La pantalla de gestión se compone de tres zonas principales:

  • Árbol de categorías a la izquierda: navegación completa por la jerarquía, búsqueda instantánea, contador de productos y contador de anclajes para cada categoría.
  • Barra de herramientas arriba a la derecha: búsqueda dentro de la categoría actual, menú Bloqueo (naranja) y menú Ordenación automática (morado).
  • Lista de productos en el centro: cada producto dispone de un tirador de drag & drop, de un número de posición editable con un clic y de cuatro acciones rápidas — anclar, subir al principio, bajar al final, editar la ficha.

Los selectores de tienda y de idioma en la parte superior permiten cambiar de contexto sin salir de la página.

Reorganizar los productos manualmente

Arrastrar y soltar

Sujete el tirador situado a la izquierda de un producto y arrástrelo hasta la ubicación deseada. Las posiciones se guardan automáticamente al soltar.

Edición directa del número

Haga clic en el número de posición de un producto para modificarlo con el teclado. Confirme con Intro; pulse Escape para cancelar. El módulo desplaza automáticamente los demás productos para integrar la nueva posición.

Botones «Al principio» y «Al final»

Dos botones rápidos envían un producto a la primera o a la última posición de la categoría con un solo clic.

Ordenación automática

El menú Ordenación automática aplica una clasificación a todos los productos de la categoría según el criterio elegido. Los criterios disponibles son:

  • Por nombre: de A a Z o de Z a A, según el nombre en el idioma actual.
  • Por precio: creciente o decreciente.
  • Por stock: mayor stock primero o menor stock primero, con orden alfabético como desempate.
  • Por ventas (últimos 90 días): más vendidos o menos vendidos primero, calculado sobre los pedidos válidos de la tienda actual.
  • Más recientes / más antiguos: según la fecha de alta del producto.
  • Referencia de A a Z: orden alfabético por referencia interna.
  • Invertir el orden actual: da la vuelta a toda la lista.
  • Mezcla aleatoria: un orden aleatorio en cada ejecución.

La opción Aplicar también a las subcategorías propaga la ordenación a todas las categorías descendientes en una sola operación.

Los productos anclados conservan su posición durante la ordenación: solo se reorganizan los productos no anclados (véase la sección siguiente).

Anclaje de posiciones

El anclaje permite fijar la posición de un producto para que no cambie ni durante una ordenación automática, ni tras una modificación externa (importación ERP, actualización de la ficha desde el back office, script). Es una capa de protección opcional: sin anclaje, su orden manual sigue siendo válido mientras no lance una ordenación automática y ningún sistema externo toque las posiciones.

Anclar un producto individualmente

En cada fila de producto, el icono de anclaje alterna el estado anclado / no anclado del producto dentro de la categoría actual. Un producto anclado recibe un borde naranja y una pequeña insignia de anclaje sobre su número de posición. El contador de anclados en la barra de estado y en el árbol se actualiza automáticamente.

Siempre puede mover manualmente un producto anclado (drag & drop, edición directa, botones rápidos): la posición bloqueada sigue entonces el movimiento. Solo se bloquean la ordenación automática y las modificaciones externas.

Bloquear toda la categoría

El menú Bloqueo > Bloquear toda la categoría ancla de una sola vez todos los productos de la categoría actual en su posición presente. Es la opción recomendada para catálogos alimentados por un ERP que resincroniza las categorías con regularidad: una vez bloqueada la categoría, ninguna importación externa puede alterar el orden.

Desbloquear todo

La opción Desbloquear todo retira todos los anclajes de la categoría actual en una sola acción. Las posiciones actuales se conservan; solo se levanta la protección.

Restaurar las posiciones ancladas

La opción Restaurar las posiciones ancladas vuelve a ejecutar manualmente el algoritmo de restauración sobre la categoría actual. Útil tras una importación grande para comprobar visualmente que todas las posiciones bloqueadas han vuelto a su sitio — aunque el hook de restauración automática ya se dispara en cada actualización de producto.

Casos de uso

Colocar los N primeros productos a mano y ordenar el resto de A a Z

Escenario frecuente: posicionar manualmente los 5 o 10 primeros productos de una categoría (destacados, best sellers, novedades) y después ordenar alfabéticamente todo lo demás.

  1. Seleccione la categoría en el árbol.
  2. Coloque sus N primeros productos en el orden deseado (drag & drop o edición directa).
  3. Haga clic en el icono de anclaje de cada uno de esos N productos.
  4. Abra Ordenación automática > Por nombre > de A a Z.

Los N productos anclados permanecen en sus posiciones; los demás se ordenan alfabéticamente a partir de la posición N+1. El mismo mecanismo funciona con todos los criterios de ordenación.

Proteger una categoría frente a una importación ERP

Escenario frecuente: su ERP o un script externo resincroniza con regularidad los vínculos producto / categoría, lo que reinicia las posiciones.

  1. Organice la categoría en el orden deseado.
  2. Abra Bloqueo > Bloquear toda la categoría.
  3. Confirme: todos los productos quedan anclados en su posición actual.

A partir de ese momento, cada actualización de un producto bloqueado que pase por PrestaShop — ficha de producto del back office, webservice, importación CSV nativa, módulo de terceros que manipule el objeto Product — dispara automáticamente la restauración de su posición original.

Un script que escribe directamente en la base de datos, sin pasar por el objeto Product, no dispara ningún hook de PrestaShop: la restauración automática no puede producirse en ese caso. Ejecute Bloqueo > Restaurar las posiciones ancladas después de la importación, o invoque esa restauración al final de su script de sincronización.

Multitienda

El módulo es totalmente compatible con la funcionalidad multitienda de PrestaShop. El selector de tienda en la parte superior de la interfaz cambia el contexto. Las posiciones y los anclajes son independientes por par (categoría, tienda): anclar un producto en la tienda A no lo bloquea en la tienda B.

Multilingüe

La interfaz del back office está traducida al francés, inglés, español, alemán e italiano. El selector de idioma en la parte superior cambia el idioma del árbol y de los nombres de producto mostrados; las posiciones son comunes a todos los idiomas de una tienda (comportamiento nativo de PrestaShop).

Rendimiento

El módulo utiliza consultas SQL optimizadas con uniones sobre los índices existentes (category_product, product_shop, stock_available). El guardado de las posiciones está temporizado del lado JavaScript para evitar peticiones sucesivas durante reorganizaciones rápidas. La tabla de anclajes cuenta con una clave primaria compuesta y dos índices secundarios para restauraciones muy rápidas, incluso en categorías de varios cientos de productos. La restauración está además protegida contra la reentrada, lo que evita cualquier bucle durante las actualizaciones masivas.

Desinstalación

La desinstalación del módulo elimina la tabla de anclajes y la entrada de menú correspondiente. Las posiciones en category_product permanecen intactas: su orden actual se conserva. Solo se levanta la protección (anclaje y restauración automática).

Preguntas frecuentes

¿Hay que anclar cada producto para que se conserve el orden manual?

No. El orden definido con drag & drop o mediante edición directa se guarda en la columna position estándar de PrestaShop y permanece ahí mientras ninguna ordenación automática ni importación externa lo modifique. El anclaje es una capa de protección opcional, útil solo si desea combinar posiciones manuales con ordenación automática, o si su ERP toca los vínculos producto / categoría durante las importaciones.

¿El orden definido en el back office se refleja en el front office?

Sí, sin configuración adicional. El módulo escribe en la columna nativa category_product.position que PrestaShop ya usa para ordenar las listas de productos en el front. No se requiere integración en el tema ni ningún hook adicional.

Mi ERP resincroniza las categorías en cada importación: ¿qué debo hacer?

Abra el menú Bloqueo > Bloquear toda la categoría. Eso ancla de una vez todos los productos en su posición actual. El hook de restauración automática devuelve después las posiciones a su sitio cada vez que el ERP modifica un producto bloqueado a través del objeto Product. Si su ERP escribe directamente en SQL, añada una llamada a Restaurar las posiciones ancladas al final de la importación.

¿Se puede mover un producto anclado?

Sí. El anclaje protege frente a las modificaciones automáticas (ordenación automática, importaciones externas). Cuando mueve manualmente un producto anclado (drag & drop, edición de la posición, botón al principio o al final), la posición bloqueada se actualiza para seguir el movimiento.

¿La ordenación automática funciona con las subcategorías?

Sí. Marque la opción Aplicar también a las subcategorías en el menú de ordenación para propagar el criterio a todas las subcategorías de la categoría actual en una sola operación.

¿El módulo es compatible con PrestaShop 9?

Sí, desde la versión 1.2.0. El mismo paquete cubre PrestaShop 8.0 a 9.x, tanto en tienda única como en multitienda, sin dependencias de Composer ni JavaScript externo (jQuery y jQuery UI vienen incluidos de forma nativa con PrestaShop).

¿El módulo sustituye la pantalla nativa de posiciones de categoría?

No, la complementa. La pantalla nativa de PrestaShop sigue disponible; el módulo aporta una interfaz más moderna con el anclaje y la ordenación multi-criterio como extras.

La lista de productos no se carga, o la búsqueda se comporta de forma extraña.

Vacíe la caché de PrestaShop (Parámetros avanzados > Rendimiento) y recargue la página forzando la actualización del navegador. El módulo añade un número de versión a sus archivos CSS y JS, pero una caché de navegador o un proxy agresivo pueden conservar una copia antigua tras una actualización.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte