Модуль позволяет определить, уточнить местоположение пользователя, вывести вараинты доставки в его город, вывести актуальную для местоположения информацию, переадресовать на другой домен или поддомен и тд.
Определяет город пользователя по его IP адресу и работает на любых редакциях Битрикса.
Для редакций с модулем интернет-магазин, используются данные о местоположениях из него.
Если же редакция без модуля интернет-магазина, то на соответствующей административной странице модуля можно загрузить страны, города и регионы Росси, Украины, Казахстана.
Базовая устанвока модулей для битрикса описана - здесь
Установить можно отсюда - Определение города (местоположения) по IP 2.0
При первом заходе пользователя, происходит определение города пользователя по базе IP адресов с GeoIP. Эти данные используются всеми свтроенными комопнентами и выводятся в соответствующих местах.
После того как определение произошла, страница сгенерировалась и загрузилась на страницу пользвоателя, начинает выполняться javascript. В этот момент, если не было сделано ранее (первый заход покупателя), происходит запрос к Сервисам Яндекса, для уточнения города пользователя - необходимо для более точного определения местоположения ( данные в яндексе более точные и чаще обновляются).
После получения информации от сервисов яндекса, все это происходит очень быстро и незаметно для человека, данные отправляются фоновым запросом на сервер сайта, где происходит уточнение и сохранение данных. Затем в браузере происходит подмена информации на акутальную - город, геозависимое сообщение, расчет доставки товара в его город и тп.
После установки появятся 4 комопнента, которые можно найти при редактирвоании страницы сайта в редакторе справа в подпункте веб-студия BXmaker / местоположения.
База IP адресов обновляется ежедневно автоматически с помощью агента
\Bxmaker\GeoIP\Agent::updateBase()
Методы модуля можно использовать как на клиентской так и на сервернйо стороне для решения собственных задач, для примера приведены несколько примеров, подробнее далее в документации
Для выполнение логики в браузере польвзаотеля существует специальный javascript класс BXmakerGeoIPCity. Если в настройках модуля включен режим отладки, то в консоли браузера можно видеть все события которые всплывают в тот или иной момент, подписаться на них и выполнить необходимые операции. Подробнее про классы JS используемые в модуле
if(!!window.BXmakerGeoIPCity)
{
$('.city-name').text(window.BXmakerGeoIPCity.getCity());
}
//или
$(document).on('bxmaker.geoip.city.show', function(event, data){
$('.city-name').text(data.city);
});
На стороне сервера можно исопльзовать все методы и классы модуля, но в основном стоит использовать методы класса \BXmaker\GeoIP\Manager
. В качестве примера приведжен вывод названия города пользщователя.
\Bitrix\Main\Loader::includeModule('bxmaker.geoip');
$oManager = \Bxmaker\GeoIP\Manager::getInstance();
echo $oManager->getCity();