0  /  57

Ammina.Regions: Регионы сайта (филиалы и представительства)

Содержание

Установка и настройка

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

Установка демо-версии модуля

Демо-режим модуля позволяет бесплатно установить и протестировать модуль в течении 21 дня. После этого для продолжения функционирования модуля необходимо приобрести на него лицензию.

Для установки модуля в демо режиме выполните следующие шаги:

Шаг 1.

Зайдите по ссылке http://marketplace.1c-bitrix.ru/solutions/ammina.regions/, нажмите кнопку «Попробовать».

Нет изображения

Укажите адрес вашего сайта (Например https://www.ammina-demo.ru/) и нажмите кнопку «Попробовать»

Нет изображения

Шаг 2.

Откроется страница загрузки модуля на сайт. Проверьте, что напротив модуля стоит галочка и нажмите кнопку «Загрузить»

Загрузка модуля Ammina. Регионы (филиалы и представительства)

Во всплывающем окне поставьте все галочки и нажмите кнопку «Применить»

Соглашение при установке модуля Ammina. Регионы (филиалы и представительства)

Шаг 3.

Дождитесь загрузки модуля и нажмите кнопку «Установить»

Установка модуля Ammina. Регионы (филиалы и представительства)

Заполните контактную форму и нажмите кнопку «Далее»

Регистрация модуля Ammina. Регионы (филиалы и представительства)

Модуль установлен. Теперь необходимо сделать минимальные настройки и действия, чтобы начать пользоваться модулем.

Установка модуля Ammina. Регионы (филиалы и представительства) завершена

Установка платной версии модуля

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

Для установки модуля в платном режиме выполните следующие шаги:

Шаг 1.

Зайдите по ссылке http://marketplace.1c-bitrix.ru/solutions/ammina.regions/, нажмите кнопку «Купить».

Нет изображения

Оплатите покупку и дождитесь письмо с кодом купона для активации модуля на вашем сайте.

Получен купон модуля Ammina. Регионы (филиалы и представительства)

Шаг 2.

Откройте страницу «Marketplace-> Обновление решений -> Активация купона» и в поле «Введите купон» укажите полученный купон купленного решения. Нажмите кнопку «Активировать купон» и дождитесь сообщения об успешной активации.

Активация купона модуля Ammina. Регионы (филиалы и представительства)

Откроется страница загрузки модуля на сайт. Проверьте, что напротив модуля стоит галочка и нажмите кнопку «Загрузить»

Загрузка модуля Ammina. Регионы (филиалы и представительства)

Шаг 3.

Дождитесь загрузки модуля и нажмите кнопку «Установить»

Установка модуля Ammina. Регионы (филиалы и представительства)

Заполните контактную форму и нажмите кнопку «Далее»

Регистрация модуля Ammina. Регионы (филиалы и представительства)

Модуль установлен. Теперь необходимо сделать минимальные настройки и действия, чтобы начать пользоваться модулем.

Установка модуля Ammina. Регионы (филиалы и представительства) завершена

Минимальные настройки для начала работы

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

Шаг 1.

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

Для этого откройте страницу «Магазин -> Настройки -> Местоположения -> Импорт местоположений».

Рекомендуем использовать расширенную базу местоположений до уровня «Село».

Обновление базы местоположений

Шаг 2.

Откройте страницу «Магазин -> Ammina Regions: Регионы (филиалы и представительства) -> Местоположение по IP -> Обновление базы».

Для редакций 1С-Битрикс без модуля Интернет-магазин административные страницы модуля находятся в глобальном меню «Сервисы»

Если вы хотите использовать API определения местоположения пользователя по IP с привязкой к местоположению интернет-магазина (либо для более точной работы службы геолокации при заполнении заказа) - то установите галочку «Привязать города базы IP к местоположениям при импорте».

Загрузка базы данных модуля Ammina. Регионы (филиалы и представительства)

После этого нажмите кнопку «Начать импорт» и дождитесь окончания процесса импорта базы данных SypexGeo на сайт.

Процесс загрузки базы данных модуля Ammina. Регионы (филиалы и представительства)

Внимание! Процесс импорта является затратным повремени. Время выполнения может составить от 1 до нескольких часов в зависимости от режима, мощности и нагрузки на сервер.

Загрузка базы данных модуля Ammina. Регионы (филиалы и представительства) завершена

Шаг 3.

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

Шаг 4.

Если вы используете мультидоменный режим, то для корректной работы сайта по отдаче файлов robots.txt и sitemap.xml для каждого домена необходимо в файл .htaccess в корне сайта добавить следующий код:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^robots.txt$ /bitrix/tools/ammina.robots.php [L,QSA]
</IfModule>

Это действие можно выполнить при помощи редактирования файла через FTP, либо через административный интерфейс сайта. Для этого зайдите на страницу Контент -> Структура сайта -> Файлы и папки, найдите файл .htaccess и откройте его в режиме редактирования PHP кода.

Открыть файл .htaccess на редактирование

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

Добавление конструкции в файл .htaccess

Шаг 5.

На странице Магазин -> Ammina Regions: Регионы (филиалы и представительства) -> Филиалы и представительства -> Домены создайте хотя бы 1 домен (обычно в первую очередь стоит создать основной домен сайта, который будет филиалом по умолчанию). Подробнее...

Поздравляем! Модуль готов к работе. Далее Вам необходимо определиться со списком индивидуальных для сайта переменных (зависимых от домена), списком доменов (филиалов), с ценами и моделью управления ценами в пределах филиала, с компаниями и ответственными. А также прочие сопутствующие вопросы по интеграции нашего модуля с сайтом.

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

Административные страницы

В разделе описаны административные страницы модуля.

Филиалы и представительства

В разделе описаны административные страницы управления данными доменов (филиалами и представительствами), переменными домена и расчетными типами цен для доменов.

Домены

Домен - информационная запись в базе данных модуля, позволяющая идентифицировать, какой региональный филиал/представительство активен для показа посетителю в настоящий момент, и менять соответствующие данные на сайте.

На странице доменов Вы можете просмотреть/отфильтровать список созданных доменов для филиалов/представительств, быстро отредактировать какие-либо данные домена, удалить запись домена, перейти к добавлению нового домена:

Домены (филиалов и представительств)

Добавление и редактирование домена

Прежде чем начать работу с модулем - создайте один или несколько доменов, зарегистрируйте их DNS записи и направьте на IP адрес Вашего сайта, пропишите данные новых доменов/субдоменов как альясы к основному домену.
Так же Вы можете начать работу в режиме одного домена. Для этого установите соответствующую настройку на странице настроек модуля.

Страница добавления/редактирования домена состоит из 3 логических блоков:

  • Домен. Содержит общие параметры домена (филиала/представительства)
  • Обслуживаемые страны/регионы/города. Раздел предназначен для группировки различных местоположений под одним доменом (филалом/представительством). Например филиал, расположенный в городе Нижний Новгород может обслуживать также Нижегородскую, Кировскую и Владимирскую области. В этом случае, если посетитель в качестве своего города укажет, например, Владимир, то он будет перенаправлен на домен филиала "Нижний Новгород"
  • Переменные домена. Раздел содержит перечень системных, системных редактируемых и пользовательских переменных для данного домена. При это значения двух последних типов могут быть отредактированы администратором сайта на данной странице.

Рассмотрим каждый раздел подробно:

Домен

Редактирование домена модуля Ammina. Регионы (филиалы и представительства)

Список полей и их значений

Название поля Описание
Название Название домена (филиала/представительства) для отображения в публичной и административной части сайта
Активность Домен активен
По умолчанию Данный домен является доменом по умолчанию для сайта
Домен Доменное имя. Без указания http://. Например www.ammina-demo.ru
Сайт Сайт, для которого используется данный домен
Основной город Основной город домена (филиала/представительства)
Ответственный сотрудник для заказов Пользователь, который будет установлен для новых заказов, сделанных на данном домене.
Компания (офис) для заказов Компания, на которую будет оформлен новый заказа, сделанный на данном домене. Подробную информацию о компаниях можно узнать на сайте 1С-Битрикс.
Создать компанию в модуле интернет-магазина После сохранения домена модуль автоматически создаст новую компанию модуле интернет-магазине.
Добавить компании ограничение для домена Для созданной компании будет добавлено ограничение доступности только для текущего домена
Создать группы для компании (сотрудники и ответственные сотрудники Для созданной компании будет добавлены группы пользователей - группы, относящиеся к компании и группы ответственных (они же будут добавлены в настройки соответствующей компании)
Привязать ответственного сотрудника к группам компании Выбранный ответственный сотрудник по умолчанию будет привязан к указанным выше группам пользователей
EMail по умолчанию EMail отправителя по-умолчанию для исходящих писем с данного домена
Цены Перечень типов цен, которые доступны на данном домене
Склады Перечень складов, которые доступны на данном домене
Счетчики Код счетчиков, которые устанавливаются для данного домена
Строки в HEAD Дополнительные строки, помещаемые между тэгами HEAD в HTML коде страницы
Создать настройку для генерации карты сайта домена Создает настройку для генерации карты сайта. Настройка будет доступна в модуле поисковой оптимизации - страница Маркетинг -> Поисковая оптимизация -> Настройка sitemap.xml
Создать файл robots.txt для домена Создает файл robots.txt для данного домена. Файлы доступны для редактирования в каталоге /seofiles/robots/доменное_имя.txt

Обслуживаемые страны/регионы/города домена

Обслуживаемые регионы домена модуля Ammina. Регионы (филиалы и представительства)

Список полей и их значений

Название поля Описание
Страна Перечень стран, которые будут обслуживаться данным филиалом
Регион Перечень регионов, которые будут обслуживаться данным филиалом
Город Перечень городов, которые будут обслуживаться данным филиалом
Удалить Удаляет текущую запись обслуживаемой страны/региона/города

Переменные домена

Переменные домена модуля Ammina. Регионы (филиалы и представительства)

Список полей и их значений

Название поля Описание
Разделитель множественных значений переменных Значение шаблона переменной будет слито через указанный разделитель при условии что значение множественное
Название Название переменной
Шаблон Шаблон, который заменяется на значение переменной. Используется в HTML коде страницы, в СЕО-данных элементов и разделов инфоблоков, а также в почтовых сообщениях
Глобальная переменная Название глобальной переменной, которой присваивается значение текущей доменной переменной
Значение Сгенерированное либо указываемое администратором сайта значение текущей переменной для редактируемого домена

Переменные

Переменная - информационная единица, содержащая индивидуальные значения для каждого домена.

Переменные подразделяются на:

  • Системные переменные. Данные переменные нельзя удалять и редактировать. Обычно содержать копию данных соответствующих полей записи домена (филиала/региона).
  • Системные редактируемые переменные. Данные переменные могут редактировать администраторы сайта, но не могут удалять их. Пример - валюта домена.
  • Пользовательские переменные. Данный тип переменных полностью управляется администратором сайта. Может содержать любые текстовые данные, указываемые для каждого домена (например такие, как название в определенном падеже для домена, либо ключ к API Яндекс, либо другие данные, индивидуальные для каждого отдельного проекта).

Список переменных для доменов

Добавление и редактирование переменной

На данной странице Вы можете просмотреть информацию по системным и системным редактируемым переменным, а так же добавит/отредактировать собственные пользовательские переменные.

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

Редактирование переменной модуля Ammina. Регионы (филиалы и представительства)

Расчет цен

Расчетная цена - цена, формируемая как отношение к другой.

Расчетные цены формируются при помощи агента, включаемого и управляемого на странице настроек модуля.

Варианты расчетов цен:

  • Увеличить значение от базовой цены на процент
  • Уменьшить значение от базовой цены на процент
  • Увеличить значение от базовой цены на фиксированное значение
  • Уменьшить значение от базовой цены на фиксированное значение
  • Изменить валюту для расчетной цены

Список расчетных цен

Добавление и редактирование расчетной цены

Данная страница позволяет отредактировать или добавить расчетную цену.

Название поля Описание
Активность Активность расчета цены в агенте
Сортировка Порядок сортировки для расчетов
Установить валюту При расчете цена будет сконвертирована по текущему курсу и установлена выбранная валюта
Базовая цена для расчета Относительно какой цены будет выполняться расчет
Расчетная цена В какой тип цен будет записано вычисленное значение
Тип расчета Тип изменения цены
Значение изменения Значение, на которое изменится расчетная цена относительно базовой (и в соответствии с типом расчета)

Редактирование расчетной цены

Геозависимый контент

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

Типы

Тип геозависимого контента - это определенный блок текстового содержимого, содержание которого меняется в зависимости от местоположения посетителя или домена. Типами геозависимого контента, например, могут быть: телефон, время работы, адрес офиса и т.п.

Геозависимый контент заключается в тэги (обычно тэг DIV), у которого прописывается аттрибут ID или CLASS, указываемый у данного типа контента.

В публичной части сайта геозависимый контент выводится соответствующим компонентом. Подробнее...

Типы геозависимого контента

Добавление и редактирование типа геозависимого контента

На данной странице производится редактирование и добавление типа геозависимого контента. Укажите название и необходимые поля.

В публичной части сайта геозависимый контент выводится соответствующим компонентом. Подробнее...

Редактирование типа геозависимого контента

Контент

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

Геозависимый контент может быть:

  • Для страны
  • Для региона
  • Для города
  • Для домена (филиала/представительства)

Кроме того дополнительно содержимое геозависимого контента может меняться:

  • В определенных временных интервалах
  • В зависимости от дня недели
  • В зависимости от календарной даты
  • В зависимости от свободного PHP-условия

В публичной части сайта геозависимый контент выводится соответствующим компонентом. Подробнее...

Список геозависимого контента

Добавление и редактирование геозависимого контента

На данной странице производится редактирование и добавление геозависимого контента. Укажите название и необходимые поля.

Внимание! Не забудьте создать геозависимый контент по-умолчанию. Он будет отображаться в том случае, если не найден геозависимый контент с соответствующими условиями отображения. Для этого создайте запись геозависимого контента без указания полей Страна/Регион/Город/Домен.

Назначение полей геозависимого контента:

Название поля Описание
Тип контента В каком блоке типа геозависимого контента будет показана данная запись
Страна Страна, для которой будет выводиться данный контент
Регион Регион, для которого будет выводиться данный контент
Город Город, для которого будет выводиться данный контент
Домен Домен (филиал), для которого будет выводиться данный контент
Активность Флаг активности данной записи
Геозависимый контент Контент, который будет выведен при отсутствии совпадений с расширенными условиями контента

Назначение полей расширенных условий геозависимого контента:

Название поля Описание
Правило активно Флаг активности
Индекс сортировки Порядок, по которому проверяются расширенные условия до первого совпадения
Тип правила Тип условия проверки
Правило Условие проверки
Геозависимый контент Контент, который будет показан при выполнении условий правила
Удалить Удаляет сохраненное правило

Типы правил расширенных условий геозависимого контента:

Тип правила Описание
Время суток (с .. по ..) В какой период каждых суток будет выводится данный контент. Например вы хотите с 10:00 до 16:59 показывать номер 8-800... В остальное время показываем посетителям номер 8-495...
Дни недели В какие дни недели будет выводится данный контент. Например в выходные вы хотите показывать номер 8-495.
Дата и время (с .. по ..) В какой период времени выводить данный контент. Например в период новогодних праздников показывать номер 8-495.
Условие PHP Свободное условие PHP, которое должно вернуть TRUE для срабатывания правила. Например Ваш разработчик может сделать функцию отслеживания источника захода посетителя на сайт и выводить для разных источников разные номера телефонов.

Редактирование геозависимого контента

Местоположение по IP

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

Страны

В данном разделе отображается перечень стран базы данных определения местоположения пользователя по IP

Список стран базы определения местоположения пользователя по IP

Просмотр страны базы определения местоположения пользователя по IP

Регионы

В данном разделе отображается перечень регионов базы данных определения местоположения пользователя по IP

Список регионов базы определения местоположения пользователя по IP

Просмотр региона базы определения местоположения пользователя по IP

Города

В данном разделе отображается перечень городов базы данных определения местоположения пользователя по IP

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

Список городов базы определения местоположения пользователя по IP

Просмотр и редактирование города базы определения местоположения пользователя по IP

Блоки IP

В данном разделе отображается список блоков IP адресов стран базы данных определения местоположения пользователя по IP

Список блоков IP адресов базы определения местоположения пользователя по IP

Обновление базы

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

Внимание! Процесс импорта данных может занимать от 1 до нескольких часов в зависимости от настроек, мощности и нагрузки на Ваш хостинг.

Назначение полей формы

  • Длительность шага в секундах! - сколько времени будет занимать одно обращение к сайту в процессе импорта. Рекомендуется от 15 секунд на виртуальном хостинге до 30-40 секунд на выделенном сервере
  • Удалить справочники городов, регионов и стран! - перед импортом будет очищены соответствующие справочники. После завершения импорта не забудьте указать город по умолчанию, и при необходимости укажите избранные города
  • Привязать города базы IP к местоположениям при импорте! - при импорте будет предпринята попытка привязать страны, регионы и города базы модуля к местоположениям модуля Интернет-магазин.

Обновление базы стран, регионов, городов и IP адресов

Страница настроек модуля

Данная страница позволяет настроить параметры модуля Ammina. Регионы (филиалы и представительства)

Страница настроек модуля расположена по адресу административной части сайта: Настройки -> Настройки продукта -> Настройки модулей -> Ammina. Регионы (филиалы и представительства)

Параметр «Работать на одном домене»

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

Агент пересчета цен (расчетных цен)

Группа параметров управления агентом пересчета цен позволяет настроить параметры его работы. Работа агента зависит от системных настроек исполнения агентов (на хитах или в кроне) и устанавливается соответствующими параметрами:

  • Активировать агент пересчета цен - Включаем или выключаем работу данного агента
  • Исполнять агента пересчета цен только в кроне за 1 цикл (иначе пошаговое исполнение на хитах) - Параметр блокирует исполнение агента на хитах даже при системных настройках исполнения агентов не в кроне
  • Период запуска агента (мин.) - Период между запусками циклов пересчета цен
  • Длительность 1 шага при запуске агента на хитах (сек.) - Время одного шага работы агента при исполнении на хитах
  • Время между шагами при запуске агента на хитах (сек.) - Время между шагами работы агента при исполнении на хитах

При исполнении агента в кроне выполнение агента осуществляется в 1 шаг.

Агент подстановки доступности товаров по доменам

Данный агент производи расчет доступности товаров в инфоблоках, являющихся каталогами товаров, по доменам, в зависимости от остатков на складах, привязанных к доменам. Работа агента зависит от системных настроек исполнения агентов (на хитах или в кроне) и устанавливается соответствующими параметрами:

  • Активировать агент подстановки доступности товаров по доменам - Включаем или выключаем работу данного агента
  • Суммировать количество по складам для SKU в основной товар - При типе товара SKU остатки по складам торговых предложений будут просуммированы и записаны в остаток соответствующего склада основного товара
  • Перезаписывать остаток товара по данным остатков по складам - Включение данной функции суммирует остаток товаров по складам и перезаписывает остаток товара (Доступное количество) на вкладке «Торговый каталог» товаров
  • Исполнять агента подстановки доступности товаров только в кроне за 1 цикл (иначе пошаговое исполнение на хитах) - Параметр блокирует исполнение агента на хитах даже при системных настройках исполнения агентов не в кроне
  • Период запуска агента подстановки доступности товаров (мин.) - Период между запусками циклов пересчета цен
  • Длительность 1 шага при запуске агента подстановки доступности товаров на хитах (сек.) - Время одного шага работы агента при исполнении на хитах
  • Время между шагами при запуске агента подстановки доступности товаров на хитах (сек.) - Время между шагами работы агента при исполнении на хитах

При исполнении агента в кроне выполнение агента осуществляется в 1 шаг.

Доступность товаров по складам подставляется в свойство элементов инфоблоков с символьным кодом SYS_DOMAIN_AVAILABLE. Свойство создается автоматически и может применяться для фильтрации отображения товаров каталога по доменам (филиалам/представительствам)

Провайдер товаров каталога

Для автоматического определения доступности товаров по доменам (в соответствии с остатками по складам, привязанных к доменам) и ограничения их доступности в соответствии с настройками, необходимо активировать использование встроенного в модуль собственного провайдера товаров, который является расширением стандартного класса провайдера товаров 1С-Битрикс.

Страница настроек модуля Ammina. Регионы (филиалы и представительства)

Компоненты для публичной части

В разделе описаны компоненты публичной части.

Геозависимый контент (ammina:regions.geocontent)

Компонент «Геозависимый контент (ammina:regions.geocontent)» предназначен для вывода в публичной части блоков геозависимого контента.

Компонент может быть добавлен через визуальный редактор

Компонент Геозависимый контент (ammina:regions.geocontent)

либо добавлен как PHP код в нужное место страницы:

<?$APPLICATION->IncludeComponent(
    "ammina:regions.geocontent",
    ".default",
    array(
        "CACHE_TIME" => "300",
        "CACHE_TYPE" => "A",
        "CONTENT_TYPE" => "1",
        "IP" => "",
        "SET_TAG_IDENT" => "Y",
        "SET_TAG_TYPE" => "span"
    ),
    false
);?>

Пользовательские свойства

Параметры компонента

Ключ параметра Название параметра Описание
CONTENT_TYPE Тип геозависимого контента ID типа геозависимого контента для показа в данном блоке
SET_TAG_IDENT Установить HTML-тэг с идентификатором или классом выбранного типа геозависимого контента При установке данной галочки, контент будет обрамлен в HTML тэги, которым будет присвоен класс или идентификатор, указанный в настройках типа геозависимого контента.
SET_TAG_TYPE Какой HTML-тэг устанавливать Какой тэг использовать для обрамления (например span или div)
IP IP адрес Какой IP адрес использовать для определения местоположения посетителя (оставьте пустым для автоматического определения IP адреса)

Определение текущего местоположения (ammina:regions.selector)

Компонент «Определение текущего местоположения (ammina:regions.selector)» предназначен для вывода в публичной части формы показа и выбора местоположения посетителя.

Компонент может быть добавлен через визуальный редактор

Компонент Определение текущего местоположения (ammina:regions.selector)

либо добавлен как PHP код в нужное место страницы:

<?$APPLICATION->IncludeComponent(
    "ammina:regions.selector",
    "",
    Array(
        "CACHE_TIME" => "86400",
        "CACHE_TYPE" => "A",
        "CHANGE_CITY_MANUAL" => "Y",
        "CITY_VERIFYCATION" => "Y",
        "INCLUDE_JQUERY" => "Y",
        "COUNT_SHOW_CITY" => "24",
        "IP" => "",
        "SEARCH_CITY_TYPE" => "R",
        "SHOW_CITY_TYPE" => "D",
        "USE_GPS" => "Y",
    )
);
?>

Параметры компонента

Ключ параметра Название параметра Описание
CHANGE_CITY_MANUAL Разрешить изменение посетителем Разрешает или запрещает изменение посетителем города (автоматически определенного)
CITY_VERIFYCATION Подтверждать определение города Запрашивать у посетителя подтверждение правильности определения города
INCLUDE_JQUERY Подключать JQuery в компоненте Подключает библиотеку в компоненте. Если на сайте уже подключена данная библиотека (так бывает на многих современных сайтах), то необходимо снять данную галочку
IP IP адрес Какой IP адрес использовать для определения местоположения посетителя (оставьте пустым для автоматического определения IP адреса)
COUNT_SHOW_CITY Количество выводимых городов Какое количество городов выводится во всплывающем окне
SEARCH_CITY_TYPE Тип поиска местоположений Какое правило будет действовать при сортировке городов при поиске во всплывающем окне (когда посетитель начинает вводить название города):
  • R - в соответствии с запросом и ближайшие по GPS координатам к посетителю
  • Q - только в соответствии с запросом
SHOW_CITY_TYPE Тип отображаемых местоположений по умолчанию Указывает, какие местоположения отображать на начальной странице всплывающего окна уточнения местоположения:
  • R - ближайшие, найденные по GPS координатам посетителя
  • F - избранные города, указанные в базе городов модуля
  • D - основные города доменов (названия доменов)
USE_GPS Использовать GPS При уточнении посетителем города пытаться определить ближайший город при помощи GPS координат, передаваемых устройством посетителя. Внимание! Координаты будут доступны при поддержке браузером пользователя данного функционала, при соответствии сайта политике безопасности браузера посетителя (обычно сайт должен работать по HTTPS протоколу), а так же если посетитель разрешит предоставление своих GPS координат сайту.

Пользовательские свойства

Вместе с модулем поставляются несколько пользовательских свойств для элементов инфоблоков и для дополнительных полей (разделов инфоблоков и других модулей, которые поддерживают пользовательские типы свойств):

Свойства инфоблоков

Пользовательские свойства

Функциональность и приёмы работы

В разделе описана функциональность, основные сценарии и приёмы работы с модулем для решения поставленных задач.

Сценарии управления ценами для домена (филиала/представительства)

Модуль Ammina.Regions: Регионы сайта (филиалы и представительства) предоставляет 3 модели управления ценами в пределах домена:

  • Стандартные типы цен. Обычно управление такими ценами происходит или вручную на сайте, или эти цены загружаются из 1С, либо из каких-либо прайс-листов.
  • Расчетные типы цен. Управление данными ценами осуществляется на странице Магазин -> Ammina Regions: Регионы (филиалы и представительства) -> Филиалы и представительства -> Расчет цен. Данные типы цен являются производными от некоторого базового типа цен (который может быть как стандартным типом цен, так и расчетным)
  • Скидки/наценки на товары в пределах домена. Модуль предоставляет возможность использовать скидки (правила корзины модуля интернет-магазин) с ограничением действия данной скидки в пределах одного/нескольких доменов.

Загрузка цен для домена (филиала/представительства) из 1С

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

Подробную документацию по интеграции с 1С Вы можете найти здесь.

Расчет цены для филиала/представительства от любой имеющейся цены

Модуль предоставляет возможность расчитывать одни типы цен относительно других.

В каких случаях этот функционал пригодится?

  • если не используете 1С для установки цен на сайте
  • если нет возможности или желания управлять ценами доменов/филиалов в 1С
  • если цены загружаются из прайс-листов поставщиков
  • если вы хотите для отдельных филиалов поменять валюту цен
  • если хотите связать по определенным правилам цену одного филиала с ценой другого (например: цена в Омске = +20% от цены в Москве; цена в Красноярске = +15% от цены в Омске; цена в Астане = +12% от цены в Омске, а также конвертирование валюты тенге)
  • при других подобных условиях и задачах

Для использования данного функционала необходимо:

  • завести необходимые типы цен на странице Магазин -> Настройки -> Цены -> Типы цен
  • привязать типы цен к необходимым доменам (филиалам) на странице модуля Магазин -> Ammina Regions: Регионы (филиалы и представительства) -> Филиалы и представительства -> Домены. Подробнее...
  • завести расчетные цены на странице модуля Магазин -> Ammina Regions: Регионы (филиалы и представительства) -> Филиалы и представительства -> Расчет цен. Подробнее...
  • Активировать агент пересчета цена на странице настроек модуля. Подробнее...

Скидки, действующие для домена (филиала/представительства)

Модуль предоставляет возможность ограничивать действие скидок в пределах одного или нескольких доменов.

В каких случаях этот функционал пригодится?

  • если необходимо провести какую-либо акцию в пределах одного или нескольких филиалов
  • если необходимо изменить цены на товары (все или отдельные выборки) в пределах одного или нескольких филиалов
  • дарить подарки в одном или нескольких филиалах
  • при других подобных условиях и задачах

Для использования данного функционала необходимо:

  • перейти в раздел Маркетинг -> Товарный маркетинг -> Правила работы с корзиной
  • создать или открыть на редактирование новое правило работы с корзиной
  • указать домен (филиал) на вкладке Действия и условия в разделе Дополнительные условия

Доступность правила корзины (скидок) для некоторых доменов (филиалов)

В результате для выбранных доменов будет выведена скидка:

Пример работы скидки для домена - скидка для домена Калуга

При это на других доменах эта скидка применяться не будет:

Пример работы скидки для домена - без скидки

Вывод цен домена (филиала/представительства) в публичной части

Для корректного вывода цен, доступных для домена, на сайте необходимо произвести следующие действия:

  • указать у компонентов, выводящих товары на сайте, перечень типов цен, доступных для данного домена (филиала). Данный пункт является обязательным.
  • у компонентов, выводящих товаров на сайте, указать параметр «Выводить цены в одной валюте». В этом случае так же необходимо обеспечить ежедневный актуальный курс конвертации валют в модуле «Валюты&rauqo;. Данный пункт является обязательным только в том случае, если используются типы цен с валютами, отличными от базовой.
  • обеспечить корректный выбор оптимальной цены для расчета стоимости товаров в корзине и в заказе. Данный пункт реализован в ядре модуля.

Указание у компонентов перечня цен, доступных для вывода на домене (в филиале)

Ниже представлен код для реализации первых 2-х пунктов на примере комплексного компонента «Каталог»

Перейдите к странице, содержащей установленный компонент и откройте ее в режиме редактирования PHP кода.

Установка доступных цен и валюты для филиала

Параметры подключения комплексного компонента для ограничения вывода цен и валюты для домена

"PRICE_CODE" => (CModule::IncludeModule("ammina.regions") ? CAmminaRegions::getGlobalVariable($GLOBALS['AMMINA_REGIONS']['SYS_PRICE_CODE'], array("BASE"), true) : array("BASE")),
"CONVERT_CURRENCY" => "Y",
"CURRENCY_ID" => (CModule::IncludeModule("ammina.regions") ? CAmminaRegions::getGlobalVariable($GLOBALS['AMMINA_REGIONS']['SYS_CURRENCY'], "RUB") : "RUB"),

Данная конструкция является безопасной на случай удаления модуля. Например код присвоения значения ключу PRICE_CODE читается следующим образом:

  • если установлен модуль ammina.regions
    • вызовем функцию возврата значения глобальной переменной домена с передачей параметра SYS_PRICE_CODE (цены домена)
    • если переменная пустая, то вернем массив с кодом цены BASE
    • значение всегда возвращаем в виде массива
  • иначе установим массив с кодом цены BASE

Примеры ограничения видимости динамического контента по доменам

Модуль Ammina.Regions: Регионы сайта (филиалы и представительства) позволяет ограничить видимость контента (товары, разделы каталога, новости и тд) в пределах определенных доменов (филиалов). Обычно это необходимо для решения следующих задач:

  • Скрытия на отдельных доменах недоступных товаров на складах филиала
  • В отдельные филиалы отдельные группы товаров не поставляются
  • Вывести на определенном домене новости, относящиеся только к данному региону (филиалу)
  • Подключать на разных доменах различные инфоблоки (каталоги товаров, новости, акции и тп)
  • Прочие подобные задачи.

Ограничение видимости по доменам разделов и элементов информационных блоков

При необходимости не показывать отдельные разделы или элементы информационных блоков на сайте на определенных доменах (филиалах) необходимо произвести (для примера) следующие действия:

  • создать у разделов инфоблока (или у элементов инфоблока) свойство с типом Ammina.Regions: Домен, сделав его множественным и назвать, например, «Не показывать на доменах»
  • в файле init.php реализовать функцию, которая будет либо возвращать список разделов, которые не должны быть видны на текущем домене, либо проверять, относится ли раздел к скрываемым на данном домене, либо проверять, является ли элемент скрываемым на данном домене. Пример функции 1-го типа приведен ниже.
  • произвести изменения в коде в соответствии с логикой стоящей для реализации задачи.
  • если на сайте используется кэширование, то рекомендуется у всех компонентов, которые выводят динамические данные, зависимые от домена, добавить параметр "ARG_DOMAIN_ID" => $GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID']
  • в некоторых случаях может понадобится незначительная кастомизация некоторых стандартных компонентов. Чаще всего это будет выражаться в добавлении ключа кэширования в компоненте для разделения кэша по доменам, либо в изменении условий фильтрации.
  • в приложении к данной документации приведены архивы файлов шаблонов, кастомизированных компонентов, файла init.php, которые используются на нашем демонстрационном сайте https://www.ammina-demo.ru/

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

function _getNotViewDomainSections($IBLOCK_ID, $PROPERTY_CODE, $DOMAIN_ID)
{
    $arResult = array();
    $obCache = new CPHPCache();
    if ($obCache->InitCache(36000, $IBLOCK_ID . "|" . $PROPERTY_CODE . "|" . $DOMAIN_ID, "/ammina/domain/sections/notview")) {
        $arResult = $obCache->GetVars();
    } elseif ($obCache->StartDataCache()) {
        if (\Bitrix\Main\Loader::includeModule("iblock")) {
            $rSections = CIBlockSection::GetList(array("left_margin" => "ASC"), array("IBLOCK_ID" => $IBLOCK_ID), false, array($PROPERTY_CODE));
            $depthLevelNotView = 0;
            $notViewChild = false;
            while ($arSection = $rSections->Fetch()) {
                if ($notViewChild) {
                    if ($arSection['DEPTH_LEVEL'] <= $depthLevelNotView) {
                        $notViewChild = false;
                        $depthLevelNotView = 0;
                    } else {
                        $arResult[] = $arSection['ID'];
                    }
                }
                if ((!is_array($arSection[$PROPERTY_CODE]) && $arSection[$PROPERTY_CODE] == $DOMAIN_ID) || (is_array($arSection[$PROPERTY_CODE]) && in_array($DOMAIN_ID, $arSection[$PROPERTY_CODE]))) {
                    if (!$notViewChild) {
                        $notViewChild = true;
                        $depthLevelNotView = $arSection['DEPTH_LEVEL'];
                        $arResult[] = $arSection['ID'];
                    }
                }
            }
        }
        $obCache->EndDataCache($arResult);
    }
    return $arResult;
}

Пример вызова функции для текущего домена:

$ARG_HIDE_SECTIONS = _getNotViewDomainSections($arParams['IBLOCK_ID'], "UF_NOT_SHOW_DOMAIN", $GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID']);

Пример ограничения видимости некоторых товаров на отдельных доменах

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

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

<? if (!empty($GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID'])) {
    $GLOBALS['arrFilter'] = array(
        "PROPERTY_SYS_DOMAIN_AVAILABLE" => $GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID'],
    );
} ?>

Так же не забудьте указать в параметрах компонента название переменной фильтра (в данном случае - arrFilter), и параметр компонента, для корректной работы кэша:

"ARG_DOMAIN_ID" => $GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID'],

В приложении к данной документации приведены архивы файлов шаблонов, кастомизированных компонентов, файла init.php, которые используются на нашем демонстрационном сайте https://www.ammina-demo.ru/

Пример сортировки товаров по наличию в регионе

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

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

<? if (!empty($GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID'])) {
    $GLOBALS['arrFilter'] = array(
        ">=PROPERTY_SYS_DOMAIN_AVAILABLE_SORT" => $GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID'] * 2 - 1,
        "<=PROPERTY_SYS_DOMAIN_AVAILABLE_SORT" => $GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID'] * 2,
    );
} ?>

Так же не забудьте указать в параметрах компонента название переменной фильтра (в данном случае - arrFilter), и параметр компонента, для корректной работы кэша:

"ARG_DOMAIN_ID" => $GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID'],

и первое свойство сортировки

"ELEMENT_SORT_FIELD" => "PROPERTY_SYS_DOMAIN_AVAILABLE_SORT",

Пример ограничения видимости новостей филиалов

Для того, чтобы вывести новости, которые относятся к данному филиалу (домену) необходимо:

  • в инфоблоке новостей создать свойство с типом «Ammina.Regions: Домен» (свойство можно создать как не множественное, так и множественное, для привязки новости к нескольким филиалам). У свойства укажите символьный код, например ARG_ALLOW_DOMAINS
  • На странице, содержащей подключение комплексного компонента «новости» укажите код дополнительного фильтра:
<?
if (!empty($GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID'])) {
    $GLOBALS['arrFilter'] = array(
        "PROPERTY_ARG_ALLOW_DOMAINS" => $GLOBALS['AMMINA_REGIONS']['SYS_CURRENT_DOMAIN_ID'],
    );
}

?>

SEO и геозависимый контент для доменов (филиалов/представиетльств)

Модуль Ammina.Regions: Регионы сайта (филиалы и представительства) предоставляет возможность уникализации мета-данных, заголовков страниц, названий элементов для различных доменов (филиалов), а так же создания отдельно для каждого домена файлов robots.txt и карт сайта.

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

Добавление SEO данных для разделов сайта

На странице редактирования любого домена находится перечень системных и пользовательских переменных с их значениями для редактируемого домена. В колонке «Шаблон» находится шаблон переменной, который будучи размещенным на странице сайта, будет заменен на соответствующее значение.

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

SEO параметры для раздела сайта

Результаты SEO параметра раздела сайта

Добавление SEO данных для статичных страниц сайта

На странице редактирования любого домена находится перечень системных и пользовательских переменных с их значениями для редактируемого домена. В колонке «Шаблон» находится шаблон переменной, который будучи размещенным на странице сайта, будет заменен на соответствующее значение.

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

Редактирование SEO свойств статической страницы

Редактирование контента статической страницы

Результаты SEO параметра статической страницы

Добавление SEO для разделов и элементов инфоблоков

На странице редактирования любого домена находится перечень системных и пользовательских переменных с их значениями для редактируемого домена. В колонке «Шаблон» находится шаблон переменной, который будучи размещенным на странице сайта, будет заменен на соответствующее значение.

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

На вкладке SEO на страница редактирования информационного блока, раздела или элемента информационного блока, в выпадающем меню кнопки показа шаблонов SEO параметров, присутствует пункт «Регионы (филиалы и представительства)», в подменю у которого находится полный список пользовательских и системных переменных для модификации SEO данных по доменах. Отредактируйте SEO шаблоны Ваших информационных блоков, разделов и элементов с использованием этих данных.

Редактирование SEO данных инфоблока

Результат редактирования SEO данных инфоблока

Карта сайта для домена (sitemap.xml)

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

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

Карта сайта для домена

Файл robots.txt для домена

При редактировании домена Вы можете указать необходимость генерации файла robots.txt редактируемого домена.

Файл robots.txt будет размещен в каталоге /seofiles/robots/ сайта, где Вы можете его отредактировать для каждого домена в отдельности.

Файл robots.txt будет размещен в каталоге /seofiles/robots/ сайта, где Вы можете его отредактировать для каждого домена в отдельности.

Для корректной работы сайта с поисковыми системами и отдаче поисковой системе сайтом файла robots.txt для соответствующего домена, Вам необходимо выполнить шаг 4 из урока "Минимальные настройки для начала работы"

Оформление заказа в интернет-магазине

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

  • Различные цены на одни и те же товары в разных регионах
  • Различные скидки на товары и доставку в разных регионах
  • Различные остатки на складах для разных регионов
  • Различные службы доставки для разных регионов
  • Различные способы оплаты для разных регионов
  • Различные ответственные лица по обработке заказов для разных регионов

Весь этот функционал реализован в данном модуле.

Подстановка местоположения (города) посетителя в форму оформления заказа

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

Что необходимо сделать для этого?

  • на странице Настройки -> Настройки продукта -> Геолокация добавить обработчик Ammina.Regions: определение IP
  • рекомендуется деактивировать все остальные обработчики
  • После этого в компоненте оформления заказа необходимо установить параметр «Определять местоположение покупателя по IP-адресу»

Подключение обработчика геолокации

Настройки компонента оформления заказа для геолокации

Ограничения доступных для домена служб доставки

Для ограничения доступности отдельных служб доставки по доменам необходимо:

  • зайти на страницу Магазин -> Настройки -> Службы доставки
  • открыть на редактирование необходимую службу доставки
  • добавить ограничение по домену (филиалу/представительству)

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

Ограничения доступных для домена платежных систем

Для ограничения доступности отдельных платежных систем по доменам необходимо:

  • зайти на страницу Магазин -> Настройки -> Платежные системы
  • открыть на редактирование необходимую платежную систему
  • добавить ограничение по домену (филиалу/представительству)

Ограничение платежной системы по домену

Компания (филиал/представительство), на которую будет оформляться заказ

Для ограничения доступности компаний по доменам необходимо:

  • зайти на страницу Магазин -> Настройки -> Компании
  • открыть на редактирование необходимую компанию
  • добавить правило по домену (филиалу/представительству)

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

Ограничение компаний по домену

Ответственный сотрудник для новых заказов (для домена/филиала/представительства)

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

Редактирование заказа в административной части

После создания заказа покупателем на определенном домене, у заказа создается служебное свойство «Домен сайта (филиал, представительство)», которое содержит ссылку на домен (филиал), в котором сделан заказ.

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

При необходимости заказ можно перенести на другой домен. Для этого:

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

Редактирование заказа в административной части

Для разработчиков

При использовании региональности на URL адресах

Настройка компонента bitrix:catalog.smart.filter

  • Откройте папку вашего шаблона компонента. Если шаблон компонента не находится в вашем шаблоне сайта, то рекомендуется сделать копию шаблона компонента в папку шаблона сайта.
  • Откройте, либо создайте файл result_modifier.php в шаблоне компонента.
  • В конец файла вставьте следующий код:
CModule::IncludeModule('ammina.regions');
$cityId = false;
$app = \Bitrix\Main\Application::getInstance();
$cityId = intval($app->getContext()->getRequest()->getCookie("ARG_CITY"));
if ($cityId <= 0) {
    $cityId = \Ammina\Regions\BlockTable::getCityIdByIP();
}
$iDomain = \Ammina\Regions\DomainTable::doFindDomainByCity($cityId, SITE_ID);
$arResult["FORM_ACTION"] = CAmminaRegions::ConvertUrlToPathRegion($arResult["FORM_ACTION"], $iDomain);
$arResult["JS_FILTER_PARAMS"]['SEF_SET_FILTER_URL'] = CAmminaRegions::ConvertUrlToPathRegion($arResult["JS_FILTER_PARAMS"]['SEF_SET_FILTER_URL'], $iDomain);
$arResult["JS_FILTER_PARAMS"]['SEF_DEL_FILTER_URL'] = CAmminaRegions::ConvertUrlToPathRegion($arResult["JS_FILTER_PARAMS"]['SEF_DEL_FILTER_URL'], $iDomain);
$arResult['FILTER_URL'] = CAmminaRegions::ConvertUrlToPathRegion($arResult['FILTER_URL'], $iDomain);
$arResult['SEF_SET_FILTER_URL'] = CAmminaRegions::ConvertUrlToPathRegion($arResult['SEF_SET_FILTER_URL'], $iDomain);
$arResult['SEF_DEL_FILTER_URL'] = CAmminaRegions::ConvertUrlToPathRegion($arResult['SEF_DEL_FILTER_URL'], $iDomain);

Изменения в модуле sotbit.seometa

  • В файл /bitrix/modules/sotbit.seometa/classes/general/seometa_event_handler.php внесите в функцию PageStart следующий код в место, указанное на скриншоте.
CModule::IncludeModule('ammina.regions');
$app = \Bitrix\Main\Application::getInstance();
$cityId = intval($app->getContext()->getRequest()->getCookie("ARG_CITY"));
if ($cityId <= 0) {
    $cityId = \Ammina\Regions\BlockTable::getCityIdByIP();
}
$iDomain = \Ammina\Regions\DomainTable::doFindDomainByCity($cityId, SITE_ID);
$instance['NEW_URL']=CAmminaRegions::ConvertUrlToPathRegion($instance['NEW_URL'],$iDomain);

Изменения в модуле sotbit.seometa

Файлы для загрузки с примерами

Для облегчения понимания принципов работы с модулем, а также примерами, реализованными на демонстрационном сайте https://www.ammina-demo.ru/ вы можете скачать архив с файлами, которые содержат публичную часть сайта www.ammina-demo.ru, а так же папку local, в которой находятся кастомизированные компоненты сайта и шаблон сайта www.ammina-demo.ru

Скачать архив files.zip