Como hacer una autoredirección a un sitio web de MAGENTO determinada según la IP del visitante

A continuación, un breve tutorial para como hacer esta función en el index.php situado en la carpeta raiz de tu instalación de Magento:

Para realizar esta función primero deberemos de descargarnos las librerías de GeoLite Country de Maxmind.es, que son básicamente una base de datos que relaciones direcciones IP y países 😉

A continuación, copiaremos en un txt la lista de tiendas que tiene nuestra plataforma de Magento, en mi caso, 16 tiendas.

Lo que queremos hacer en este ejemplo es que el visitante, según su IP, sea redirigido a una tienda con el idioma y diseño acordes con su país, o si no existe dicho país, se vaya a una tienda asignada por defecto.

Para ello debemos de editar nuestro fichero “index.php” y escribir las siguientes porciones de código:

Incluimos la librería que nos hemos bajado de Maxmind.es con las funciones php necesarias para nuestro objetivo:

{code type=php}
include(“var/geoip/geoip.inc”);
{/code}

Obtenemos la IP del visitante, y el código de país del visitante. Para esto debemos de definir una ruta donde está el archivo “GeoIP.dat”, que contiene  la lista de paises – direcciones IP.

Y obtendremos el nombre del país en el que se encuentra el usuario que está visitando nuestra web y su código con la función “geoip_country_code_by_addr()” y “geoip_country_name_by_addr()”.

{code type=php}
switch ($CountryCode)
{
case “CO”: // si el visitante está en colombia
$_SERVER[“MAGE_RUN_CODE”] = “colombia”; /sitio web de magento para Colombia
$_SERVER[“MAGE_RUN_TYPE”] = “website”;
$mageRunCode=“colombia”;
break;
case “ES”:
$_SERVER[“MAGE_RUN_CODE”] = “base”; //sitio web de magento para España
$_SERVER[“MAGE_RUN_TYPE”] = “website”;
$mageRunCode=“base”;
break;
case “PT”:
$_SERVER[“MAGE_RUN_CODE”] = “portugal”;
$_SERVER[“MAGE_RUN_TYPE”] = “website”;
$mageRunCode=“portugal”;
break;
default:
$_SERVER[“MAGE_RUN_CODE”] = “base”; //el sitio web por defecto será España
$_SERVER[“MAGE_RUN_TYPE”] = “website”;
$mageRunCode=“base”;
break;
}
}
else
$_SERVER[“MAGE_RUN_CODE”] = “base”;
$_SERVER[“MAGE_RUN_TYPE”] = “website”;
}
//Y ahora, llamaremos a la función de Magento que arranca la plataforma, con la variable
$MageRunType=“website”
Mage::run($mageRunCode , ‘website’);
{/code}

Y ya está, ahora, según la IP del visitante, este será redirigido a un sitio web concreto de Magento.

Más adelante explicaremos como ampliar esta función para que tambien se seleccione un idioma y una moneda según la IP del visitante.


Espero que os resulte de utilidad 😉

 

Fuentes: 

Usar la Librería GeoIP.inc de MaxMind para redigir  al visitante a un sitio web de Magento.
Localizar la IP del visitante de tu web en Magento.

Configurar multiendas y multi webs en tu plataforma Magento.