г. Москва, наб Пресненская, д. 8, стр. 1
Войти
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Заказать звонок

Определение местоположения для сайтов на 1С-Битрикс

Содержание

  1. Как активировать определение местоположения
  2. Где найти обработчиков геолокации
  3. Применение на уровне API
  4. Особенности геолокации в модуле sale
  5. Частые вопросы от пользователей

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

Рекомендуемые решения

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

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

  1. В административной панели сайта перейти в раздел INTEC, в настройках модуля открыть вкладку «Параметры сайтов».

  2. Для корректного определения региона по IP необходимо выбрать подходящие сервисы геолокации, которые смогут передавать необходимые данные. Основной и рекомендованный для использования — «Геопозиционирование 1C-Bitrix». Именно этот сервис обеспечивает стабильную передачу информации о регионе пользователя и используется модулем по умолчанию.

Чтобы задать настройки, необходимые для работы модуля, потребуется:

  1. Перейти в раздел: «Администрирование», далее выбрать «Настройки» и «Настройки продукта», а после «Геолокация».

  2. Убедиться, что вы установили и активировали обработчик «Sypex Geo».

Когда компонент определения местоположения работает некорректно, достаточно:

  1. Перейти по адресу sypexgeo.net и зарегистрироваться.
  2. В персональном кабинете получить ключ, который вписывается в настройки «Sypex Geo» («Администрирование» - далее «Настройки», а после выбрать «Настройки продукта» и «Геолокацию», следующий шаг — «Sypex Geo» и «Дополнительно»).

Где найти обработчиков геолокации

Все доступные обработчики находятся в «Настройках». После перехода в «Настройки продукта» необходимо кликнуть «Геолокация». В списке доступных обработчиков:

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

Первые два нуждаются в ключах для получения доступа к необходимым сервисам. Чтобы тестировать с минимальными финансовыми расходами, рекомендуется пройти регистрацию на Sypex Geo, так как именно здесь предоставляется в месяц 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 = BitrixMainEventManager::getInstance();

eventManager->addEventHandler(

'main',

'onMainGeoIpHandlersBuildList',

'myGeoIpHandlers'

);

function myGeoIpHandlers()

<

return new BitrixMainEventResult(

BitrixMainEventResult::SUCCESS,

array(

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

)

);

>

IP-адрес пользователя определяется с помощью класса Bitrix Main Service Geoip Manager.

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

Примеры обработчиков можно найти в ядре, обязательно требуется определить три метода: getTitle, getDescription и getData.

Рекомендуемые решения

Применение на уровне API

Чтобы убедиться в стабильной работе модуля и разобраться, как его правильно использовать на уровне API, необходимо выполнить код на странице «Консоль PHP» в административной панели.

use BitrixMainLoader;

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

result = IntervolgaEnrichProviderProxy::getIpInfo('88.87.88.238');

var_dump(result);

>

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

Ранее о геолокации было сказано при обновлении модуля sale, а это значит, что геолокацию теперь можно использовать, чтобы определить местоположение пользователя с целью оформления заказа. Для этой задачи используется класс Bitrix Sale Location GeoIp. Он использует ранее описанный функционал, чтобы найти в базе «1С-Битрикс» местоположение.

// Для возвращения ID местоположения

BitrixSaleLocationGeoIp::getLocationId(ip, lang);

// Для возвращения кода местоположения

BitrixSaleLocationGeoIp::getLocationCode(ip, lang);

// Для возвращения индекса

BitrixSaleLocationGeoIp::getZipCode(ip, lang);

Все эти методы предусматривают использование сохранения в cookies результата геолокации. Для нахождения местоположения в базе используется название независимо от регистра.

Частые вопросы от пользователей

Почему не работает автоопределение региона?

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

Проверить их можно в административной панели в разделе «Настройки»«Настройки продукта»«Геолокация».

Что делать, если регион определяется некорректно?

Наиболее частые причины, по которым регион определяется некорректно или не определяется вовсе, — это недоступность сервиса или отсутствие передаваемых данных.

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

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

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

Популярные категории

Назад к списку