Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!
Условия использования
Продлить
Продолжить покупки

Улучшенный выбор местоположения с определением по IP, замена контента в зависимости от города

Модуль автоматически определяет местоположение пользователя по его IP и предоставляет возможность выбора города из списка в удобном и стильном всплывающем окне.Основные возможности:— доступен для всех редакций;— автозаполнение местоположения, в том числе и в оформлении заказа;— попап подтверждения выбранного города, с возможностью изменить установленный город. Можно показывать только при первом заходе, а можно пока не закроет посетитель. Или вообще не показывать;— богатые настройки кастомизацим окон, под стилистику вашего сайта;— возможность подмены данных на основе определенного города;— отображение региона у городов с одинаковыми названиями;— отображение «избранных» городов:— удобное api для отображение информации элементов иноблока в зависимости от местоположения;— инфоблок (Местоположения -> Контент), элементы которого можно  привязать к имени и id местоположения, а так же к id сайта.  Соответствующий элемент легко получить с помощью api модуля. Описание  api на вкладке «Установка»;— ядро модуля на d7;— поддержка композита. Данные о местоположении автоматически вставляются в поле с типом  «Местоположение» в процессе оформления заказа. Так же модуль может заменить стандартный шаблон компонента выбора местоположения на свой, гораздо более удобный.Контент с привязкой к местоположению — функции для CEO оптимизацииС помощью нашего модуля можно отображать контент привязанный к местоположению пользователя сайта. Для каждого города в отдельности вы можете прописать необходимые данные, тайтлы, дескрипшены, телефоны, варианты доставок и другие необходимые геозависимые данные. Решение поддерживает передачу в компонент оформления заказа выбранный город сразу при загрузке страницы — выбранный город сразу применяется для показа вариантов доставки и оплаты с ограничениями по местоположениям. Пример: При заходе пользователя на сайт город автоматически определился, добавляем товар в корзину и переходим в оформление заказа. На странице оформления заказа будет указан определенный город и доступные для города способы доставки и оплаты.Модуль работает на основе базы данных Sypex Geo и не делает запросы на сторонние сервисы, за счёт чего скорость определения местоположения гораздо выше. Также все запросы к базе данных местоположений кешируются, что тоже существенно увеличивает скорость работы.Модуль работает на всех редакциях!Для редакций «Бизнес» и «Малый бизнес» список населенных пунктов берется из Местоположений модуля «Интернет-магазин». На младших редакциях  по-умолчанию выводится список городов для России и Украины из внутренней базы решения.Внимание!Если был произведен переход на Местоположения 2.0, то избранные города настраиваются непосредственно в модуле «Интернет Магазин» в настройках местоположений.

Улучшенный выбор местоположения с определением по IP, замена контента в зависимости от города

Улучшенный выбор местоположения с определением по IP, замена контента в зависимости от города

Скриншоты
Описание

Технические данные

Опубликовано:
08.08.2014
Обновлено:
22.04.2019
Версия:
1.2.7
Установлено:
500 - 999 раз
Подходящие редакции:
«Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Эксперт», «Бизнес»
Адаптивность:
Да
Поддержка Композита:
Да

Описание

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

Основные возможности:
— доступен для всех редакций;
— автозаполнение местоположения, в том числе и в оформлении заказа;
— попап подтверждения выбранного города, с возможностью изменить установленный город. Можно показывать только при первом заходе, а можно пока не закроет посетитель. Или вообще не показывать;
— богатые настройки кастомизацим окон, под стилистику вашего сайта;
— возможность подмены данных на основе определенного города;
— отображение региона у городов с одинаковыми названиями;
— отображение «избранных» городов:
— удобное api для отображение информации элементов иноблока в зависимости от местоположения;
— инфоблок (Местоположения -> Контент), элементы которого можно  привязать к имени и id местоположения, а так же к id сайта.  Соответствующий элемент легко получить с помощью api модуля. Описание  api на вкладке «Установка»;
— ядро модуля на d7;
— поддержка композита.

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

Контент с привязкой к местоположению — функции для CEO оптимизации
С помощью нашего модуля можно отображать контент привязанный к местоположению пользователя сайта.

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


Решение поддерживает передачу в компонент оформления заказа выбранный город сразу при загрузке страницы — выбранный город сразу применяется для показа вариантов доставки и оплаты с ограничениями по местоположениям.

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

Модуль работает на основе базы данных Sypex Geo и не делает запросы на сторонние сервисы, за счёт чего скорость определения местоположения гораздо выше. Также все запросы к базе данных местоположений кешируются, что тоже существенно увеличивает скорость работы.


