|
Онлайн-бронирование позволяет клиенту за несколько минут просмотреть максимально полную и достоверную информацию об абонементах и мероприятиях, забронировать и оплатить абонементы и записаться на желаемые мероприятия.
Теперь для совершения данных действий не требуется находиться в спорткомплексе, а достаточно иметь компьютер или мобильное устройство с выходом в интернет.
«Абонемент-Онлайн» является дополнительным модулем «Абонемент», который даёт возможность клиенту управлять своими персональными данными, получать информацию о состоянии своего счета, осуществлять покупки абонементов, а также запись на индивидуальные и групповые тренировки.
Модуль «Абонемент-Онлайн» работает с программой «Абонемент» через постоянный выделенный внешний IP адрес. Передача данных между Абонемент и модулем «Абонемент-Онлайн» осуществляется в реальном времени в формате XML через определенные IP и порт.
Для защиты от несанкционированных запросов используется ключ проверки передаваемой информации, который указывается в настройках модуля «АбонементОнлайн» и программы «connecter».
Для интеграции с уже существующим сайтом, модуль «Абонемент-Онлайн» устанавливается на сервер в то же место, где расположен сайт и настраивается в соответствии с указанными в инструкции по установки требованиями.
|

Рис.1 - Абонемент онлайн (расписание групповых занятий)
|
|
Для клиентов
- Регистрация и авторизация в системе;
- отображения мероприятий в зависимости от выбранного корпуса;
- возможность упрощенной регистрации с использованием карты клуба;
- просмотр отображаемых занятий с возможностью фильтрации данных, а также бронирование мест на доступные занятия;
- работа с групповыми и индивидуальными мероприятиями;
- возможность детализировать групповые мероприятия по дням;
- просмотр и добавление в корзину доступных абонементов, покупка абонементов;
- выбор приобретенного ранее абонемента или автоматическое добавление нового для записи на групповое или индивидуальное мероприятие;
- вывод информации об используемом абонементе и выбранном тарифе для групповых и индивидуальных мероприятий;
- просмотр и изменение личной информации в системе;
- изменение языка отображаемой информации;
- формирование абонементов и билетов на мероприятия с возможностью добавления штрих-кода и qr-кода в формате PDF;
- работа с личным кабинетом
- операции с абонементами пользователя
- просмотр и пополнение баланса;
- просмотр начисленных услуг;
- просмотр начисленных скидок;
- просмотр мероприятий пользователя;
- просмотр платежей пользователя;
- работа с мобильной версией модуля.
|

Рис.2 - Примеры страниц модуля (оригинал и встроенные на сайты заказчиков)
|
|

Рис.3 - Пример билета, отправляемого клиенту, после покупки абонемента в онлайн модуле
|
- Визуальные настройки модуля;
- возможность использовать в качестве основного сайта или внедрения на страницу существующего сайта;
- абонементы
- отображение всех или определенных абонементов для онлайнбронирования;
- отображение цены в других валютах;
- отображение расписания и описания для абонементов;
- настройка прибавки определенного количества дней к дате активации абонемента при добавлении в корзину;
- настройка отображения
- даты активации абонемента;
- авансовой оплаты;
- максимального количества посещений;
- разрешение загрузки абонементов в формате PDF
- вывод стоимости абонемента при выборе тарифа в групповых или индивидуальных мероприятиях;
- настройка вывода информации об используемом абонементе и выбранном тарифе для групповых и индивидуальных мероприятий;
- настройка автоматического удаления абонемента при отмене бронирования;
- расписание мероприятий
- задание время начала и окончания расписания;
- количество отображаемых дней в таблице;
- задание точки отсчета отображения мероприятий (например, с сегодняшнего или завтрашнего дня);
- ограничение по общему количеству недель в таблице (например, расписание на месяц);
- привязка цвета к ресурсам в групповых и индивидуальных мероприятиях;
- групповые мероприятия
- предоставлять выбор ресурсов;
- использовать фильтр в расписание групповых мероприятий;
- настройка количества отображаемых дней в таблице;
- задание шага построения расписания по часам, минутам;
- возможность подменять название группового мероприятия названием ресурса, специалистом или количеством свободных мест;
- возможность вывода информации о специалисте вместе с основной информацией в таблице групповых мероприятиях;
- возможность многократной записи;
- возможность использования групп для записи;
- фильтр вывода мероприятий по ресурсам;
- индивидуальные мероприятия
- настройка количества отображаемых дней в таблице;
- возможность клиенту задать произвольное время начала мероприятия;
- задание времени проведения индивидуальных мероприятий, как для всех ресурсов, так и отдельно для каждого;
- возможность выбора специалиста для индивидуальных мероприятий;
- фильтр вывода мероприятий по ресурсам;
- пользователь
- гибкое формирование обязательных и необязательных полей для регистрации клиента;
- разрешение заморозки абонементов;
- настройка отображения
- начисленных услуг;
- начисленных платежей;
- остатка посещений по абонементам;
- цен оплаченных абонементов;
- начисленных скидок;
- вывод изображения клиента;
- фильтр вывода событий;
- оплата
- разрешение проведения оплаты;
- разрешение пополнения баланса;
- проведение полной или частичной оплаты абонементов;
- сумма пополнения баланса по умолчанию;
- настройка платежных систем
- отправка сообщений на почту
- разрешение на отправку текстового письма при оплате абонементов и пополнении баланса;
- разрешение на отправку текстового письма при регистрации;
- настройка отправки писем менеджерам с информацией об оплате абонементов;
- гибкая настройка интерфейса для любого дизайна веб-сайта.
|

