Геолокация для InSales

Альтернатива региональным поддоменам для InSales. Контент на сайте меняется в зависимости от города пользователя: адрес склада, телефон, время работы.

Краткая информация

  • Платформа InSales
  • Задача Мультирегиональность
  • Решение Геолокация
  • Складов 8 в разных городах
  • Выбор Авто + ручной

Проблема

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

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

Решение

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

Как это работает

У магазина 8 складов в разных городах. Для каждого склада в админке настроены:

  • Адрес и контакты
  • Время работы
  • Особенности доставки
  • Способы оплаты

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

Где меняется контент

Информация по городу может быть на любых страницах:

  • Главная страница — адрес ближайшего склада
  • Страница доставки — сроки и условия для региона
  • Страница оплаты — доступные способы оплаты
  • Контакты — телефон регионального офиса
  • Футер — адрес и режим работы

Ротация складов

Если на странице показывается список всех складов, система выводит их с учетом геолокации. Склад пользователя всегда первый в списке, остальные идут по порядку после него.

Ручной выбор города

Определение по IP не всегда работает точно. Например, если человек использует VPN или находится в командировке.

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

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

Техническая реализация

  • Структура данных для 8 складов в JSON
  • Интеграция приложения геолокации
  • Динамический вывод через Liquid шаблоны
  • Сохранение выбора в localStorage
  • Обработка JSON с контактами складов

Этапы работы

  1. Спроектировали структуру данных для складов
  2. Настроили блоки с региональной информацией
  3. Добавили ротацию складов от города пользователя
  4. Установили приложение геолокации
  5. Настроили обработку данных через JavaScript
  6. Протестировали работу для всех городов

Возможности расширения

С помощью Liquid можно настроить любой вариант вывода:

  • Разные цены для регионов
  • Региональные акции и баннеры
  • Скрытие товаров, которых нет в регионе
  • Изменение валюты для разных стран
  • Показ разных способов доставки

Результат

Магазин работает с 8 складами, и каждый посетитель видит информацию своего региона. Это удобнее, чем показывать контакты всех складов сразу.

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

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

Теги

InSales Liquid JavaScript Геолокация JSON localStorage Мультирегиональность Динамический контент