Модуль работает на всех редакциях!
Для редакций «Бизнес» и «Малый бизнес» список населенных пунктов берется из Местоположений модуля «Интернет-магазин». На младших редакциях  по-умолчанию выводится список городов для России и Украины из внутренней базы решения.

Внимание!
Если был произведен переход на Местоположения 2.0, то избранные города настраиваются непосредственно
в модуле «Интернет Магазин» в настройках местоположений.

Отзывы (19)

1 - 10 из 19
Обсуждения (49)
1 - 5 из 49
Что нового
1.2.7 (22.04.2019)
  • Добавлен скролл в избранные местоположения, позволяет просматривать их, если их много
  • Исправлена ошибка, из-за которой иногда не создавался тип инфоблоков "Местоположение" и инфоблок "Контент" в нём
  • Небольшие правки верстки в десктопной и мобильной версиях
1.2.6 (03.04.2019)
  • Добавлена возможность автоматически подставлять индекс для выбранного местоположения, полезно для служб доставки, которые считают по индексу
  • Добавлена проверка наличия js-библиотеки BX для стандартного шаблона. Если библиотека не подключена, то событие "onTFLocationSetLocation" вызвано не будет
  • В сессию добавлены так же ид и названия определившегося региона и страны. При изменении местоположения они тоже автоматически меняются в сессии. Методы для их получения см. на вкладке "Установка"
  • Исправлена подгрузка стилей в компоненте избранных местоположений в админке при включенной опции "Подключить шаблон выбора местоположения"
  • Исправлены ошибки при подстановке значений в плейсхолдеры #TF_LOCATION_CITY_ID# и #TF_LOCATION_CITY_NAME# для события, которое вызывается после смены города