Рис.4 - Настройки модуля
|
|
Для работы с онлайн оплатой используется интеграция с одним из сервисов приёма онлайн-платежей. Договор с сервисом заключается заказчиком.
Возможность оплаты лицензируется отдельно.
В данный момент, модуль может быть интегрирован со следующими процессингами онлайн платежей:
- ROBOKASSA (поддержана передача содержимого чека)
- ASSIST
- Яндекс.Касса
- Cloudpayments
- Uniteller
- Сургутнефтегазбанк
|

Рис.5 - Пример пополнения баланса через онлайн модуль
|
В современном мире становится все больше людей, активно использующих мобильные устройства для выхода в интернет, поэтому использование мобильной версии вебресурса станет существенным преимуществом перед конкурентами.
Главным отличием мобильной версии является адаптивное отображение информации для просмотра на экране мобильного устройства. Также большим преимуществом является скорость загрузки информации, что обеспечит пользователю более быстрый и комфортный режим работы.
Ниже приведены скриншоты некоторых разделов работы клиента с помощью мобильной версии модуля.
|

Рис. 6 – Главное меню и расписание групповых мероприятий
|

Рис. 7 – Расписание индивидуальных мероприятий и просмотр абонементов пользователя в личном кабинете
|
В итоге процесс работы на мобильном устройстве станет удобнее и доступнее клиентам, живущим активной жизнью.
|
Необходимо наличие связи между хостингом и машиной в сети, где расположена БД Абонемент (сервер Абонемент).
Как правило у провайдера получается постоянный внешний IP-адрес для организации, и определённый порт пробрасывается до машины с которой будет производится связь с веб-частью, расположенной на хостинге.
Для работы веб-скриптов модуля необходимо выполнение хостингом следующих минимальных требований:
- Операционная система Linux 2.6;
- версия Apache 2.2.17;
- версия PHP 5.4;
- возможность использования модулем библиотеки jQuery;
- установленные модули: cUrl, Sessions, Sockets, Xml, SimpleXML, GD, bcmath, mbstring, iconv, DOM, а также предоставлять возможность установки дополнительных модулей по требованию.
Проверить необходимые модули можно с помощью встроенного модуля check server. Для этого необходимо перейти в визуальные настройки и открыть ссылку check server. Далее выбрать модуль для тестирования, задать параметры для подключения к программе connecter.
|

