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

> 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…

- Página: <https://www.datafirefly.com/es/documentation/language-country-geolocation-prestashop/>
- Idioma: es
- Actualizado el: 2026-10-07
- Otros idiomas: [fr](https://www.datafirefly.com/documentation/language-country-geolocation-prestashop/index.md), [en](https://www.datafirefly.com/en/documentation/language-country-geolocation-prestashop/index.md), [de](https://www.datafirefly.com/de/documentation/language-country-geolocation-prestashop/index.md), [it](https://www.datafirefly.com/it/documentation/language-country-geolocation-prestashop/index.md), [pl](https://www.datafirefly.com/pl/documentation/language-country-geolocation-prestashop/index.md), [nl](https://www.datafirefly.com/nl/documentation/language-country-geolocation-prestashop/index.md), [pt](https://www.datafirefly.com/pt/documentation/language-country-geolocation-prestashop/index.md)
- Índice: <https://www.datafirefly.com/es/documentation/llms.txt>

## 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.