1.2.3 (26.03.2019)
  • доработан шаблон компонента определения местоположения для корректной работы в композитном режиме
  • добавлена настройка для отображения попапа подтверждения местоположения: показывать, пока не будет закрыт пользователем
  • добавлена настройка цвета основной кнопки в попапе подтверждения местоположения при наведении курсора
  • исправлено отображение выбранной цветовой темы в шаблоне по-умолчанию
    1.2.0 (14.03.2019)
    • Добавлен инфоблок (Местоположения -> Контент), элементы которого можно привязать к имени и id местоположения, а так же к id сайта. Соответствующий элемент легко получить с помощью api модуля. Описание api на вкладке "Установка"
    1.1.1 (13.03.2019)
    • Переработан шаблон компонента выбора местоположений, убраны important-ы и каскады стилей, единицы измерения заменены на относительные, оптимизирован javascript-код.
      Для лучшей совместимости старый шаблон тоже оставлен, теперь он называется 'old'. В случае необходимости Вы можете продолжить его использовать, явно указав в вызове компонента. Чтобы продолжить использование старого шаблона при оформлении заказа, выполните в командной строке php код COption::SetOptionString('twofingers.location', 'sale-order-template', 'old'); .
    • В новый шаблон добавлен миниатюрный попап подтверждения местоположения
    • В настройках модуля теперь можно задавать текст, и дополнительные визуальные настройки попапов
    • Ядро модуля переведено на d7, старые классы пока оставлены для совместимости, они помечены как deprecated и в будущих версиях будут удалены.
    • Исправлена ошибка появления названия города в стандартном компоненте выбора местоположений при оформлении заказа
    • Исправлены незначительные ошибки в кешировании
    • Старые события компонента оформления заказа больше не поддерживаются, в место них используются их новые аналоги.
    • Код модуля оптимизирован для лучшей совместимости различными настройками хостингов.
    • Обновлены базы ip-адресов.
    • Прочие доработки, усовершенствования, рефакторинг и исправление мелких ошибок
    1.0.20 (10.02.2019)
    • Для ускорения отклика добавлено кеширование запросов к базе
    • Добавлено js-событие "onTFLocationSetLocation", вызываемое после выбора местоположения (пример использования см. на вкладке "Установка")
    • Исправлено отображение списка местоположений для кодировки cp1251
    • Обновлена внутренняя библиотека jqury до версии 3.3.1
    • Удалена внутренняя библиотека fancybox, т.к. она больше нигде не используется
    • Оптимизирован код вызова всплывающего окна с выбором местоположений
    • Для местоположений 2.0 в админку добавлен вывод избранных местоположений, а так же добавлена ссылка для быстрого их задания
    • Исправлена ошибка сохранения избранных местоположений для несконвертированной базы
    • Исправлены ошибки безопасности при загрузке шрифтов
    • Рефакторинг и прочие незначительные доработки и исправления
    1.0.13 (30.01.2019)
    • Исправлена ошибка, иногда возникавшая при выборе служб доставки
    • Исправлена корректная обработка не заполненного местоположения при оформлении заказа
    • Исправлена ошибка, из-за которой могло не закрываться окно после выбора местоположений
    1.0.12 (12.11.2018)
    • Добавлена поддержка всех версий Битрикс
    • Добавлена полная поддержка местоположений 2.0, в том числе в компоненте sale.order.ajax
    • Актуализирована база ip
    • Добавлена вывод регионов для одинаковых городов
    • Доработан внешний вид
    • В младших версиях Битрикс по-умолчанию выводится список городов для России и Украины
    1.0.11 (12.02.2018)
    • исправление работы демо-режима
    1.0.10 (25.02.2016)
    • исправление отображения избранных местоположений
    1.0.9 (17.02.2016)
    • поддержка адаптивного режима
    • предподстановка местоположения при первом заходе в оформление заказа
    • исправление мелких проблем
    1.0.8 (30.12.2015)
    • обновление базы определения по IP
    • исправление проблемы выполнения произвольного js после выбора города
    • другие мелкие исправления
    1.0.7 (08.12.2015)
    • исправлена ошибка незаполненного поля LOCATION при оформлении заказа на старых шаблонах оформления заказа
    1.0.6 (26.11.2015)
    • исправлена проблема настроек избранных изображений и интернет-магазина в бекофисе битрикса после установки модуля
    • исправлена проблема в оформлении заказа (не прикреплялось к заказу выбранное местоположение)
    • улучшен показ определенных по IP местоположений, если они не нашлись в местоположениях
    • обновлена подключаемая по настройке версия jquery до 2.1.4
    1.0.5 (15.05.2015) Исправление небольшой ошибки в JS
    1.0.4 (12.05.2015) Исправлены незначительные ошибки Исправлена работа модуля на предыдущих версиях Битрикса
    1.0.3 (13.04.2015) Полное обновление модуля. Реализована поддержка Местоположений 2.0
    1.0.2 (16.09.2014) Исправление проблем с совместимостью
    1.0.1 (03.09.2014) Исправлено несколько незначительных ошибок
    Установка
    Установка

    Решение устанавливается стандартно. После установки Вы будете перенаправлены в интерфейс настройки модуля.

    Для корректной работы модуля на редакциях «Бизнес» и «Малый бизнес» необходимо, чтобы были загружены местоположения в базу модуля «Интернет-магазин» http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&LESSON_ID=3074&LESSON_PATH=3912.4580.4828.3074#load


    Подключение компонента улучшенного выбора местоположений

    Вы можете вставить ссылку на выбор местоположения города в шапку сайта. Для этого в нужном месте шаблона добавьте вызов компонента:
    <?$APPLICATION->IncludeComponent("twofingers:location","",Array());?>
    Для вашего удобства, чтобы вам не приходилось вручную править шаблон компонента, мы предусмотрели поля для классов, которые будут присвоены ссылкам вызова всплывающего окна, если вы захотите их кастомизировать.
    Если вы используете модифицированный компонент sale.order.ajax, для того, чтобы использовать улучшенный выбор местоположения при оформлении заказа, необходимо для компонента sale.ajax.locations прописать шаблон tf_location.

    Вызов пользовательской javascript-функции

    В настройках модуля можно вписать JS функцию, которая будет выполняться при выборе города пользователем. В её названии можно использовать плейсхолдеры:
    #TF_LOCATION_CITY_ID# - ID выбранного города
    #TF_LOCATION_CITY_NAME# - Имя выбранного города
    
    Например: handleMePlease('#TF_LOCATION_CITY_ID#', '#TF_LOCATION_CITY_NAME#');

    Обработка javascript-события onTFLocationSetLocation

    Также после выбора местоположения генерируется javascript-событие "onTFLocationSetLocation", в которое передаётся DOM-объект выбранного местоположения. Пример обработчика:
    BX.addCustomEvent("onTFLocationSetLocation", function(location)
    {
        var $location = $(location);
    
        console.log('location id: ' + $location.data('id'));
        console.log('location name: ' + $location.data('name'));
        console.log('location region name: ' + $location.data('region-name'));
    });

    Получение выбранного местоположения на сайте

    Настройки выбранного местоположения сохраняются в сессию и могут быть получены с помощью класса-обертки TwoFingers\Location\SessionStorage и использованы в других местах:
    use TwoFingers\Location\SessionStorage;
    
    if (CModule::IncludeModule('twofingers.location')) {
        echo SessionStorage::getLocationId(); // ID местоположения (из модуля "Интернет-магазин", если удалось соотнести, иначе из базы Sypex Geo)
        echo SessionStorage::getLocationName(); // название местоположения
        echo SessionStorage::getRegionId(); // ID региона из базы Sypex Geo
        echo SessionStorage::getRegionName(); // название региона
        echo SessionStorage::getCountryId(); // ID страны из базы Sypex Geo
        echo SessionStorage::getCountryName(); // название страны
    }
    
    Для композитного режима:
    use TwoFingers\Location\SessionStorage;
    
    if (CModule::IncludeModule('twofingers.location')) {
    
        $frame = new \Bitrix\Main\Page\FrameBuffered("my_dynamic_area");
        $frame->begin();
    
        echo SessionStorage::getLocationId(); // ID местоположения (из модуля "Интернет-магазин", если удалось соотнести, иначе из базы Sypex Geo)
        echo SessionStorage::getLocationName();  // название местоположения
        
        ...
    
        $frame->end();
    }

    Для работы с текущим местоположением предусмотрен класс TwoFingers\Location\Current:
    use TwoFingers\Location\Current;
    use TwoFingers\Location\SessionStorage;
    
    if (CModule::IncludeModule('twofingers.location')) {
    
        $current = Current::getInstance(); // получаем текущее местоположение пользователя
        echo $current->getLocationId(); // ID местоположения  (из модуля "Интернет-магазин", если удалось соотнести, иначе из базы Sypex Geo)
        echo $current->getLocationName(); // название местоположения
        echo $current->getRegionId(); // ID региона из базы Sypex Geo    echo SessionStorage::getRegionName(); // название региона
        echo $current->getCountryId(); // ID страны из базы Sypex Geo
        echo $current->getCountryName(); // название страны
    
        var_dump($current->getLocation()); // полная информация о местоположении, полученная из базы SypexGeo
    
    
        SessionStorage::setFromCurrent($current); // записываем текущее местоположение в сессию
    }

    Так же есть возможность получить информацию не только о текущем, но и о любом другом местоположении. Для этого в метод TwoFingers\Location\Current::getInstance() первым аргументом необходимо передать ip-адрес.


    Получение информации из инфоблока в зависимости от местоположения

    При установке модуля будет создан инфоблок "Контент" в типе "Местоположения". В этом инфоблоке Вы можете создавать элементы, привязанные в конкретному местоположению по имени или ид. Так же возможна привязка к отдельному сайту.

    Обратите внимание, что с данным инфоблоком вы можете работать так же, как и со всеми остальными: заполнять все доступные поля, добавлять и удалять свойства (кроме системных LOCATION_ID и SITE_ID). В возвращаемом элементе будет находиться вся доступная информация. Информация о свойствах будет находиться по ключу 'PROPERTIES'.

    Например, необходимо менять телефон в шапке сайта в зависимости от города:

    use TwoFingers\Location\Current;
    use TwoFingers\Location\Iblock\Content;
    
    if (CModule::IncludeModule('twofingers.location')) {
        $current = Current::getInstance(); // получаем текущее местоположение пользователя
        $element = Content::getByCurrent($current) // получаем элемент, привязанный к текущему местоположению
    
        echo $element['PROPERTY']['PHONE']['VALUE']; // выводим телефон
    }
    
    Обратите внимание, что метод TwoFingers\Location\Iblock\Content\getByCurrent сначала пытается найти элемент по id местоположения, в случае неудачи - по имени местоположения и в случае второй неудачи, возвращает дефолтное значение (элемент с кодом default). Вторым аргументом можно передать id сайта. В этом случае у элемента инфоблока также должно быт заполнено свойство SITE_ID.


    Пример работы с переменными без использования инфоблока

    Допустим, нам необходимо менять телефон в шапке сайта в зависимости от города. Привяжемся к названию города. Будем показывать один телефон для Москвы и другой телефон для всех остальных городов.
    <?
    use TwoFingers\Location\SessionStorage;
    
    if (CModule::IncludeModule('twofingers.location')) {
       if (SessionStorage::getLocationName() == 'Москва'):?>
           +7 (495) 055-65-19
       <?else:?>
            8 800 500 40 30
        <?endif;
    }
    
    Поддержка
    Мы можем оказать содействие в установке решения, а так же по вашему желанию добавить любой необходимый вам функционал.

    С нами можно свзяться по почте:  
    as@twofingers.ru

    Лицензионное соглашение

    Другие решения разработчика

    Решение добавлено в корзину

    Перейдите в корзину и оформите заказ или продолжите покупки
    Перейти в корзину
    Продолжить покупки