Добавить в корзинуПозвонить
Найти в Дзене

Мультирегиональность 1С-Битрикс: автоматическое определение местоположения

Платформа «1С-Битрикс» предлагает встроенные средства геолокации, с помощью которых можно автоматически определить местоположение пользователя. Это особенно важно для мультирегиональных сайтов, где необходимо показывать разный контент, ассортимент товаров, цены, контакты или тексты в зависимости от региона посетителя. Разберемся, как настроить автоматическое определение местоположения на примере модуля «Мультирегиональность». Для активации автоопределения региона на платформе «1С-Битрикс» выполните следующие шаги: Для корректной работы модуля требуется активировать обработчик геолокации и задать настройки. Рассмотрим, как это сделать, на примере Sypex Geo. Все доступные обработчики геолокации «1С-Битрикс» находятся в разделе «Настройки продукта» → «Геолокация». После перехода вы увидите список доступных сервисов, среди которых: Для корректной работы первых двух обработчиков требуется указать API-ключи, которые можно получить после регистрации в личном кабинете на официальном сайте соот
Оглавление

Платформа «1С-Битрикс» предлагает встроенные средства геолокации, с помощью которых можно автоматически определить местоположение пользователя. Это особенно важно для мультирегиональных сайтов, где необходимо показывать разный контент, ассортимент товаров, цены, контакты или тексты в зависимости от региона посетителя. Разберемся, как настроить автоматическое определение местоположения на примере модуля «Мультирегиональность».

Как включить автоопределение местоположения

Для активации автоопределения региона на платформе «1С-Битрикс» выполните следующие шаги:

  1. Перейдите в административную панель сайта в раздел INTEC → «Мультирегиональность» → «Параметры сайтов».
  2. В поле «Сервисы определения региона по IP адресу» выберите сервис геолокации, который будет передавать данные о местоположении пользователей. Рекомендуемый и основной вариант — «Геопозиционирование 1C-Bitrix». Этот сервис обеспечивает корректное определение региона по IP и используется в модуле по умолчанию.

Для корректной работы модуля требуется активировать обработчик геолокации и задать настройки. Рассмотрим, как это сделать, на примере Sypex Geo.

  1. В административной панели перейдите в раздел «Администрирование» → «Настройки» → «Настройки продукта» → «Геолокация».
  2. Убедитесь, что в списке доступных обработчиков есть Sypex Geo.
-2
  1. Для активации обработчика перейдите в его настройки и во вкладке «Основные» поставьте галочку в чекбоксе «Активность».
-3
  1. Далее перейдите на официальный сайт sypexgeo.net. Откройте личный кабинет и скопируйте ключ веб-сервиса. Он указан в блоке «Информация о REST API».
-4
  1. Вернитесь в административную панель сайта и в разделе «Администрирование» → «Настройки» → «Настройки продукта» → «Геолокация» откройте настройки Sypex Geo → «Дополнительно». Вставьте скопированный ключ API в соответствующее поле и кликните «Сохранить».
-5

Что нужно знать об обработчиках геолокации

Все доступные обработчики геолокации «1С-Битрикс» находятся в разделе «Настройки продукта» → «Геолокация». После перехода вы увидите список доступных сервисов, среди которых:

  • Sypex Geo;
  • MaxMind;
  • Расширение GeoIP.

Для корректной работы первых двух обработчиков требуется указать API-ключи, которые можно получить после регистрации в личном кабинете на официальном сайте соответствующего сервиса. В случае с SypexGeo после авторизации пользователям доступно 30 000 бесплатных запросов в месяц.

Как работают

Обработчики геолокации реализуются как классы-наследники GeoIpBase. В базовой поставке платформы доступны три стандартных обработчика:

$buildInHandlers = array(

'BitrixMainServiceGeoIpMaxMind' => 'lib/service/geoip/maxmind.php',

'BitrixMainServiceGeoIpExtension' => 'lib/service/geoip/extension.php',

'BitrixMainServiceGeoIpSypexGeo' => 'lib/service/geoip/sypexgeo.php',

);

Подключение собственного обработчика

Если вы хотите добавить свой обработчик геолокации, используйте событие onMainGeoIpHandlersBuildList из модуля main. Пример кода:

$eventManager = \Bitrix\Main\EventManager::getInstance();

