Encontré este código en la red pero no se si esta bien o donde colocarlo probé en FrontController.php en los lugares mencionados en este tema pero lo máximo que logre fue una redireccion desde el dominio.us al domio.cl pero al tratar de entrar al dominio.us con ip de usa de igual forma me envia al dominio.cl el código es este.
public function hookDisplayHeader()
{
$this->redirect();
}
public function redirect(){
include_once(_PS_GEOIP_DIR_.'geoipcity.inc');
$gi = geoip_open(realpath(_PS_GEOIP_DIR_.'GeoLiteCity.dat'), GEOIP_STANDARD);
$records = geoip_record_by_addr($gi, Tools::getRemoteAddr());
$URL_P = $_SERVER['REQUEST_URI'];
$pais = $records->country_code;
//comprobamos el pais y añadimos toda EU en una sola variable CE o EU
if ($pais == 'AD' | $pais == 'AT' |
$pais == 'BE' | $pais == 'BG' |
$pais == 'HR' | $pais == 'CY' |
$pais == 'CZ' | $pais == 'DK' |
$pais == 'EE' | $pais == 'FI' |
$pais == 'FR' | $pais == 'DE' |
$pais == 'GR' | $pais == 'HU' |
$pais == 'IS' | $pais == 'IE' |
$pais == 'IT' | $pais == 'LT' |
$pais == 'LU' | $pais == 'MT' |
$pais == 'NL' | $pais == 'NO' |
$pais == 'PL' | $pais == 'RO' |
$pais == 'SK' | $pais == 'SI' |
$pais == 'SE' | $pais == 'CH' |
$pais == 'TR' ){
$pais = 'CE';
}
// Comprobamos que el usuario que ha conectado no un un "agente" o bot, de esta manera no vamos a redirigir a
// a los bots de google googlebot|AdsBot-Google|Googlebot-Image|Googlebot-News|Google-Structured-Data-Testing-Tool|pagespeed|insights|
// ni a otros bots conocidos, en esta lista solo hay algunos
if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/BotLink|ahoy|AlkalineBOT|anthill|appie|arale|araneo|AraybOt|ariadne|arks|ATN_Worldwide|Atomz
|bbot|Bjaaland|Ukonline|borg\-bot\/0\.9|boxseabot|bspider|calif|christcrawler|CMC\/0\.01|combine|confuzzledbot|CoolBot|cosmos|
Internet Cruiser Robot|cusco|cyberspyder|cydralspider|desertrealm, desert realm|digger|DIIbot|grabber|downloadexpress|DragonBot|
dwcp|ecollector|ebiness|elfinbot|esculapio|esther|fastcrawler|FDSE|FELIX IDE|ESI|fido|H�m�h�kki|KIT\-Fireball|fouineur|Freecrawl|
gammaSpider|gazz|gcreep|golem|googlebot|AdsBot-Google|Googlebot-Image|Googlebot-News|Google-Structured-Data-Testing-Tool|pagespeed|insights|griffon|Gromit|gulliver|gulper|hambot|havIndex|hotwired|htdig|iajabot|INGRID\/0\.1|Informant|
InfoSpiders|inspectorwww|irobot|Iron33|JBot|jcrawler|Teoma|Jeeves|jobo|image\.kapsi\.net|KDD\-Explorer|ko_yappo_robot|label\-grabber|
larbin|legs|Linkidator|linkwalker|Lockon|logo_gif_crawler|marvin|mattie|mediafox|MerzScope|NEC\-MeshExplorer|MindCrawler|udmsearch|moget|
Motor|msnbot|muncher|muninn|MuscatFerret|MwdSearch|sharp\-info\-agent|WebMechanic|NetScoop|newscan\-online|ObjectsSearch|Occam|Orbsearch\/1\.0|
packrat|pageboy|ParaSite|patric|pegasus|perlcrawler|phpdig|piltdownman|Pimptrain|pjspider|PlumtreeWebAccessor|PortalBSpider|psbot|Getterrobo\-Plus|
Raven|RHCS|RixBot|roadrunner|Robbie|robi|RoboCrawl|robofox|Scooter|Search\-AU|searchprocess|Senrigan|Shagseeker|sift|SimBot|Site Valet|skymob|
SLCrawler\/2\.0|slurp|ESI|snooper|solbot|speedy|spider_monkey|SpiderBot\/1\.0|spiderline|nil|suke|http:\/\/www\.sygol\.com|tach_bw|TechBOT|
templeton|titin|topiclink|UdmSearch|urlck|Valkyrie libwww\-perl|verticrawl|Victoria|void\-bot|Voyager|VWbot_K|crawlpaper|wapspider|WebBandit\/1\.0|
webcatcher|T\-H\-U\-N\-D\-E\-R\-S\-T\-O\-N\-E|WebMoose|webquest|webreaper|webs|webspider|WebWalker|wget|winona|whowhere|wlm|WOLP|WWWC|none|XGET|
Nederland\.zoek|AISearchBot|woriobot|NetSeer|Nutch/i', $_SERVER['HTTP_USER_AGENT'] ) ){
}else { // Si no es un Bot o agente conocido se redirigira segun el pais
$dominiourl =$_SERVER['SERVER_NAME'];
switch ($pais) {
case 'ES':
if ($dominiourl != 'dominio.com' || $dominiourl == 'ce.dominio.com' || $dominiourl == 'uk.dominio.com' || $dominiourl == 'usa.dominio.com')
header("Location: https://dominio.com".$URL_P."");
break;
case 'PT':
if ($dominiourl != 'dominio.com' || $dominiourl == 'ce.dominio.com' || $dominiourl == 'uk.dominio.com || $dominiourl == 'usa.dominio.com')
header("Location: https://dominio.com".$URL_P."");
break;
case 'CE' :
if ($dominiourl != 'ce.dominio.com' || $dominiourl == 'uk.dominio.com' || $dominiourl == 'usa.dominio.com' || $dominiourl == 'dominio.com')
header("Location: https://ce.dominio.com".$URL_P."");
break;
case 'US':
if ($dominiourl != 'usa.dominio.com' || $dominiourl == 'uk.dominio.com' || $dominiourl == 'ce.dominio.com' || $dominiourl == 'dominio.com')
header("Location: https://usa.dominio.com".$URL_P."");
break;
case 'GB' :
if ($dominiourl != 'uk.dominio.com' || $dominiourl == 'ce.dominio.com' || $dominiourl == 'usa.dominio.com' || $dominiourl == 'dominio.com')
header("Location: https://uk.dominio.com".$URL_P."");
break;
case 'AU':
if ($dominiourl != 'usa.dominio.com' || $dominiourl == 'uk.dominio.com' || $dominiourl == 'ce.dominio.com' || $dominiourl == 'dominio.com')
header("Location: https://usa.dominio.com".$URL_P."");
break;
default :
if ($dominiourl != 'usa.dominio.com' || $dominiourl == 'uk.dominio.com' || $dominiourl == 'ce.dominio.com' || $dominiourl == 'dominio.com')
header("Location: https://usa.dominio.com".$URL_P."");
break;
}
}
}
Tengo 2 días ya tratando de buscarle una solución funcional para poder usar multitienda por país agregando una redireccion usando geolocalizacion geoip que trae por defecto