• Хочешь проходить курсы и зарабатывать на этом?

    Уникальное предложение для заработка организаторам!

    Вступай в совместное прохождение курсов, и получай их практически даром!

    Узнать подробнее
  • Открыт набор редакторов!

    получи безграничный доступ к нашим файлам, скриптам и инфокурсам БЕСПЛАТНО!!!

     

    Подробнее

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

Trinixy

Команда форума
Администратор
Регистрация
21.05.14
Сообщения
2.835
Реакции
1.428
Модуль автоматически определяет местоположение пользователя по его IP и предоставляет возможность выбора города из списка в удобном и стильном всплывающем окне.

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

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

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

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


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

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

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


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

Установка

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

Для корректной работы модуля на редакциях «Бизнес» и «Малый бизнес» необходимо, чтобы были загружены местоположения в базу модуля «Интернет-магазин» Вы не можете видеть эту ссылку.


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

Вы можете вставить ссылку на выбор местоположения города в шапку сайта. Для этого в нужном месте шаблона добавьте вызов компонента:
<?$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\Storage и использованы в других местах:
use TwoFingers\Location\Storage;

if (CModule::IncludeModule('twofingers.location')) {
echo Storage::getLocationId(); // ID местоположения (из модуля "Интернет-магазин", если удалось соотнести, иначе из базы Sypex Geo)
echo Storage::getLocationName(); // название местоположения
echo Storage::getRegionId(); // ID региона из базы Sypex Geo
echo Storage::getRegionName(); // название региона
echo Storage::getCountryId(); // ID страны из базы Sypex Geo
echo Storage::getCountryName(); // название страны
}
Для композитного режима:
use TwoFingers\Location\Storage;

if (CModule::IncludeModule('twofingers.location')) {

$frame = new \Bitrix\Main\Page\FrameBuffered("my_dynamic_area");
$frame->begin();

echo Storage::getLocationId(); // ID местоположения (из модуля "Интернет-магазин", если удалось соотнести, иначе из базы Sypex Geo)
echo Storage::getLocationName(); // название местоположения

...

$frame->end();
}

Для работы с текущим местоположением предусмотрен класс TwoFingers\Location\Current:
use TwoFingers\Location\Current;
use TwoFingers\Location\Storage;

if (CModule::IncludeModule('twofingers.location')) {

$current = Current::getInstance(); // получаем текущее местоположение пользователя
echo $current->getLocationId(); // ID местоположения (из модуля "Интернет-магазин", если удалось соотнести, иначе из базы Sypex Geo)
echo $current->getLocationName(); // название местоположения
echo $current->getRegionId(); // ID региона из базы Sypex Geo
echo $current->getCountryId(); // ID страны из базы Sypex Geo
echo $current->getCountryName(); // название страны

var_dump($current->getLocation()); // полная информация о местоположении, полученная из базы SypexGeo


Storage::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\Storage;

if (\CModule::IncludeModule('twofingers.location'))
{
if (Storage::getLocationName() == 'Москва')
echo "+7 (495) 055-65-19";
else
echo "8 800 500 40 30";
}
Для композитного режима:

use TwoFingers\Location\Storage;

if (\CModule::IncludeModule('twofingers.location'))
{
$frame = new \Bitrix\Main\Page\FrameBuffered("my_dynamic_area");
$frame->begin();

if (Storage::getLocationName() == 'Москва')
echo "+7 (495) 055-65-19";
else
echo "8 800 500 40 30";

$frame->end();
}


Продажник
Скрытое содержимое. Вам нужно войти или зарегистрироваться.

Скачать
Скрытое содержимое. Вам нужно войти или зарегистрироваться.
 
Похожие темы
Thread starter Заголовок Форум Ответы Дата
Trinixy 1С-Битрикс - Универсальный калькулятор услуг Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - БАННЕРЫ — 100 в 1. Конструктор баннеров с "умным таргетингом" и интеграцией с Я.Метрикой, GA и GTM Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Всплывающие окна PRO Решения для 1С-Битрикс 5
Trinixy 1С-Битрикс - Экспорт на порталы Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Установка модулей delta Решения для 1С-Битрикс 5
real 1С-Битрикс - INTEC:Ядро - базовый модуль для решений INTEC (бесплатно) Решения для 1С-Битрикс 2
real 1C-Битрикс - Остатки на складах Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Антирутин Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Мастер создания товарной категории Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Расчет стоимости доставки по Яндекс.карте Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Обмен данными между 1С:Предприятие 7.7 и 1С-Битрикс Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Ускорение загрузки сайта - оптимизация css, js и картинок (изображений) Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Сжатие изображений "на лету" под требования Google PageSpeed Insights Решения для 1С-Битрикс 0
real 1С-Битрикс Модуль сжатия HTML контента + inline CSS... Решения для 1С-Битрикс 2
Trinixy 1С-Битрикс - Маршрутный лист курьера Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Умный личный кабинет Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Мотивируем на регистрацию - повышаем продажи Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Автозаполнение описания и характеристик товара с Яндекс.Маркета Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - Конфигуратор товаров: ПК, авто, одежды. Пошаговая сборка Решения для 1С-Битрикс 0
Trinixy 1С-Битрикс - ХАМЕЛЕОН — 999 в 1. Безлимитный конструктор лендингов с корзиной и функциями для «автоворонок» Решения для 1С-Битрикс 7

Похожие темы

Правообладателям

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

  • ДИСКЛЕЙМЕР
  • О НАС

    На нашем форуме Вы можете скачать самые свежие и популярные скрипты, модули, стили, шаблоны, плагины, СЕО-скрипты, СЕО-софт, курсы по созданию и раскрутке сайтов, курсы по бизнесу, курсы, книги, тренинги и вебинары, по самым разным направлениям бесплатно!

    Сверху Снизу