Определение города (местоположения) по IP 2.0

Установка

Установить модуль в демо режиме и проверить его работу бесплтано или купить можно - здесь

После базовой установки модуля описанной - тут, необходимо модуль настроить. Настройки находятся в соответствующем разделе модуля, найти их можно в административном разделе сайта - Рабочий стол / BXmaker / Определение местоположения по IP 2.0 / Настройки модуля

Раздел настройки модуля

На этой странице есть следующие поля:

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

Город по умолчанию - выводится в качестве города пользователя, если не удалось его определить автоматически, обязательно нужно установить.

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

Запрос происходит в фоне, пользователь сайта ничего не заметит. При последующих заходах пользователя проверка не производится и не создает дополнительные нагрузки.

Пункты только только для редакций, в которых нет интернет-магазина ( в нем уже есть местоположения, и они будут использоваться автоматически)

Использование для поиска города сервисы яндекса позволяет переключить поиск города в публичной части сайта на поиск через сервисы яндекса, если он отключен то будут использоваться базу местоположений которые присутствуют на сайте.

Этот пункт отвечает за фильтрацию данных, при поиске города через сервисы Яндекса, который возвращает по названию и села, и реки, и санатории. Поэтому задается через запятую список стоп слов, которые используются для фильтрации выводимых вариантов.

Важно: для редакций без модуля интернет-магазина (в котором есть местоположения) в модуле Определения местоположений по IP 2.0 можно загрузить собственные местоположения, тогда будут использоваться именно они. В результате можно создать предустановленный список городов во всплывающем окне при изменении города пользователем.

Избранные местоположения

Группы избранных местоположений используются в публичной части сайта комопнентом «Город + popup» bxmaker:geoip.city и отображаются в окне смены города, в качестве предустановленных городов для выбора пользователем.

избранные города в попап окне

Добавление списка избранных местоположений

Чтобы создать список местоположений, нужно перейти в административную часть сайта - Рабочий стол / BXmaker / Определение местоположения по IP 2.0 / Избранные местоположения. Количество групп неограниченно. При создании группы, чтобы изменить сортировку (порядок городов) их можно перетаскивать мышко прям в списке.

Добавление группы избранных местоположений

Важно Обязательно укажите все обязательные поля - название и привязку к сайту, прежде чем добавлять город в группу, иначе придется добавлять дважды города.

После начала ввода города, появятся варианты местоположений, выберите нужный. Справа можно поставить галочку «Выделить» в результате город будет выделен жирным в списке срежи прочих. Чтобы изменить порядок городов, его можно мышкой перетащить в нужное место.

Если у вас редакция Битрикса не имеет модуль интернет-магазин ( в котором есть местоположения), вам нужно загрузить местоположения этого модуля в соответствующем разделе модуля - Рабочий стол / BXmaker / Определение местоположения по IP 2.0 / Импорт метоположений.

добавления города в группу

Нажимаете кнопку Применить или Сохранить и переходите к рзмещению компонентов в публичной части сайта.

Размещение компонентов

Компоненты модуля нужно обязательно установить в публичной части сайта, чтобы выводился город пользователя и была возможность его смены.

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

Здесь приведен код которыйвам нужно просто скопировать и вставить в шаблон сайта. Комопнент Город + popup размещаем в подвале сайта и скрывем вывод города или размещаем в шапке сайта. Ниже пример для размещения в шапке сайта.

<? $APPLICATION->IncludeComponent( "bxmaker:geoip.city",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CITY_SHOW" => "Y",
        "CITY_LABEL" => "Ваш город:",
        "QUESTION_SHOW" => "N",
        "QUESTION_TEXT" => "Ваш город<br/>#CITY#?",
        "INFO_SHOW" => "N",
        "INFO_TEXT" => "<a href=\"#\" rel=\"nofollow\" target=\"_blank\">Подробнее о доставке</a>",
        "BTN_EDIT" => "Изменить город",
        "SEARCH_SHOW" => "Y",
        "FAVORITE_SHOW" => "Y",
        "CITY_COUNT" => "30",
        "FID" => "1",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "POPUP_LABEL" => "МЫ ДОСТАВЛЯЕМ ПО ВСЕЙ РОССИИ!",
        "INPUT_LABEL" => "Введите название города...",
        "MSG_EMPTY_RESULT" => "Ничего не найдено"
    ),
    false
); ?>

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

Вывод города в нужном месте

Если вам нужно вывести в нескольких местах город, то можно разместить этот же компонент в подвале сайта, а в нужных местах использовать компонент Вывод города

<?php $APPLICATION->IncludeComponent( "bxmaker:geoip.city.line", 
    ".default", 
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "CITY_LABEL" => "Ваш город:",
        "QUESTION_SHOW" => "Y",
        "QUESTION_TEXT" => "Ваш город<br/>#CITY#?",
        "INFO_SHOW" => "Y",
        "INFO_TEXT" => "<a href=\"#\" rel=\"nofollow\" target=\"_blank\">Подробнее о доставке</a>",
        "BTN_EDIT" => "Изменить город"
    ),
    false
);?>

Вы можете указать у нужных тегов класс js-bxmaker__geoip__city-name-global , в который автоматически подставится город и при клике по которому, ппоявится окно для смены города, на странице обязательно должен быть размещен компонент bxmaker:geoip.city (Город + popup)

Вывод вариантов доставки товара

Далее в карточке товара можно вывести варианты доставки товара до города пользователя - название, сроки, стоимость. Компонент можно вывести сколько угодно раз на странице для разных товаров, например даже в списке товаров. Важно передать идентификатор товара.

Также если вы размещаете компонент в карточке товара, у которого етсь торговые предложения, то в момент смены торгового предложения нужно в javascript вызвать метод перезагрузки блока.

// Для размещения  на странице, в шаблокне сайта и тд.. где нет родительского компонента
<? $APPLICATION->IncludeComponent( "bxmaker:geoip.delivery",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "PRODUCT_ID" => "8441",
        "IMG_SHOW" => "Y",
        "PROLOG" => "Способы доставки в ваш город - #CITY#",
        "EPILOG" => "Бесплатная доставка от 5000 руб."
    ),
   false
); ?>

// Для размещения в шаблоне карточки товара, в области которая является шаблоном другого компоненте, например bitrix:catalog.element
<? $APPLICATION->IncludeComponent( "bxmaker:geoip.delivery",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "PRODUCT_ID" => "8441",
        "IMG_SHOW" => "Y",
        "PROLOG" => "Способы доставки в ваш город - #CITY#",
        "EPILOG" => "Бесплатная доставка от 5000 руб."
    ),
    $component
); ?>

Геозависимые сообщения

Для вывода геозависимых сообщений, например разные номера телефон для разных городов и регионов, нужно использовать комопнент bxmaker:geoip.message Геозависимые сообщения.

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

//В административном разделе тип сообщения - PHONE, тип может быть и любой другой, под ваши задачи
//для вывода указываем тип PHONE
$APPLICATION->IncludeComponent('bxmaker:geoip.message', '', array('TYPE' => 'PHONE'));

// для вывода в шаблоне кэшируемого компонента
$APPLICATION->IncludeComponent('bxmaker:geoip.message', '', array('TYPE' => 'PHONE'), $component);

Если вы размещаете комопненты в шаблоне других компонентов, то для редактирования параметров проще сначала разместить в публичной части сайта на странице, задать парамтеры, сохранить и затем скопировать код и вставить в шаблон, указав в качестве 3го параметра $component.