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

Определение местоположения Битрикс

Содержание

  1. Где найти обработчиков геолокации
  2. Применение на уровне API
  3. Особенности геолокации в модуле sale

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

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

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

  1. Перейти на стартовую страницу сайта и после выбора режима правки открыть настройки компонента «Определение местоположения по IP-адресу»;
  2. Выбрать в категории «Выбор разработчика» и в поле «Обработчик» «Bitrix GeoIp (Sypex Geo)»;
  3. Сохранить изменения.

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

  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. Он использует ранее описанный функционал, чтобы найти в базе Битрикса местоположение.

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

BitrixSaleLocationGeoIp::getLocationId(ip, lang);

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

BitrixSaleLocationGeoIp::getLocationCode(ip, lang);

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

BitrixSaleLocationGeoIp::getZipCode(ip, lang);

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

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

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



ЧЕРЕЗ
N сек.
ты получишь
подарок
Промокод
на скидку
Получить промокод