Платформа 1C-Битрикс содержит встроенные обработчики геолокации, позволяющие определить местоположение пользователя. Подробнее со списком и особенностями использования каждого обработчика вы можете ознакомиться в пользовательской документации 1C-Битрикс.
В статье мы рассмотрим работу функционала на примере обработчика Sypex Geo.
Обработчик находится по пути Настройки → Настройки продукта → Геолокация. Для редактирования нажмите на «Гамбургер», затем на одноименную кнопку.
Для определения местоположения обработчик обязательно должен быть активирован и иметь доступные запросы.
Без регистрации сервис Sypex Geo предоставляется 10 000 запросов в месяц.
Если на сайте большая посещаемость, то может потребоваться большее количество запросов. Для этого необходимо пройти регистрацию на сайте https://sypexgeo.net/. Регистрация позволяет получить дополнительные бонусные запросы. При необходимости возможно приобретение дополнительных запросов.
После регистрации вам будет предоставлен ключ.
Ключ (2) необходимо указать в настройках обработчика на вкладке «Дополнительно» (1). Не забудьте сохранить изменения (3).
Без регистрации на сервисе всегда можно проверить, доступны ли еще запросы.
Для этого перейдите Настройки → Инструменты → Командная PHP-строка (1).
В поле вставьте код (2):
$ip = $_SERVER["REMOTE_ADDR"]; if(!empty($_SERVER["HTTP_X_REAL_IP"])){ $ip = $_SERVER["HTTP_X_REAL_IP"]; } $obBitrixGeoIPResult = \Bitrix\Main\Service\GeoIp\Manager::getDataResult($ip, 'ru'); if($obBitrixGeoIPResult !== null) { if($obResult = $obBitrixGeoIPResult->getGeoData()){ $_SESSION['GEOIP'] = get_object_vars($obResult); $city = isset($_SESSION['GEOIP']['cityName']) && $_SESSION['GEOIP']['cityName'] ? $_SESSION['GEOIP']['cityName'] : ''; } } print_r($_SESSION['GEOIP']);
Нажмите кнопку выполнить (3).
На странице появится всплывающее окно. Нажмите кнопку «ОК» (4).
Если на сайте доступны запросы, в результате выполнения команды вы должны увидеть свое текущее местоположение. Если запросы недоступны, поля будут пустыми.
Рассмотрим, в каких случаях используется определение местоположения.
1. Выбор региона
При открытии сайта пользователь может увидеть окно подтверждения региона.
Разберем подробнее, при каких условиях это происходит.
Если на сайте используется региональность на поддоменах:
Пользователь перешел по прямой ссылке не своего региона (1);
Регион пользователя доступен в списке регионов (2);
На сайте доступны запросы обработчика геолокации.
Если на сайте используется региональность на одном домене:
Регион по умолчанию отличается от текущего местоположения пользователя (1);
Регион пользователя доступен в списке регионов (2);
На сайте доступны запросы обработчика геолокации.
С версии 2.1.0 окно не появится, но в шапке сразу подставится его город. Например, если пользователь перешел на сайт из города Копейск Челябинской области, то в шапке сразу отобразится Копейск, хотя основной город — Челябинск.
2. Оформление заказа.
Без использования региональности:
Когда клиент впервые оформляет заказ, то система по IP-адресу определяет его местоположение (страну, город) и поставляет значения в соответствующие поля формы.
С использованием региональности:
Когда клиент впервые оформляет заказ, используется местоположения, указанное для региона.
3. Расчет доставки в карточке товара.
Определение местоположения при расчете доставки происходит по следующему алгоритму.