$eventManager->addEventHandler(

'main',

'onMainGeoIpHandlersBuildList',

'myGeoIpHandlers'

);

function myGeoIpHandlers() {

return new \Bitrix\Main\EventResult(

\Bitrix\Main\EventResult::SUCCESS,

array(

'AcmeYourClass' => '/path/to/your/class.php',

)

);

}

Получение IP-адреса пользователя

Для получения IP-адреса пользователя используется следующий метод:

$ip = \Bitrix\Main\Service\GeoIp\Manager::getRealIp();

Обязательные методы в классе-обработчике

При создании своего обработчика геолокации необходимо реализовать три обязательных метода:

  • getTitle() — возвращает название обработчика;
  • getDescription() — описание;
  • getData() — основная логика получения данных о местоположении по IP.

Примеры реализации этих методов можно найти в стандартных обработчиках, расположенных в директории ядра платформы.

Проверка работы на уровне API

Если вы хотите убедиться, что модуль корректно работает и возвращает ожидаемые данные, можете протестировать его напрямую через API. Для этого в разделе «Настройки» → «Инструменты» → «Командная PHP-строка» выполните следующий код:

use Bitrix\Main\Loader;

if (Loader::includeModule('intervolga.enrich')) {

$result = \Intervolga\Enrich\Provider\Proxy::getIpInfo('88.87.88.238');

var_dump($result);

}

-6

Особенности геолокации в модуле sale

С выходом обновлений модуля sale в платформе «1С-Битрикс» появилась возможность использовать геолокацию для автоматического определения местоположения пользователя при оформлении заказа. Это позволяет упростить и ускорить процесс покупки, заранее подставляя корректные значения города, индекса и других параметров.

Для работы с геоданными в контексте модуля sale используется класс Bitrix\Sale\Location\GeoIp. Он позволяет определить местоположение пользователя на основе его IP-адреса и получить следующие данные:

  • ID местоположения:

\Bitrix\Sale\Location\GeoIp::getLocationId($ip, $lang);

  • Код местоположения (символьный код):

\Bitrix\Sale\Location\GeoIp::getLocationCode($ip, $lang);

  • Почтовый индекс:

\Bitrix\Sale\Location\GeoIp::getZipCode($ip, $lang);

Результаты геолокации могут сохраняться в cookies, чтобы при повторных визитах не производить повторные запросы.

Определение местоположения в базе происходит по названию, при этом регистр букв не имеет значения — это упрощает сопоставление данных из внешнего источника с внутренней базой местоположений.

Функционал особенно полезен для мультирегиональных интернет-магазинов, так как позволяет автоматически адаптировать форму заказа под нужный регион, повышая удобство для пользователя и сокращая путь к покупке.

Возможные ошибки и как их исправить

Не работает автоопределение региона

Если система не определяет регион автоматически, вероятнее всего, не активированы или неправильно настроены сервисы геолокации в «1С-Битрикс». Чтобы проверить это:

  1. Перейдите в административную панель сайта в раздел «Настройки» → «Настройки продукта» → «Геолокация».
  2. Убедитесь, что необходимый обработчик установлен и активирован (в соответствующих столбцах должно быть указано «Да»)..
-7

Неверное определение региона

Некорректное определение региона, как правило, связано с тем, что сервис геолокации либо недоступен, либо не передает данные.

В модуле «Мультирегиональность» предусмотрена функция «Проверка IP», которая позволяет быстро выяснить, корректно ли работает выбранный сервис. Если система функционирует как положено, вы увидите в результатах проверки заполненные поля regionName, cityName и другие.

-8

Если же в ответе все значения отображаются как NULL, это означает, что геосервис не передает данные.

-9

В такой ситуации модуль не сможет определить местоположение, так как он только обрабатывает входящую информацию и никак не влияет на ее получение. Единственное решение — обратиться в техническую поддержку «1С-Битрикс», чтобы проверить работоспособность геосервиса и устранить проблему на стороне платформы.

Если у вас возникнут вопросы по работе модуля «Мультирегиональность» или любого другого нашего продукта, вы всегда можете обратиться в техподдержку INTEC. Мы поможем разобраться в настройках и подобрать оптимальное решение под ваши задачи.

Подпишитесь на нас в Telegram

Получайте свежие статьи об интернет-маркетинге и актуальные новости о наших готовых решениях

Подписаться