Botón de redirección de producto - Enlaces externos y dónde comprar, URL de destino oculta, contador de clics y CSV masivo
Añada a cualquier ficha de producto un botón que lleve al visitante a otro sitio: la web del proveedor o de la marca, un marketplace, una ficha técnica o una oferta de afiliación. La dirección externa nunca aparece en el código fuente — el botón apunta a una URL neutra de su tienda que reenvía al visitante y responde con noindex, nofollow. Actívelo producto a producto, cada uno con su destino y su texto, y consulte el contador de clics en la propia ficha. Tres posiciones, nueva pestaña y aviso de salida opcional. Exportación e importación CSV validadas línea a línea. Sin jQuery ni cambios en la plantilla. Para PrestaShop 1.7 y 8.
Un botón, dirigido justo adonde usted necesite
Hay productos que no se venden en su tienda. Una marca que expone pero no tiene en stock, un artículo que vive en un marketplace, un servicio que hay que reservar en otro sitio, una máquina cuya hoja de especificaciones está en la web del fabricante. En esos casos, un botón de añadir al carrito es la respuesta equivocada y una descripción a secas es un callejón sin salida.
Este módulo coloca un botón de verdad en la página de producto y envía al visitante a la dirección que usted elija. Se activa producto a producto, así que el resto de su catálogo queda intacto.
La dirección de destino no aparece en el código fuente
Esto es lo que lo diferencia de un enlace escrito a mano.
El botón no lleva la URL externa. Apunta a una dirección neutra de su propia tienda — /module/redirectproduct/redirect?id_product=… — y ese controlador reenvía al visitante. La respuesta se envía con X-Robots-Tag: noindex, nofollow, y el propio enlace incluye rel="nofollow noopener".
De este modo, el destino no está en su HTML al alcance de los rastreadores, y a los buscadores se les indica sin ambigüedad que no sigan ni indexen el salto.
No se puede convertir en un redirector abierto
El controlador de reenvío no se fía de lo que recibe. Carga la redirección guardada del producto y reenvía solo si ese registro existe, está activado y su URL vuelve a superar la validación en el momento de la petición. Cualquier otro caso acaba en su página 404.
Validar significa exigir una dirección absoluta http o https, rechazando de plano los caracteres de control, los espacios, las comillas dobles, los signos de mayor y menor que y las barras invertidas, más una comprobación final con el validador de URL propio de PHP. Un esquema de datos en línea o de ejecución de código no pasa el filtro, y tampoco lo hace un producto sin redirección configurada.
Un contador de clics donde de verdad lo va a ver
Cada visitante que pulsa el botón se contabiliza. La cifra aparece en la lista de configuración del módulo y en la propia página de edición de ese producto, así que no tiene que ir a buscarla: ve cómo ha funcionado un producto mientras ya lo está editando.
Un diálogo opcional de "está a punto de salir"
Producto por producto, puede activar un pequeño diálogo de confirmación antes de que el visitante se marche. Ofrece Stay on this page (quedarse en esta página) y Continue (continuar), y el mensaje lo redacta usted y es traducible.
Déjelo desactivado para una ficha de marketplace que sus clientes ya esperan. Actívelo para un enlace de afiliación, o allí donde prefiera dejar claro que se pasa a otro sitio web.
Sus textos, por tienda y por producto
Defina una vez un texto de botón por defecto para toda la tienda; si lo deja vacío, los botones muestran More information (más información). Después sobrescríbalo en los productos concretos en los que un verbo específico funcione mejor: Consultar disponibilidad, Reservar cita, Descargar la ficha técnica, Comprar en el marketplace.
El botón también lleva un pequeño icono de enlace externo detrás del texto, dibujado como SVG en línea que hereda el color y el tamaño de letra del propio botón, de modo que el visitante distingue de un vistazo que lleva fuera del sitio.
Tres posiciones, y un aviso cuando una de ellas no funcionará
Coloque el botón junto al botón de añadir al carrito, debajo de la disponibilidad del producto o al final de la página de producto. Cada posición es un hook de visualización estándar de PrestaShop, así que no se edita ningún archivo de la plantilla.
Si su tienda funciona en modo catálogo y la posición elegida es junto al botón de añadir al carrito — un bloque que la mayoría de plantillas oculta por completo en modo catálogo —, la página de configuración se lo advierte y le sugiere una posición que sí se va a renderizar. El módulo comprueba la condición por sí mismo en lugar de dejarle a usted averiguar por qué no aparecía nada.
Se renderiza como máximo una vez por página, únicamente en la posición configurada.
Exportación e importación CSV para el trabajo en masa
Exporte la tabla completa, edítela en una hoja de cálculo e impórtela de vuelta. El formato es de una línea por producto:
id_product;active;url;button_label;confirm;clicks
Cada línea se comprueba al entrar, y las líneas rechazadas se notifican con su número de línea y el motivo: el producto no existe, el indicador no es 1/0, la dirección está vacía o no es una URL absoluta válida. Una línea cuya dirección no sea válida se importa desactivada en lugar de descartarse en silencio, para que pueda verla y corregirla. El informe enumera los diez primeros problemas y después le indica cuántos más había.
El contador de clics se ignora en la importación, de modo que una ida y vuelta normal por una hoja de cálculo nunca sobrescribe sus estadísticas: las filas existentes se actualizan en su sitio y conservan sus recuentos. La excepción es deliberada: marcar Replace all (reemplazar todo) vacía primero la tabla, contadores incluidos. Esa opción solo borra algo una vez que el fichero subido ha demostrado que contiene filas importables, así que un archivo mal formado no puede destruir sus datos por accidente.
Los archivos exportados por la versión 3.x — separados por comas y con los nombres de columna antiguos — se reconocen y se convierten automáticamente.
La versión 4 cerró dos puntos de acceso sin autenticar
Esto merece decirse con todas las letras.
La versión 3.x incluía import.php y export.php como archivos independientes accesibles sin ninguna autenticación. Cualquiera que conociera la URL podía descargar su tabla de redirecciones completa, o borrarla y sustituirla por la suya. Ambos archivos han desaparecido. El CSV se gestiona ahora dentro de la página de configuración, detrás del token de sesión de su empleado.
Un tercer archivo, redirection.php, reenviaba a los visitantes sin validar la URL guardada y se saltaba por completo la pila de controladores frontales. Queda sustituido por el controlador frontal en condiciones descrito más arriba, que valida el destino y contabiliza el clic.
La actualización a 4.0.0 elimina del disco esos archivos obsoletos en lugar de dejarlos donde estaban.
Qué más corrigió la versión 4
La antigua página de administración cargaba jQuery 1.9 desde una CDN de Google, algo que se rompía en cualquier tienda que aplicara una Content-Security-Policy y que en el resto solo añadía peso innecesario. Se han eliminado todas las dependencias de CDN y de jQuery; el front office usa un único fichero JavaScript ligero y sin librerías, cargado solo en las páginas de producto que realmente lo necesitan.
En PrestaShop 1.7 el botón a menudo no aparecía en absoluto, porque el módulo estaba registrado en un alias de hook de la época de la 1.6; las tiendas en modo catálogo solo lo veían en el pie de página por culpa de una condición invertida. Ahora las posiciones son explícitas y las elige usted.
Lo peor de todo: guardar un producto desde cualquier sitio donde no se hubiera renderizado el panel del módulo borraba en silencio la redirección de ese producto — acciones masivas, edición rápida, importaciones. Los guardados están ahora protegidos por un campo marcador, de manera que un guardado que nunca mostró el panel deja la redirección tal cual.
La versión 3.x además mostraba una URL señuelo y la cambiaba al pasar el ratón. No engañaba a nadie y resultaba poco honesto. La versión 4 consigue el objetivo legítimo — mantener el destino fuera de su código fuente y lejos de los rastreadores — como es debido, con el enlace neutro y la respuesta noindex.
Actualizar desde la 3.x es un solo paso
Suba la versión 4 encima de la anterior, o utilice el botón de actualización del módulo. La actualización migra en su sitio todas las redirecciones guardadas — destinos, estado activado/desactivado, indicadores de aviso —, convierte su antiguo texto de botón, elimina las filas huérfanas que dejó la 3.x y borra los archivos obsoletos, incluidos los tres puntos de acceso inseguros.
La versión 4.0.3 corrigió un fallo de actualización que merece mencionarse: el paso de la 4.0.0 hacía depender su éxito de que cinco llamadas encadenadas a registerHook() devolvieran todas verdadero, de modo que un único fallo transitorio — o un hook ya registrado por un intento anterior incompleto — marcaba todo el paso como fallido y PrestaShop desactivaba el módulo. Ahora los hooks se registran de forma idempotente y el paso siempre informa de éxito.
Compatibilidad
PrestaShop 1.7 y 8, en ocho idiomas: alemán, español, francés, inglés, italiano, neerlandés, polaco y turco.
Sin overrides y sin modificar el núcleo ni la plantilla. El botón usa las clases de botón de su propia plantilla, así que hereda sus estilos. Al desinstalar se elimina la tabla del módulo — todas las redirecciones y contadores de clics — y sus ajustes; exporte antes a CSV si cree que puede querer recuperar los datos.
Preguntas frecuentes
¿Pueden los visitantes ver la dirección externa antes de hacer clic?
En el código fuente de su página, no. El botón enlaza a una dirección neutra de su propia tienda que los reenvía, y esa respuesta se envía con noindex, nofollow. El destino aparece en la barra de direcciones solo después de que hayan seguido el enlace.
¿Puede alguien manipular la URL de redirección para reenviar a su propio sitio?
No. El controlador reenvía únicamente a la dirección guardada para ese producto, y solo tras volver a validarla en el momento de la petición. Una petición manipulada o sin configurar acaba en su página 404.
¿Dónde lo activo para un producto?
Catálogo → Productos → abra el producto → la pestaña Módulos. Allí indica la dirección de destino, marca el interruptor, opcionalmente le da su propio texto de botón y su aviso de salida, y ve el número de clics.
¿Por qué no se muestra mi botón?
Tres cosas, por este orden: que el interruptor del producto esté marcado; que la dirección empiece por http:// o https:// (el panel le avisa si no es así); y que la posición elegida sea una que su plantilla renderice. Si tiene dudas, use Final de la página de producto: todas las plantillas soportan ese hook.
¿Funciona en modo catálogo?
Sí, pero no en la posición junto al botón de añadir al carrito, porque la mayoría de plantillas oculta ese bloque por completo en modo catálogo. La página de configuración lo detecta y le indica que elija otra posición.
¿Una ida y vuelta por una hoja de cálculo reinicia mis contadores de clics?
En una importación normal, no: la columna del contador se exporta a título informativo y se ignora al importar, y las filas existentes conservan sus recuentos. La única excepción es Replace all (reemplazar todo), que vacía primero la tabla y se lleva los contadores con ella. Deje esa casilla sin marcar si quiere conservar sus cifras.
Estoy actualizando desde la 3.x, ¿voy a perder mis redirecciones?
No. La actualización migra en su sitio todas las redirecciones, su estado activado/desactivado y su indicador de aviso, convierte su texto de botón y limpia los archivos obsoletos de la 3.x.
¿Modifica mi plantilla o sobrescribe archivos del núcleo?
No. Tres hooks de visualización estándar para el botón, más los hooks de guardado de producto y de medios, y nada más.
-
CompatibilidadPrestashop 1.5
Prestashop 1.6
Prestashop 1.7
Prestashop 8 -
Traducciones Disponibles del MóduloAlemán
Español
Francés
Inglés
Italiano
Neerlandés
Polaco
Turco
MEG Venture
4 productos más en la misma categoría
| Versión | 4.0.3 |
|---|---|
| Última actualización | 2026-07-30 |
| Registro de cambios | - [2026-07-30] Backfill missing translation keys for product redirect module in multiple languages - [2026-07-24] Add Polish and Turkish translations for redirect product module strings - [2026-07-23] Fix upgrade process to prevent module disablement and update version to 4.0.3 - [2026-07-23] Translate product redirect module strings to Turkish for better localization and user experience. - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add translation files for FR, DE, PL, NL, TR, IT, ES (7 languages) - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add missing translation files (fr, de, pl, nl, tr, it, es) - [2026-07-23] Fix invisible "Stay on this page" button in confirm modal (4.0.2) - [2026-07-23] Add an "opens another page" icon to the redirect button (4.0.1) - [2026-07-22] Fix typo in display name for Product Redirect Button - [2026-07-15] Add redirect product module files and functionality - [2026-06-21] Refactor code style and update comments for consistency - [2023-09-21] v3.2.5 - [2023-09-06] v3.2.4 - [2021-04-06] v3.2.3 - [2021-01-23] v3.2.2 - [2021-01-23] Initial commit |
• [2023-09-21] v3.2.5
• [2023-09-06] v3.2.4
• [2021-04-06] v3.2.3
• [2021-01-23] v3.2.2
• [2021-01-23] Initial commit
Comentarios (3)
Su agradecimiento a la reseña no pudo ser enviado
Reportar comentario
Reporte enviado
Su reporte no pudo ser enviado