Рис.8 - Страница check_server в составе модуля
|
Disclaimer
Веб-скрипты модуля поставляются "как есть". Все изменения вносятся специалистами заказчика.
Обновления модуля также поставляются как есть, все изменения специалист заказчика должен будет воспроизвести на новой версии модуля.
В качестве серверной части, используется утилита сообщения Connecter из поставки Абонемент.
Утилита является посредником между запросами веб-части и БД Абонемент, используя соответствующий протокол.
Настройка Connecter производится через connecter.ini, где указываются:
PrivateKey - секретный ключ, также указываемый в настройках веб-скрипта в config.php;
UseUrlEncode - использовать ли URL-кодировку, для принимаемы/отсылаемых сообщений, также указываемый в настройках веб-скрипта в config.php;
DBConnectCount - количество создаваемых подключений к БД - максимальное количество одновременно обрабатываемых запросов, при недостаточном количестве - при высокой нагрузке клиентов на веб модуль не все запросы смогут быть обработаны, при большом количестве - утилита будет долго инициализироваться и займёт большое количество ресурсов для одновременной работы всех подключений. (Значение по умолчанию - 16, достаточно для не слишком большого наплыва клиентов до 500 в час);
BindingPort - порт, на который будут приниматься запросы от веб модуля;
BindingIp - локальный IP на котором будет занят BindingPort;
ListenQueue - длина очереди для обработки запросов;
Настройка на БД Абонемент происходит как и в прочих модулях, в настройке на сервер блокировок дополнительно необходимо указать Project = 1, Module = 2, чтобы были доступны все фнукции Абонемент Онлайн. (Подробнее про лицензирование Абонемент и Connecter)
В случае использования онлайн-оплаты, следует настроить дополнительный киоск, на котором всегда будет открыта смена. Прописать в секцию [defaults] в connecter.ini параметр StdKioskCode. Код платежа задаётся в визуальных настройках веб-части.
|
Предоставляемый модуль разделен на 2 части:
1. шаблон сайта;
2. модуль Абонемент-Онлайн (находится в директории «abonement»).
Если у Вас сайт уже есть, значит, Вам понадобится только модуль.
Для демонстрации данный модуль можно развернуть, используя пакет WEB-разработчика Denwer с версией PHP 5.4. Скачать его можно на сайте denwer.ru.
После его установки папку \club\ скопировать в C:\WebServers\home\localhost\www\.
Настроить модуль по описанию ниже. Из WEB-браузера вызывать http://127.0.0.1/club/
|
|
|
Закрытые настройки модуля представлены в файле /abonement/сonfig.php.
Визуальные настройки доступны по адресу <адрес_модуля>/abonement/settings/
Рассмотрим закрытые настройки для первоначального запуска модуля.
В файле config.php представлены настройки:
- PRIVATEKEY – ключ проверки передаваемой информации, также указывается в настройке программы connecter.
- USE_URL_DECODE – значение параметра UseURLEncode в файле connecter.ini
- SCHEDULE_XML_PATH – TCPHost и TCPPort для подключения к программе connecter, доступные указываются в блоке HTTPServer файла connecter.ini
- соответствия цветов к ресурсам;
- настройки платежных систем;
- настройка мультиязычности.
Сохранять файл config.php необходимо с кодировкой UTF-8 (без BOM). В качестве программы для редактирования файла воспользуйтесь Notepad++.
Перед установкой модуля проверьте, чтобы папка /logs/ была пуста.
|
|
Оплата в Абонемент-Онлайн лицензируется отдельно и защищена ключом - проект 4, модуль 5.
Настройки интеграции с поддержанными процессингами онлайн оплаты представлены в соответствующем
разделе.
Языковые настройки модуля содержаться в разделе /inc/ в файле lang.php
Дополнительно в таблице вывода абонементов для каждого можно составить описание на разных языках и добавить изображения.
Для этого в разделе /description/abonements/код языка (значение $arLang в config.php)/ создать файл в формате .tpl, название которого соответствует коду абонемента. При выводе модуль будет проверять наличие данного файла для каждого абонемента, если файл найден, тогда модуль добавит описание в подробную информацию об абонементе. Изображение помещается в раздел /description/images/, название должно соответствовать коду абонемента.
Файлы для отображения мобильной версии находятся в разделе /mobile/.
Абонемент-Онлайн поддерживает 2 способа подключения мобильной версии:
- если Вы используете модуль бронирования отдельно от Вашего сайта;
- если Вы используете модуль бронирования на странице Вашего сайта, тогда для работы с мобильной версией необходимо дублирование модуля на сервере:
- необходимо скопировать модуль бронирования в отдельный раздел, как вариант, можно создать поддомен и привязать к данному разделу;
- настроить каждый модуль отдельно.
Настройки мобильной версии доступны в открытых настройках модуля.
В дальнейших пунктах находится информация необходимая для модифицирования модуля под требования заказчика.
Как отмечено выше, все изменения в модуль вносятся специалистом заказчика, и при обновлении модуля переносятся в обновлённый модуль также силами заказчика.
Соответственно, все изменения в модуле следует протоколировать, для упрощения последующей поддержки.
Основной шаблон находится в файле template.php, в котором подключаются JavaScript, стили и задается структура html страницы.
Стили CSS находятся в файле style.css
В разделе /template/ находятся шаблоны страниц, отображающие информацию определенной страницы. Для изменения вывода определенных данных, необходимо изменить файл, соответствующий изменяемой странице.
В разделе /template/inc/ находятся шаблоны выполнения определенных функций, названия файла соответствует либо названию страницы, либо функции.
Данные уведомления не связаны с почтовой подпиской через программу «Абонемент».
Вы можете составить шаблон письма по своему усмотрению в формате html. Все текстовые шаблоны находятся в разделе /mail/. Переменная, которая будет заменена на значение, заключается между символами «#». Текст будет отправлен также как и указано в шаблоне, только вместо переменных будут конкретные значения.
В одном шаблоне предоставляется возможность использовать разные языки, с указанием для каждого одних и тех же заменяемых параметров. Если требуемый шаблон отсутствует, модуль письмо не отправит.
На данный момент модуль работает с 2 типами текстовых шаблонов: статичными и динамичными.
Статичный шаблон содержит текст, в котором модулю достаточно изменить требуемые элементы. Пример статичного шаблона:
Уважаемый #FIO#, вы успешно зарегистрировались на нашем сайте!<br />
<b>Логин:</b> #LOGIN#<br />
<b>Пароль:</b> #PASSWORD#<br />
Результат подстановки шаблона:
Уважаемый Иванов Иван Иванович, вы успешно зарегистрировались на нашем сайте!
Логин: ivan
Пароль: 12345
Для добавления новых элементов в шаблон требуется доработать соответствующий шаблон и добавить параметры в файле в разделе /controller/. Для добавления новых элементов достаточно в массив $arData добавить элемент массива:
$arData = Array(
'NAME' => ‘Иван’,
'PHONE' => ‘123123’
);
Динамичный шаблон содержит как элементы, требующие замены, так и списки, формирующие автоматически при создании шаблона.
Заменяемые программой элементы заключаются символами «#», как указано в примере.
Пример динамичного шаблона:
Уважаемый #NAME# #NAME1#, вы успешно добавили абонементы на нашем сайте:<br />
%<b><i>#ABONEMENT_NAME#</i> (#ABONEMENT_COUNT# шт.)</b>%
<p>Теперь вы можете записаться на соответствующие мероприятия.</p>
Результат подстановки шаблона:
Уважаемый Иванов Иван, вы успешно добавили абонементы на нашем сайте:
Бассейн 1 посещение (3 шт.)
Тренажёрный зал 1 посещение (5 шт.)
Теперь вы можете записаться на соответствующие мероприятия.
Для создания списка в данных шаблонах, необходимо перечисляемые элементы заключить между символом «%», как указано в примере. Сами элементы заключаются также как и в статичном примере символом «#».
В модуле возможно создавать несколько списков в шаблоне, при этом они не должны содержаться друг в друге.
Правильный пример:
Уважаемый #NAME# #NAME1#, вы успешно добавили абонементы на нашем сайте:<br />
%<b>#ABONEMENT_NAME# (#ABONEMENT_COUNT# шт.)</b>%
<p>Ближайшие мероприятия:</p>
%<b>#DIARY_NAME#</b>%
НЕ правильный пример:
Уважаемый #NAME# #NAME1#, вы успешно добавили абонементы на нашем сайте:<br />
%<b>#ABONEMENT_NAME# (#ABONEMENT_COUNT# шт.)</b>
<p>Ближайшие мероприятия:</p>
%<b>#DIARY_NAME#</b>%%
Для добавления новых элементов и списков в шаблон требуется доработать соответствующий шаблон и добавить параметры в файле в разделе /controller/. Для добавления новых элементов достаточно в массив $arData добавить элемент. Для создания списка необходимо добавить элемент, cодержащий перечисление значений через разделитель «;».
$arData = Array(
'NAME' => ‘Иван’,
'ABONEMENT_NAME' => ‘Бассейн 1 посещение;Тренажёрный зал 1 посещение’,
);
Каждый шаблон состоит из PDF-файла, TPL-файла и CSS-стилей. Размер PDF-файл необходимо указывать такой же, как и в примере.
Печать абонементов
Шаблоны для печати находятся в разделе /print/abonement/template/. Название шаблонов изменять недопустимо.
В корне данного раздела находится шаблон для всех языков и абонементов. Если необходимо для каждого языка задать отдельный шаблон, необходимо создать раздел, название которого соответствует коду языка в массиве $arLang в config.php, и разместить файлы шаблона. Данный шаблон будет использоваться для всех абонементов соответствующего языка. Если необходимо задать шаблон для каждого типа абонемента, необходимо создать раздел в директории /print/abonement/template/<название языка>/, название которого соответствует коду абонемента, и разместить файлы шаблона. При
создании абонемента в формате PDF, модуль будет проверять наличие шаблона в порядке: для типа абонемента, для используемого в модуле языка, для всех языков и абонементов.
Печать билетов на мероприятие
Загрузка билета возможна при условии полной оплаты абонемента на мероприятие.
Для создания билета на мероприятие необходимо создать шаблоны в разделе /print/diary/template/ и настроить файл для построения шаблона. Все параметры настраиваются индивидуально в соответствии требованиям заказчика.
Шаблоны разделяются на две категории:
- выводят информацию при вызове определенной страницы;
- выводят информацию в результате выполнения действия на определенной странице, например, отображение подробной информации мероприятия.
В разделе /template/ находятся шаблоны страниц, отображающие информацию определенной страницы. Для изменения вывода определенных данных, необходимо изменить файл соответствующий изменяемой странице.
В разделе /template/inc/ находятся шаблоны выполнения определенных функций, названия файла соответствует либо названию страницы, либо функции.
Шаблоны страниц:
- Abonements – просмотр и добавление абонементов;
- AboutStaff – отображение информации о специалистах;
- AddBalance – пополнение баланса;
- AddGuest – регистрация пользователя;
- AddGuestCard – упрощенная регистрация с помощью карты клуба;
- AddOrLogin – совмещенная авторизация и регистрация, отображается при покупке абонементов неавторизированным пользователем;
- BuyAbonements – подтверждение покупки абонементов;
- GroupDiary – отображение групповых мероприятий по неделям;
- GroupDiaryDay – отображение групповых мероприятий по дням;
- GuestInfo – личный кабинет клиента;
- LoginGuest – авторизация пользователя;
- ModifyGuest – изменение персональной информации пользователя;
- OneDiary – отображение индивидуальных мероприятий;
- Regulations – пользовательское соглашение;
- RestorePassword – восстановление пароля;
- StaffDiary – расписание для специалиста;
- StaffDiaryAbout – подробная информация о мероприятии специалиста.
Шаблоны функций:
- Abonement – шаблон, в котором формируются:
- вывод описания абонемента, если файл найден;
- таблица периода действия по дням недели;
- Filter – шаблон фильтра ресурсов для групповых мероприятий;
- GroupDiary – шаблон вывода подробной информации о групповом мероприятии во всплывающем окне, в котором формируются:
- количество добавляемых абонементов при записи на мероприятие;
- кнопка для записи или отмены записи с соответствующими параметрами;
- ссылка на авторизацию для записи на мероприятие, если пользователь не авторизирован;
- получение подробной информации о мероприятии;
- формирование списка абонементов для покупки;
- сообщение об отсутствии абонементов для записи на данное мероприятие;
- GuestInfo – шаблон, в котором формируются заморозки для абонемента;
- OneDiary – шаблон вывода подробной информации об индивидуальном мероприятии во всплывающем окне, в котором формируются:
- ссылка на авторизацию для записи на мероприятие, если пользователь не авторизирован;
- получение подробной информации о несозданном мероприятии;
- получение подробной информации о созданном мероприятии;
- Lang – смена языка отображаемой информации.