PS PrestaShop Principiante

Detectar el idioma y el país del visitante (sin redirección)

Instalar, configurar y probar la sugerencia de idioma y país sin redirecciones.

Actualizado Versión del módulo 1.2.0

Presentación

El módulo detecta el país del visitante (dirección IP) y los idiomas de su navegador, y muestra un banner que sugiere la misma página en la tienda o el idioma que le corresponde. Nunca redirige: los robots no ven el banner y tus etiquetas hreflang quedan intactas.

Compatible con PrestaShop 8.0 a 9.x, tienda única y multitienda. El banner solo aparece si hay al menos dos destinos activos (dos idiomas o dos tiendas).

Instalación

  1. En Módulos > Gestor de módulos, haz clic en Subir un módulo y envía el archivo ZIP.
  2. El módulo crea automáticamente un destino por cada par tienda e idioma activo.
  3. Abre la página del módulo con el botón Configurar o desde el menú Internacional > Sugerencia de idioma y país.

En multitienda, instala el módulo en el contexto «Todas las tiendas» y comprueba que está activado en cada tienda de destino. Un distintivo «Módulo no activado en esta tienda» te avisa en la pestaña Destinos.

Activar la detección del país

El país se lee, en este orden:

  • en la cabecera de tu CDN (Cloudflare, CloudFront, Vercel);
  • en un archivo MaxMind GeoLite2 si tienes uno (ruta configurable);
  • en la base integrada, gratuita y de dominio público.

Para instalar la base integrada, haz clic en Instalar la base en el panel o en Reglas y detección. El archivo (unos 8 MB, IPv4 e IPv6) se descarga en var/dflocalesuggest/ y se lee en local: ninguna IP de visitante se envía a terceros. El estado muestra su fecha y recomienda actualizarla pasados 45 días.

Si tu alojamiento bloquea las conexiones salientes, la descarga falla con un mensaje claro. Coloca entonces un archivo .mmdb en el servidor e indica su ruta en Reglas y detección.

Destinos

Cada fila es un par tienda e idioma que el banner puede sugerir.

  • Etiqueta: sustituye el nombre de la tienda en el banner (por ejemplo «USA»).
  • Países: códigos ISO separados por comas (ES, PT, AD). Vacío significa cualquier país. Otra tienda limitada a otros países nunca se sugiere a un visitante cuyo país se conoce.
  • Idiomas del navegador: códigos como es, es-mx, en-gb.
  • Orden: arrastra las filas para desempatar dos destinos con la misma puntuación.

Añadir los pares que faltan crea las filas de las nuevas tiendas o idiomas sin tocar las existentes. Si el módulo DataFirefly Hreflang está instalado, Importar desde DataFirefly Hreflang reutiliza tus códigos (es-US da el idioma es y el país US).

Apariencia

Elige un tema, los cuatro colores, el radio de las esquinas, el tamaño del texto y el efecto vidrio esmerilado. La ubicación se ajusta por separado para ordenador (barra superior o inferior, tarjeta a izquierda o derecha) y para móvil (tarjeta flotante, barra). La vista previa en directo, a la derecha, muestra el resultado en ordenador y móvil antes de guardar.

  • Recordatorio compacto: si el visitante ignora el banner y sigue navegando, las páginas siguientes solo muestran una pastilla.
  • Retraso de visualización: el banner aparece tras la carga de la página más este retraso.
  • Ocultar tras un rechazo: tiempo durante el que un visitante que pulsó «Quedarme aquí» no recibe sugerencias.

Textos

El banner está escrito en el idioma sugerido: un visitante alemán lo lee en alemán en una tienda española. Cada idioma tiene sus textos, con variables que se insertan con un clic: {language}, {country}, {store}, {currency}. Un campo vacío usa el texto integrado.

Reglas y detección

  • Cuando país e idioma no coinciden: prevalece el país (tienda que envía al visitante) o prevalece el idioma.
  • Respetar a los visitantes multilingües: sin sugerencia de idioma si el idioma actual está entre los del navegador.
  • Ocultar a los clientes conectados.
  • Páginas sin banner: controladores excluidos, carrito y proceso de compra por defecto. Se admite comodín (module-mimodulo-*).
  • Esperar a que se cierre el banner de cookies: se detectan los principales gestores y la lista de selectores CSS es editable.

Probar antes de publicar

La pestaña Simulador indica, para un país e idiomas de navegador dados, si se muestra el banner, con su texto, su enlace y la puntuación de cada destino. Para ver el banner real en la tienda, añade tu IP en Direcciones IP de prueba y abre una página con ?dfls_country=DE&dfls_lang=de. El enlace «Ver en la tienda» del simulador lo hace por ti.

Estadísticas

El panel muestra los banners mostrados (una vez por visita), los clics, los rechazos, la tasa de clics, la actividad diaria y las clasificaciones por destino y por país en 7, 30, 90 días o un año. Exportar CSV descarga una fila por día, tienda de origen, destino y país. Los contadores son agregados: no se guarda ninguna IP, cookie ni identificador de cliente.

Comportamiento para el visitante

  • Un visitante que pulsa la sugerencia o cambia por su cuenta de tienda o idioma ya no recibe sugerencias en el destino elegido.
  • El banner nunca se muestra a los robots (Googlebot, Bingbot, Lighthouse) y lleva data-nosnippet.
  • El HTML de las páginas es idéntico para todos: el módulo funciona con LiteSpeed Cache, Varnish y los CDN.

Para desarrolladores

Eventos DOM en document: dfls:shown, dfls:accept, dfls:dismiss. Con la opción activada, los eventos dfls_shown, dfls_accept y dfls_dismiss se envían al dataLayer para Google Tag Manager. El hook PHP actionDflocalesuggestResponse recibe la respuesta por referencia para modificar el texto, el enlace o el destino.

Solución de problemas

El banner no aparece

Comprueba que el banner está activo, que hay al menos dos destinos válidos, que la página no está excluida y que no has rechazado o aceptado ya una sugerencia en este navegador (vacía el almacenamiento local del sitio). El simulador indica por qué se descarta un destino.

El país aparece como «Desconocido» en el back-office

Es normal si pruebas desde una IP local o privada. Usa el simulador o los parámetros de prueba.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte