Мастер-Тур(15):Поиск вариантов программ туров — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) (→Дополнительные фильтры) |
Belyaeva (обсуждение | вклад) (→Отображения минимальной цены для конкретного отеля) |
||
(не показано 107 промежуточных версий 9 участников) | |||
Строка 8: | Строка 8: | ||
==Введение== | ==Введение== | ||
Данный экран предназначен для поиска актуальных цен с указанием наличия мест, отображения расширенной информации о программах туров и условиях продажи. Экран позволяет выдавать найденные цены с разной детализацией и группировать по нескольким параметрам. Также данном экран предназначен для поиска туров без проживания (к примеру, экскурсионных), а также автобусных туров (начиная с релиза 15.2). | Данный экран предназначен для поиска актуальных цен с указанием наличия мест, отображения расширенной информации о программах туров и условиях продажи. Экран позволяет выдавать найденные цены с разной детализацией и группировать по нескольким параметрам. Также данном экран предназначен для поиска туров без проживания (к примеру, экскурсионных), а также автобусных туров (начиная с релиза 15.2). | ||
+ | |||
+ | [https://www.youtube.com/watch?v=aJUUtAUQ9-k Поиск и бронирование туров (YouTube)] | ||
==Страница поиска туров== | ==Страница поиска туров== | ||
Строка 27: | Строка 29: | ||
Для наличия возможности бронирования заявки в корзине необходимо авторизоваться в системе, введя Имя пользователя и Пароль. Авторизация может происходить как в экране поиска (тогда перейдя в корзину авторизационные данные пользователя будут сохранены), либо в самой корзине. | Для наличия возможности бронирования заявки в корзине необходимо авторизоваться в системе, введя Имя пользователя и Пароль. Авторизация может происходить как в экране поиска (тогда перейдя в корзину авторизационные данные пользователя будут сохранены), либо в самой корзине. | ||
− | + | <br />[[Файл:mb_339.png|Восстановление пароля]]<br /> | |
− | |||
− | |||
− | |||
− | |||
Строка 43: | Строка 41: | ||
|- | |- | ||
|} | |} | ||
+ | |||
В одно из полей вводим известные данные: | В одно из полей вводим известные данные: | ||
Строка 86: | Строка 85: | ||
Для того чтобы зарегистрировать частное лицо на форме '''Вход в систему''' нужно выбрать пункт '''Регистрация туриста''', после чего откроется регистрационная форма '''Регистрация частного лица'''. | Для того чтобы зарегистрировать частное лицо на форме '''Вход в систему''' нужно выбрать пункт '''Регистрация туриста''', после чего откроется регистрационная форма '''Регистрация частного лица'''. | ||
+ | Существует две формы регистрации частного лица, стандартная форма и упрощенная регистрация частного лица (включается в [[Мастер-Тур(15):Программа туров. Настройки|настройках]]). | ||
+ | |||
+ | |||
+ | =====Стандартная регистрация частного лица===== | ||
{| border="1" style="border-collapse:collapse" | {| border="1" style="border-collapse:collapse" | ||
|- | |- | ||
− | | [[Файл: | + | | [[Файл:RR 146.png|Регистрация частного лица]] |
|- | |- | ||
|} | |} | ||
Строка 95: | Строка 98: | ||
Заполняем регистрационные данные. Обязательные поля: | Заполняем регистрационные данные. Обязательные поля: | ||
− | * Имя | + | * Имя |
− | * Фамилия | + | * Фамилия |
− | * Телефон | + | * Телефон |
− | * E-mail(Логин) | + | * E-mail (Логин) – введенный e-mail будет являться логином. Поменять логин можно в Справочники->Постоянные клиенты->Регистрационные данные |
− | * Пароль | + | * Пароль – должен содержать не менее шести символов, среди которых должны быть латинские буквы (строчные и прописные), цифры или символы |
− | * Подтверждение пароля | + | * Подтверждение пароля |
− | * Ведите текст с картинки (латиница) | + | * Ведите текст с картинки (латиница) – поле для ввода проверочного кода с картинки. Если код трудночитаемый, то можно нажать кнопку '''Обновить''' |
Необязательные поля: | Необязательные поля: | ||
− | * Страна | + | * Страна |
− | * Город | + | * Город |
− | * Адрес | + | * Адрес |
− | * Примечание | + | * Примечание |
<BR>[[Файл: mb_031.png|left|Дополнительная информация]] <BR> | <BR>[[Файл: mb_031.png|left|Дополнительная информация]] <BR> | ||
В форму регистрации частного лица существует возможность добавить обязательное поле «Гражданство». | В форму регистрации частного лица существует возможность добавить обязательное поле «Гражданство». | ||
− | Регулируется настройкой [[Мастер-Тур(15):Программа туров. | + | Регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки|Запрашивать гражданство при регистрации частника]].<br /> |
+ | |||
+ | =====Упрощенная регистрация частного лица===== | ||
+ | |||
+ | Упрощенная регистрация туриста позволяет максимально быстро зарегистрироваться с заполнением минимально необходимых полей, а также сразу купить путевку (подробнее об этом описано в разделе о [[Мастер-Тур(15):Поиск вариантов программ туров#Взаимодействие формы регистрации и корзины|взаимодействии формы регистрации и корзины]]) | ||
+ | |||
+ | [[Файл:RR 144.png|Упрощенная регистрация частного лица]] | ||
+ | |||
+ | Упрощенная регистрация частного лица включается в общих настройках в [[Мастер-Тур(15):Программа туров. Настройки|настройках]]. | ||
+ | Обязательные поля: | ||
+ | |||
+ | * Имя | ||
+ | * Фамилия | ||
+ | * Телефон | ||
+ | * E-mail (Логин) – введенный e-mail будет являться логином. Поменять логин можно в Справочники->Постоянные клиенты->Регистрационные данные | ||
+ | * Ведите текст с картинки (латиница) – поле для ввода проверочного кода с картинки. Если код трудночитаемый, то можно нажать кнопку '''Обновить''' | ||
+ | |||
+ | Поле пароль в упрощенной форме регистрации отсутствует. Пароль автоматически генерируются и отправляются на указанный при регистрации электронный адрес.<br> | ||
+ | Настройка ''Запрашивать гражданство при регистрации частного лица'' в форме ''Упрощенная регистрация частного лица'' не обрабатывается. | ||
+ | |||
После того, как данные заполнены, нажимаем кнопку '''Зарегистрироваться'''. По факту регистрации на указанный e-mail частного лица приходит письмо, которое уведомляет об успешно пройденной регистрации. Также приходит письмо на электронную почту администратора системы, уведомляющее, что в системе произошла регистрация частного лица.<br> | После того, как данные заполнены, нажимаем кнопку '''Зарегистрироваться'''. По факту регистрации на указанный e-mail частного лица приходит письмо, которое уведомляет об успешно пройденной регистрации. Также приходит письмо на электронную почту администратора системы, уведомляющее, что в системе произошла регистрация частного лица.<br> | ||
Строка 119: | Строка 141: | ||
Настройки для отправки писем задаются в конфигурационном файле [[Мастер-Тур(15):Установка#Установка службы поиска|Megatec.TourSearchOwin.exe.config]]. | Настройки для отправки писем задаются в конфигурационном файле [[Мастер-Тур(15):Установка#Установка службы поиска|Megatec.TourSearchOwin.exe.config]]. | ||
+ | |||
+ | Настройка ссылки на Политику конфиденциальности задаётся в конфигурационном файле [[Мастер-Тур(15):Установка#Установка поиска вариантов программ туров|web.config, в папке TourSearchClient ]]. | ||
+ | |||
+ | =====Взаимодействие формы регистрации и корзины===== | ||
+ | |||
+ | * Если неавторизированный турист в корзине внес данные туристов и нажал кнопку '''Вход в систему''' – открывается окно авторизации. При выборе пункта ''регистрация туриста'' – откроется регистрационная форма с уже заполненными данными, внесенными для главного туриста. При нажатии на '''Зарегистрироваться''' будет произведена регистрация и авторизация туриста. | ||
+ | |||
+ | * Если неавторизированный турист в корзине внес данные туристов и нажал кнопку '''Купить''' – открывается окно авторизации. При выборе пункта ''регистрация туриста'' – откроется регистрационная форма с уже заполненными данными, внесенными для главного туриста. При нажатии на '''Купить''' будет произведена регистрация туриста, его авторизация и попытка бронирования (если все обязательные поля заполнены). Если заполнены не все обязательные поля для бронирования, то система сообщит об этом пользователю. Данный пункт обрабатывается только в упрощенной форме регистрации. | ||
+ | |||
+ | * Если неавторизированный турист в корзине нажал кнопку '''Вход в систему''' – открывается окно авторизации. При выборе пункта ''регистрация туриста'' – откроется регистрационная форма. После заполнения обязательных полей и нажатии кнопки '''Зарегистрироваться''' будет произведена регистрация и авторизация туриста, а все введенные при регистрации данные будут добавлены главному туристу. | ||
+ | |||
+ | * Если неавторизированный турист в корзине нажал кнопку '''Купить''' – открывается окно авторизации. При выборе пункта ''регистрация туриста'' – откроется регистрационная форма. После заполнения обязательных полей и нажатии кнопки '''Купить''' будет произведена регистрация туриста, его авторизация и попытка бронирования (если все обязательные поля для бронирования заполнены). Если заполнены не все поля, то система сообщит об этом пользователю. Данный пункт обрабатывается только в упрощенной форме регистрации. | ||
===Главные фильтры=== | ===Главные фильтры=== | ||
Для того чтобы просмотреть цены по турам необходимо задать поисковые параметры в главных фильтрах: | Для того чтобы просмотреть цены по турам необходимо задать поисковые параметры в главных фильтрах: | ||
* Откуда - город начала поездки, существует возможность задать несколько городов начала поездки; | * Откуда - город начала поездки, существует возможность задать несколько городов начала поездки; | ||
− | * Куда - страна прибытия (можно выбрать только одну страну); | + | * Куда (страна) - страна прибытия (можно выбрать только одну страну); |
+ | * Куда (город) - город прибытия (можно выбрать несколько или Все); | ||
+ | Начиная с релиза 15.8 города экскурсий, указанные в программе туров, отображаются в списке городов в разделе "Куда(город)". | ||
* Тип тура - по умолчанию фильтр заполняется значением ''Все''. В фильтр подгружаются значения (типы туров), соответствующие выбранному направлению. Возможен выбор нескольких вариантов типа тура; | * Тип тура - по умолчанию фильтр заполняется значением ''Все''. В фильтр подгружаются значения (типы туров), соответствующие выбранному направлению. Возможен выбор нескольких вариантов типа тура; | ||
* Даты начала тура - календарь, где актуальные даты начала тура в выбранную страну подсвечены зеленым цветом. Подсвечиваются только те даты, на которые есть возможность сформировать хотя бы один вариант результата поиска согласно заведенных программ туров; | * Даты начала тура - календарь, где актуальные даты начала тура в выбранную страну подсвечены зеленым цветом. Подсвечиваются только те даты, на которые есть возможность сформировать хотя бы один вариант результата поиска согласно заведенных программ туров; | ||
Строка 134: | Строка 170: | ||
Существует возможность добавить '''Город''' в главные фильтры. Для этого необходимо | Существует возможность добавить '''Город''' в главные фильтры. Для этого необходимо | ||
− | воспользоваться настройкой [[Мастер-Тур(15):Программа туров. | + | воспользоваться настройкой [[Мастер-Тур(15):Программа туров. Настройки|Отображать фильтр по городам на главной странице поиска]]. |
− | Дополнительно пользователь может указать по какому варианту наличия мест на отели | + | Дополнительно пользователь может указать по какому варианту наличия мест на отели, авиаперелеты, автобусы, поезда необходимо искать программы туров: |
* Есть | * Есть | ||
− | * Есть+ | + | * Есть+Запрос |
− | * Все | + | * Все |
− | По умолчанию выбран вариант "Есть+ | + | По умолчанию выбран вариант "Есть+Эапрос", установка других доступных значений (Есть, Все) производится в [[Мастер-Тур(15):Программа туров. Настройки#Настройки поиска|Программах Туров → Настройки поиска]]<br /> |
− | Валюта - валюта, в которой будет отображаться цена тура. Отображаются все валюты из справочника "Список валют", у | + | Валюта - валюта, в которой будет отображаться цена тура. Отображаются все валюты из справочника "Список валют", у которых выбран признак "Отображать в поиске"<BR> |
− | По умолчанию выбрана "национальная" валюта.<BR><BR> | + | По умолчанию выбрана "национальная" валюта. <BR><BR> |
− | + | Также в поиске доступен переключатель языков (по умолчанию есть два варианта языка - русский и английский. С настройкой отображаемых данных можно ознакомиться в разделе [[Мастер-Тур(15):Настройки системы#Настройка языка приложения| Настройка языка приложения]]. | |
====Расчет стоимости тура==== | ====Расчет стоимости тура==== | ||
'''Расчет стоимости услуг в составе заказа (Цена тура):'''<BR> | '''Расчет стоимости услуг в составе заказа (Цена тура):'''<BR> | ||
Строка 170: | Строка 206: | ||
===Результаты поиска=== | ===Результаты поиска=== | ||
− | По каждому найденному варианту | + | По каждому найденному варианту тура будет представлена следующая информация: |
− | * Даты туров и продолжительность тура (в днях) | + | * Даты туров и продолжительность тура (в днях) – продолжительность считается по дате окончания предоставления последней услуги. Поэтому, например, при обратном перелете на следующий день, количество дней в туре в поиске будет увеличено на один день |
* Город начала поездки | * Город начала поездки | ||
* Название тура | * Название тура | ||
Строка 178: | Строка 214: | ||
* Цена - минимальная возможная цена варианта тура по заданным в фильтрах дате, продолжительности, количеству людей, туру и отелю. | * Цена - минимальная возможная цена варианта тура по заданным в фильтрах дате, продолжительности, количеству людей, туру и отелю. | ||
Для просмотра информации о доступных вариантах размещения и типах питания необходимо кликнуть по слову "Варианты" в соответствующей строке тура. Откроется список доступных вариантов размещения и типов питания по данному отелю.<BR> | Для просмотра информации о доступных вариантах размещения и типах питания необходимо кликнуть по слову "Варианты" в соответствующей строке тура. Откроется список доступных вариантов размещения и типов питания по данному отелю.<BR> | ||
− | Слева от варианта размещения или авиаперелета отображается наличие мест. | + | Слева от варианта размещения или авиаперелета отображается наличие мест.<BR> |
+ | В том случае, если по выбранным параметрам не будет найдено результатов, то пользователю будет выведено сообщение: ''С выбранными параметрами поиска туров не найдено. Пожалуйста, измените параметры поиска, значения статусов наличия мест, измените даты или продолжительность''. В том случае, если в поисковой строке были выбраны доп. фильтры (к примеру отель, турпрограмма) и по ним нет данных в программах тура (удалили отель или продолжительность), то в этом случае доп. фильтры будут сброшены и будет осуществлена попытка поиска результатов без указанных значений. | ||
+ | |||
{| border="1" style="border-collapse:collapse" | {| border="1" style="border-collapse:collapse" | ||
Строка 185: | Строка 223: | ||
|- | |- | ||
|} | |} | ||
+ | ====Отображения минимальной цены для конкретного отеля==== | ||
+ | Примерно в 1% результатов поиска может возникать ситуация, когда для конкретного отеля подбирается не самая минимальная цена.<br /> | ||
+ | [[Файл:As020.JPG|1060px|Отображения минимальной цены конкретного отеля]]<br /> | ||
+ | |||
+ | При инициализации службы поиска происходит "взвешивание" цены на отель. | ||
+ | В случаях когда суточные цены на разные размещения или типа питания внесены разным количеством периодов, средний вес более дешевого номера может быть больше, чем у более дорого. | ||
+ | Например цены на питании завтрак внесены 4-мя строчками, а цена на питании полупансион 6-ю. При измерении общего среднего веса цены получится, что цена на питании полупансион весит меньше.<br /> | ||
+ | Для избежания подобных ситуаций рекомендуем вносить цены на разные размещения и типы питания '''одинаковым''' количеством периодов.<br /> | ||
+ | [[Файл:As021.JPG|1060px|Вес суточной цены]]<br /> | ||
+ | |||
+ | Начиная с релиза 15.9 реализована настройка ''WeightCostAlgorithm'' в конфигурационном файле ''Megatec.TourSearchOwin.exe.config'' [[Мастер-Тур(15):Установка#Установка службы поиска|службы поиска]], позволяющая отображать минимальную цену как среднее арифметическое. Если установлено значение 1, то настройка применяется, если установлено значение 0, пустое значение или настройка отсутствует в конфигурационном файле, то настройка не применяется. | ||
+ | |||
+ | При динамическом ценообразовании считать все цены невозможно, так как расчет вообще всех цен, которые смогут подойти, займет продолжительное время. Мы используем в расчете определенный алгоритм, который позволяет с большей степенью вероятности найти правильную наименьшую цену. | ||
+ | |||
+ | Алгоритм работы настройки: <br /> | ||
+ | 1. В каждом периоде вычисляется общее количество дней. <br /> | ||
+ | 2. Количество дней одного периода умножается на суточную стоимость этого периода (получается сумма за весь период). <br /> | ||
+ | 3. Суммируются суммы периодов и количества дней по всем периодам (получается сумма цен за все дни всех периодов).<br /> | ||
+ | 4. Сумма цен за все дни делится на количество всех дней (получается среднее арифметическое значение суточной стоимости).<br /> | ||
+ | |||
+ | [[Файл:Pb_101.png|800px]]<br /> | ||
+ | |||
+ | Пример расчета: <br /> | ||
+ | 1. Общее количество дней в периодах: 31, 28, 31 и 30. <br /> | ||
+ | 2. Сумма за весь период: 31*150=4650; 28*130=3640; 31*180=5580; 30*200=6000. <br /> | ||
+ | 3. Сумма цен за все дни всех периодов: 4650+3640+5580+6000=19870. <br /> | ||
+ | 4. Среднее арифметическое значение суточной стоимости: 19870/120=165,583. <br /> | ||
+ | |||
+ | Минимальная цена каждого отеля определяется по всем типам размещений на основе среднего арифметического значения суточной стоимости каждого типа размещения в отдельности. | ||
===Дополнительные фильтры=== | ===Дополнительные фильтры=== | ||
Строка 193: | Строка 260: | ||
* Программа тура – отбор по самой программе тура; | * Программа тура – отбор по самой программе тура; | ||
* Параметры проживания – отбор по городу, курорту, категории отеля, питанию, признаку отеля и названию отеля; | * Параметры проживания – отбор по городу, курорту, категории отеля, питанию, признаку отеля и названию отеля; | ||
− | ** Признаки отелей – находятся в фильтре Параметры проживания. Производит отбор отелей по выбранному признаку (фильтр доступен, начиная со 2-го релиза); | + | ** Признаки отелей – находятся в фильтре Параметры проживания. Производит отбор отелей по выбранному признаку (фильтр доступен, начиная со 2-го релиза). Добавляются в справочнике [[Мастер-Тур(15):Признаки отелей|Признаки отелей]]; |
* Параметры авиаперелета – отбор по параметрам авиаперелета (время вылета/прилета, аэропорт вылета/прилета, город вылета, авиакомпания и класс перелета); | * Параметры авиаперелета – отбор по параметрам авиаперелета (время вылета/прилета, аэропорт вылета/прилета, город вылета, авиакомпания и класс перелета); | ||
Начиная с '''релиза 15.3''' реализован механизм, позволяющий не сбрасывать дополнительные фильтры при изменении основных фильтров.<br /> | Начиная с '''релиза 15.3''' реализован механизм, позволяющий не сбрасывать дополнительные фильтры при изменении основных фильтров.<br /> | ||
Начиная с '''релиза 15.3''' реализован подсчет общего количества найденных отелей, а также подсчет выбранных отелей в дополнительных фильтрах.<br /> | Начиная с '''релиза 15.3''' реализован подсчет общего количества найденных отелей, а также подсчет выбранных отелей в дополнительных фильтрах.<br /> | ||
− | Начиная с '''релиза 15.3''' добавлена возможность выводить в дополнительных фильтрах поиска сгруппированные типы питания и категории отелей по их глобальным кодам. Регулируется соответствующими [[Мастер-Тур(15):Программа туров. | + | Начиная с '''релиза 15.3''' добавлена возможность выводить в дополнительных фильтрах поиска сгруппированные типы питания и категории отелей по их глобальным кодам. Регулируется соответствующими [[Мастер-Тур(15):Программа туров. Настройки|настройками]].<br /> |
− | + | Логика отображения следующая: если в справочнике ''Типы питания'' или ''Категории отелей'' заполнено поле ''Глобальный код'', то он будет отображаться в дополнительных фильтрах. Если поле ''Глобальный код'' не заполнено, то будет отображаться значение, заданное в поле ''Название''. В результатах поиска ''Глобальный код'' не отображается.<br /> | |
− | + | Начиная с '''релиза 15.3''' добавлены два признака в дополнительные фильтры ''Параметры авиаперелета'': | |
− | + | * Разрешить комбинировать авиаперелеты – по умолчанию признак не выбран. Выбрать его можно только в том случае, если выбрана хотя бы одна авиакомпания. При выборе данного признака будут подбираться рейсы, которые хотя бы в одном сегменте осуществляются выбранной авиакомпанией. Без выбора этого признака будут подбираться только те рейсы, в которых все сегменты авиаперелета осуществляются выбранной авиакомпанией. | |
− | + | * Разрешить комбинировать классы – по умолчанию признак не выбран. Выбрать его можно только в том случае, если выбран хотя бы один класс перелета. При выборе данного признака будут подбираться рейсы, в которых хотя бы в одном сегменте авиаперелета перевозка осуществляется выбранным классом. Без выбора этого признака будут подбираться только те рейсы, в которых на всех сегментах авиаперелета перевозка осуществляется выбранным классом.<br /> | |
+ | Начиная с '''релиза 15.7''' реализована возможность, что при нажатии на название отеля, которое подсвечено голубым цветом, в разделе фильтров '''Параметры проживания''' происходят действия, описанные в разделе [[Мастер-Тур(15):Поиск вариантов программ туров#Поиск с включенными изображениями и описанием отеля|Поиск с включенными изображениями и описанием отеля]].<br /> | ||
{| border="1" style="border-collapse:collapse" | {| border="1" style="border-collapse:collapse" | ||
|- | |- | ||
− | | [[Файл: | + | | [[Файл:ea_50.png|1050px|Состав тура]] |
|- | |- | ||
|} | |} | ||
+ | |||
+ | ====Фильтр Выбранная комбинация отелей==== | ||
+ | |||
+ | Данный фильтр предназначен для поиска конкретной комбинации отелей в сложных турах. Например, мы едем в тур ''Бангкок-Паттайя'' и хотим жить в ''Бангкоке'' в отеле | ||
+ | ''Grand Mercure Bangkok Atrium'', а в Паттайе в ''Jomtien Palm Beach''. Для этого в списке отелей выбираем требуемые отели и ставим чекбокс '''Выбранная комбинация отелей'''.<br /> | ||
+ | Теперь в поиске будут показываться только те варианты туров, в которых есть данная комбинация отелей.<br /> | ||
+ | По умолчанию фильтр '''Выбранная комбинация отелей''' не виден. Он становится доступным после того, как пользователь выбрал в списке отелей хотя бы один отель. | ||
+ | |||
+ | [[Файл:Rr 34.png|1050 px|Дополнительные фильтры]]<br /> | ||
+ | |||
+ | ====Фильтр Выбранная комбинация признаков отелей==== | ||
+ | Данный фильтр предназначен для отображения только тех отелей, в которых встречается выбранная комбинация признаков отелей. Например, нам нужны отели, в которых есть ''Закрытая территория'' и ''Конференц-зал''. Для этого в списке признаков отелей выбираем требуемые признаки и ставим чекбокс '''Выбранная комбинация признаков отелей'''.<br /> | ||
+ | Теперь в поиске будут показываться только те варианты туров, в отелях в которых есть данная комбинация признаков отелей.<br /> | ||
+ | По умолчанию фильтр '''Выбранная комбинация признаков отелей''' не виден. Он становится доступным после того, как пользователь выбрал в списке отелей хотя бы один признак отеля.<br /> | ||
===Группировка результатов поиска=== | ===Группировка результатов поиска=== | ||
Строка 234: | Строка 316: | ||
|} | |} | ||
− | === | + | '''Начиная с релиза 15.8''' произведена оптимизация, при которой при группировке по ''названию тура'' и ''отелю'' участвует только одна дата и продолжительность для каждой программы туров. |
− | Блок ''' | + | |
− | <br />[[Файл: | + | ===Особенности путешествия в выбранную страну=== |
+ | Блок '''Особенности путешествия в выбранную страну''' появляется в том случае, если в системе администрирования ПК "Мастер-Web" в поле '''Примечание''' подраздела '''Страны -> Страна''' задано описание страны.<br /> | ||
+ | Начиная с 15 версии релиза 7 и выше описание по стране добавляется в справочнике Страны в программе туров. '''Справочники → География → Страны''' (ссылка на страницу <code>''<nowiki>http://ip-адрес сервера/TourPrograms/Countries</nowiki>''</code>). | ||
+ | <br />[[Файл:As67.JPG|1060px|Примечания по стране]]<br /> | ||
+ | |||
+ | ===Поиск с включенными изображениями и описанием отеля=== | ||
+ | Отображение изображений и описание отеля включается в настройкой [[Мастер-Тур(15):Программа туров. Настройки|показывать описание и изображения отелей в поиске]] в панели администрирования программы туров. Само описание и изображения отеля необходимо предварительно добавить в новом справочнике [[Мастер-Тур(15):Отели|отелей]].<br /> | ||
+ | При включенной настройке поиск начинает работать следующим образом: | ||
+ | <br />[[Файл:As 007.JPG|Поиск с изображение отеля]]<br /><br /> | ||
+ | |||
+ | Нажав либо на изображение ''preview'' рядом с отелем, либо на название отеля – откроется окно с изображениями и описанием отеля, разделенное на разделы. Такие же разделы отображаются и в справочнике отеля. Если описание не добавлено, но указана ссылка на сайт в карточке отеля, то нажав на название отеля происходит переход по ссылке. Если добавлено описание, то открывается окно с описанием, и ссылка на сайт находится справа внизу с текстом ''Подробнее''.<br /> | ||
+ | <br />[[Файл:As 008.JPG|Описание отеля]]<br /><br /> | ||
+ | |||
+ | Нажав на изображение, откроется слайдер изображений во весь экран.<br /> | ||
+ | <br />[[Файл:As 009.JPG|1000px|Карусель изображений отеля]]<br /> | ||
+ | |||
+ | ===Отображение в поиске информации по ценовым блокам и акциям=== | ||
+ | |||
+ | Начиная с релиза 15.5 в настройки [[Мастер-Тур(15):Внесение_цен_на_услуги#Отображение информации о ценовом блоке в онлайне|ценовых блоков]] и [[Мастер-Тур(15):Программа_туров._Акции#Отображение акций в онлайне|акций]] добавлена возможность отображать информацию о них в онлайне. После включения этих настроек в поиске около цен, к которым применяются такие ценовые блоки или акции, появятся специальные иконки, при наведении на которые отобразится необходимая информация.</br> | ||
+ | [[Файл:Nr125.png|1060px|Пример цены с информацией о ценовом блоке и акциях]]</br> | ||
+ | Начиная с релиза 15.8 дата, указанная в поле '''период продаж по''' при создании ценового блока, отображается при наведении на иконку SPO.</br> | ||
+ | Видимость в поиске регулируется настройкой '''Отображать окончание периода продаж ценового блока''' в [[Мастер-Тур(15):Программа туров. Настройки#Настройки поиска|настройках поиска программы туров]].</br> | ||
+ | [[Файл:Ea_404.png|1000px]]</br> | ||
+ | |||
+ | ===Поиск по ночам проживания в отеле=== | ||
+ | |||
+ | Начиная с релиза 15.5 в настройку ''Осуществлять поиск'' [[Мастер-Тур(15):Программа туров. Настройки|панели администрирования]] добавлена опция "в ночах проживания в отеле". | ||
+ | |||
+ | [[Файл:Nr128.png|1060px|Настройка поиска цен тура по ночам проживания в отеле]] | ||
+ | |||
+ | При выборе этой опции поиск туров будет осуществляться не по общему количеству дней тура, а по количеству ночей проживания в отеле или круизе. К примеру, если общая длительность тура составляет одиннадцать дней, однако ночей проживания в нем девять, то искаться цены этого тура будут при выборе девяти ночей в поисковом фильтре "Ночи проживания". </br> | ||
+ | Дополнительно указывается рядом с количеством ночей проживания в туре также количество ночей в пути. </br> | ||
+ | При наведении на количество ночей в пути вcплывает сообщение "9 ночей проживания в отеле+2 ночи в пути"</br> | ||
+ | |||
+ | [[Файл:Ea_364.png|1060px|Пример поиска цен тура по ночам проживания в отеле]] | ||
+ | |||
+ | Аналогично информация о туре будет отображаться и в корзине. | ||
+ | |||
+ | [[Файл:Ea_365.png|Отображение информации о ночах проживания тура в корзине]] | ||
+ | |||
+ | ===Поиск, бронирование и квотирование инфанта=== | ||
+ | |||
+ | Стоимость на услугу Авиаперелет для инфанта вноситься на тот же тариф, для которого заведена стоимость для взрослого. Цена вносится отдельной строчкой с указание возрастных ограничений. | ||
+ | [[Файл:As 015.JPG|1060px|Цена за инфант]]<br /><br /> | ||
+ | |||
+ | При поиске туров, где в состав семьи входит инфант, ребенка с возрастом «1 год» необходимо добавлять в основной состав туристов, в основных фильтрах поиска. Возраст инфанта задается в [[Мастер-Тур(15):Программа туров. Настройки|общих настройках, панели администрирования]]<br /> | ||
+ | [[Файл:As016.JPG|1060px|Фильтры поиска]]<br /><br /> | ||
+ | |||
+ | В результатах поиска будут доступны номера, в которых доступно размещение детей от 0 лет. <br /> | ||
+ | При включенной настройке [[Мастер-Тур(15):Программа туров. Настройки|искать цены на альтернативные размещения]] будут также подбираться другие доступные размещения.<br /> | ||
+ | [[Файл:As017.JPG|1060px|Результат поиска]]<br /><br /> | ||
+ | |||
+ | Квоты на отель: Мастер-Тур 15 работает только с ценами и квотами за номер. Инфант не снимает дополнительную квоту, а также не изменяет стоимость номера.<br /> | ||
+ | Услуга Авиаперелет для инфанта будет подтверждена вне квоты. <br /> | ||
+ | В случае если инфант в процессе тура становится ребенком, он будет занимать квоту на обратном перелете. Цена также будет рассчитана с учетом возраста на обратном перелете.<br /> | ||
+ | [[Файл:As018.JPG|Результат поиска]]<br /> | ||
+ | |||
+ | ===Поиск типов размещений с детьми=== | ||
+ | Начиная с релиза 15.8 в [[Мастер-Тур(15):Типы размещений|типах размещений]] можно указывать любое количество детей на основных и дополнительных места. При поиске туров, где указаны размещения с детьми происходит обработка возраста каждого ребенка, указанного в типе размещения. Так же следует учитывать работу настройки [[Мастер-Тур(15):Программа туров. Настройки#Настройки поиска|Искать цены на альтернативные размещения]]. | ||
+ | |||
+ | ==Проверка наличия курсов валют в поиске== | ||
+ | |||
+ | Проверка наличия курсов валют – по умолчанию признак включен (т.е. поиск туров осуществляется с учетом наличия курса национальной валюты и реальных кросс-курсов). <br /> | ||
+ | Включение и отключение признака происходит в [[Мастер-Тур(15):Программа туров. Настройки|общих настройках, панели администрирования.]]<br /> | ||
+ | Если признак включен, но курсы национальной валюты и реальные кросс-курсы не заданы поиск недоступен и отображается сообщение:<br /> | ||
+ | [[Файл:As019.JPG|1060px|Курсы не заданы]]<br /> | ||
+ | |||
+ | Что бы поиск работал, нужно добавить [[Мастер-Тур:Справочники#Курс национальной валюты|курсы национальной валюты]] и [[Мастер-Тур:Справочники#Реальные кросс-курсы валют|реальные кросс-курсы]] в соответствующие справочники Мастер-Тур.<br /><br /> | ||
+ | |||
+ | Если признак выключен, то работа поиска осуществляется следующим образом: | ||
+ | * Если отсутствует курс национальной валюты, а поиск происходит в ней, то система все цены показывает равными 0; | ||
+ | * Если отсутствует кросс-курс между валютами (например: перелет в $, а отель в EU), а поиск происходит в одной из этих валют, то система все цены показывает равными 0; | ||
+ | * Если отсутствует курс национальной валюты, то в корзине система показывает стоимость в валюте тура, в национальной валюте цена показывается 0. Бронирование происходит по стоимости в валюте тура, при этом курс национальной валюты в путевке не фиксируется, стоимость в национальной валюте указывается 0; | ||
+ | * Если отсутствует кросс-курс между валютами (например: перелет в $, а отель в EU), то в корзине цена в валюте тура показывается равная 0 и бронирование становится невозможным; | ||
+ | <br /> | ||
==Параметры, передаваемые через URL страницы== | ==Параметры, передаваемые через URL страницы== | ||
Строка 252: | Строка 408: | ||
* '''departureCities''' — код города вылета из таблицы ''CityDictionary''; | * '''departureCities''' — код города вылета из таблицы ''CityDictionary''; | ||
* '''destination''' — "1_" + код страны места назначения из таблицы ''Country''; | * '''destination''' — "1_" + код страны места назначения из таблицы ''Country''; | ||
− | * '''destCities''' — код города места назначения из таблицы ''CityDictionary'' (только при включенной настройке [[Мастер-Тур(15):Программа туров. | + | * '''destCities''' — код города места назначения из таблицы ''CityDictionary'' (только при включенной настройке [[Мастер-Тур(15):Программа туров. Настройки|Отображать фильтр по городам на главной странице поиска]]); |
* '''tourType''' — код типа тура; | * '''tourType''' — код типа тура; | ||
* '''dates''' — даты начала тура (даты задаются в формате ''ДД.ММ.ГГГГ'', более одной даты указываются через запятую); | * '''dates''' — даты начала тура (даты задаются в формате ''ДД.ММ.ГГГГ'', более одной даты указываются через запятую); | ||
Строка 259: | Строка 415: | ||
* '''hotelQuota/aviaQuota''' — код варианта наличия мест на отели/авиаперелеты (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все"); | * '''hotelQuota/aviaQuota''' — код варианта наличия мест на отели/авиаперелеты (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все"); | ||
* '''currency''' — ISO код валюты (задается в справочнике '''Список валют''').<br /> | * '''currency''' — ISO код валюты (задается в справочнике '''Список валют''').<br /> | ||
+ | |||
+ | К примеру, если нужно передать по умолчанию значения фильтра ''Наличия мест в отеле'' – ''Все'', то URL-запроса будет следующего вида:<br /> | ||
+ | <code>'''<nowiki><http://ip-адрес сервера/TourSearchClient?hotelQuota=7</nowiki>'''</code><br /> | ||
===Необязательные параметры URL-запроса=== | ===Необязательные параметры URL-запроса=== | ||
Строка 306: | Строка 465: | ||
</nowiki>'''</code><br /> | </nowiki>'''</code><br /> | ||
− | * '''dep_airports | + | * '''dep_airports''' — коды аэропортов вылета |
− | * '''flightCityDeparture''' — код города вылета | + | * '''arr_airports''' — коды аэропортов прилета |
− | * '''airlines''' — код авиакомпании из таблицы ''Airline'' | + | * '''flightCityDeparture''' — код города вылета |
− | * '''flightTariffs''' — код класса перелета | + | * '''airlines''' — код авиакомпании из таблицы ''Airline'' |
+ | * '''flightTariffs''' — код класса перелета | ||
+ | * '''departureFlightNumberTransfer''' – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3. | ||
+ | * '''arrivalFlightNumberTransfer''' – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3. | ||
Ниже перечисленные параметры подразумевают установку признака активности, поэтому принимают только значение '''true''':<br /> | Ниже перечисленные параметры подразумевают установку признака активности, поэтому принимают только значение '''true''':<br /> | ||
− | * '''dTransfer=true''' — запрет на пересадку для прилета (без пересадок в прямом направлении) | + | * '''dTransfer=true''' — запрет на пересадку для прилета (без пересадок в прямом направлении) |
− | * '''aTransfer=true''' — запрет на пересадку для вылета (без пересадок в обратном направлении) | + | * '''aTransfer=true''' — запрет на пересадку для вылета (без пересадок в обратном направлении) |
+ | * '''CombineAirlines=true''' — разрешить комбинировать авиаперелеты. Параметр применяется только при наличии параметра '''airlines'''. Обрабатывается начиная с релиза 15.3. | ||
+ | * '''CombineTariffs=true''' — разрешить комбинировать классы перелета. Параметр применяется только при наличии параметра '''tariff'''. Обрабатывается начиная с релиза 15.3. | ||
Пример: <code>'''<nowiki>http://ip-адрес сервера/TourSearchClient?departureCities=1&destination=1_30 &tourType=5,2&dates=27.06.2016&durations=5&adultCount=2&hotelQuota=5&aviaQuota=7¤cy=USD&dTransfer=true&aTransfer=true</nowiki>'''</code><br /> | Пример: <code>'''<nowiki>http://ip-адрес сервера/TourSearchClient?departureCities=1&destination=1_30 &tourType=5,2&dates=27.06.2016&durations=5&adultCount=2&hotelQuota=5&aviaQuota=7¤cy=USD&dTransfer=true&aTransfer=true</nowiki>'''</code><br /> | ||
+ | |||
+ | ==Настройка View для разграничения туров, опубликованных для продажи== | ||
+ | Существует возможность настроить разграничение доступа к турам для пользователя, которым подключается служба поиска в БД. Пользователь прописывается в [[Мастер-Тур(15):Установка#Установка службы поиска|строке подключения службы поиска]]<br /> | ||
+ | Для пользователя создается View на таблицы ToursSearch и TourPrograms.<br /> | ||
+ | ==Пример скрипта, для создания View для разграничения поиска по странам и городам вылета== | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | IF OBJECT_ID('UserMT.ToursSearchView') IS NOT NULL | ||
+ | DROP VIEW UserMT.ToursSearchView | ||
+ | GO | ||
+ | CREATE VIEW [UserMT].[ToursSearchView] | ||
+ | AS | ||
+ | SELECT * | ||
+ | FROM dbo.ToursSearch | ||
+ | WHERE | ||
+ | (TS_CTDepartureKeys = '1' or TS_CTDepartureKeys = '5' or TS_CTDepartureKeys = '1;5' or TS_CTDepartureKeys = '5;1') | ||
+ | and (TS_CNKeys = '90' or TS_CNKeys = '460' or TS_CNKeys = '460;90' or TS_CNKeys = '90;460' ) | ||
+ | GO | ||
+ | IF OBJECT_ID('UserMT.TourProgramsView') IS NOT NULL | ||
+ | DROP VIEW UserMT.TourProgramsView | ||
+ | GO | ||
+ | CREATE VIEW [UserMT].[TourProgramsView] | ||
+ | AS | ||
+ | SELECT * | ||
+ | FROM dbo.TourPrograms | ||
+ | WHERE TP_Id in | ||
+ | (SELECT TS_Id FROM [UserMT].[ToursSearchView]) | ||
+ | GO | ||
+ | </syntaxhighlight> | ||
+ | Где, | ||
+ | <br /> | ||
+ | (TS_CTDepartureKeys = '1' or TS_CTDepartureKeys = '5' or TS_CTDepartureKeys = '1;5' or TS_CTDepartureKeys = '5;1') and (TS_CNKeys = '90' or TS_CNKeys = '460' or TS_CNKeys = '460;90' or TS_CNKeys = '90;460' ) это условия разграничения. | ||
+ | <br /> | ||
+ | * '''TS_CTDepartureKeys''' – указываются ключи городов вылета ('''CT_KEY''' таблицы Citydictionary);<br /> | ||
+ | * '''TS_CNKeys''' – указываются ключи стран, направлений поиска ('''CN_KEY''' таблицы Country);<br /> | ||
+ | * '''UserMT''' – пользователь, который прописан в строке подключения службы поиска (указан в скрипте в 7 местах); | ||
+ | <br /> | ||
+ | |||
+ | ==Пример скрипта, для создания View для разграничения поиска по филиалам== | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | IF OBJECT_ID('UserMT.ToursSearchView') IS NOT NULL | ||
+ | DROP VIEW UserMT.ToursSearchView | ||
+ | GO | ||
+ | CREATE VIEW [UserMT].[ToursSearchView] | ||
+ | AS | ||
+ | SELECT * | ||
+ | FROM dbo.ToursSearch | ||
+ | WHERE | ||
+ | TS_Id in | ||
+ | (select tp_id from ( | ||
+ | SELECT tp_id,tp_xmlsettings, cast(T2.Loc.query('.') as nvarchar(max)) as branches | ||
+ | FROM TourPrograms | ||
+ | CROSS APPLY tp_xmlsettings.nodes('/TourProgram/TourSettingsViewModel/Branches') as T2(Loc) ) tt | ||
+ | where ((CHARINDEX('<int>446</int>',branches) > 0) )) | ||
+ | GO | ||
+ | IF OBJECT_ID('UserMT.TourProgramsView') IS NOT NULL | ||
+ | DROP VIEW UserMT.TourProgramsView | ||
+ | GO | ||
+ | CREATE VIEW [UserMT].[TourProgramsView] | ||
+ | AS | ||
+ | SELECT * | ||
+ | FROM dbo.TourPrograms | ||
+ | WHERE TP_Id in | ||
+ | (SELECT TS_Id FROM [UserMT].[ToursSearchView]) | ||
+ | GO | ||
+ | </syntaxhighlight> | ||
+ | Где, | ||
+ | * '''<int>446</int>''' – указывается ключ партнера из таблицы tbl.Partners, который указан в поле филиал бронирования в тур программе; | ||
+ | * '''UserMT''' – пользователь, который прописан в строке подключения службы поиска (указан в скрипте в 7 местах); | ||
==Быстрый поиск== | ==Быстрый поиск== | ||
Строка 323: | Строка 555: | ||
<IFRAME SRC="HTTP://ip-сервера/TourSearchClient/DemoSearch" scrolling="no" width="280" height="450" FRAMEBORDER="0"> | <IFRAME SRC="HTTP://ip-сервера/TourSearchClient/DemoSearch" scrolling="no" width="280" height="450" FRAMEBORDER="0"> | ||
Дизайн настраивается в файле ''\TourSearchClient\Views\DemoSearch\Index.cshtml''. Стили прописываются в файле ''\TourSearchClient\Content\Shared\Common.css''.<br /> | Дизайн настраивается в файле ''\TourSearchClient\Views\DemoSearch\Index.cshtml''. Стили прописываются в файле ''\TourSearchClient\Content\Shared\Common.css''.<br /> | ||
− | На форме отображены фильтры, аналогичные основным фильтрам поиска: '''Откуда''', '''Куда''', '''Тип тура''', '''Даты заезда''', '''Количество ночей от... до...''', '''Взрослые''', '''Дети'''. После их заполнения и нажатия кнопки '''Найти''' происходит переход на основной поиск, куда передаются все параметры, выбранные в фильтрах быстрого поиска. | + | На форме отображены фильтры, аналогичные основным фильтрам поиска: '''Откуда''', '''Куда''', '''Тип тура''', '''Даты заезда''', '''Количество ночей от... до...''', '''Взрослые''', '''Дети'''. После их заполнения и нажатия кнопки '''Найти''' происходит переход на основной поиск, куда передаются все параметры, выбранные в фильтрах быстрого поиска.<br /> |
+ | |||
+ | ==Быстрый поиск (новая форма)== | ||
+ | Данная форма является альтернативным решение быстрого поиска с другим дизайном и реализацией. | ||
+ | [[Файл:JK 126.png|1400px|Быстрый поиск]]<br /> | ||
+ | Дизайн и настройки прописываются в файле ''\TourSearchOwin\NotifyResponse\DemoSearchTemplate.html''.<br /> | ||
+ | Этот же файл является самой формой поиска, которая встраивается путем вставки в страницу сайта текста в html формате. <br /> | ||
+ | '''Весь текст, указанный в этом файле – необходимо использовать целиком.''' <br /> | ||
+ | Настройки подключения к службе поиска и настройки фильтров:<br /> | ||
+ | |||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | search_api_service_url: "http://localhost:9000/TourSearchOwin/", /* URL сервиса */ | ||
+ | search_client_url: "http://localhost/TourSearchClient/", /* URL клиента поиска */ | ||
+ | localizeCode: "ru", /* Код локализации (ru, en или ua) */ | ||
+ | filtersOrder: { | ||
+ | country: 1, | ||
+ | type: 2, | ||
+ | date: 3, | ||
+ | duration: 4, | ||
+ | people: 5, | ||
+ | city: 6, | ||
+ | } | ||
+ | cityKey: 1, | ||
+ | countryKey: null, | ||
+ | typeKey: null, | ||
+ | title: "", | ||
+ | </syntaxhighlight> | ||
+ | <br /> | ||
+ | * search_api_service_url – указывается путь к службе поиска (TourSearchOwin) | ||
+ | * search_client_url – указывается путь к клиенту поиска (TourSearchClient) | ||
+ | * localizeCode – код локализации (ru, en или ua). Позволяет изменить локализацию окна быстрого поиска. Переводы задаются в объекте '''localize''' в файле '''demoSearch.js'''.<br /> | ||
+ | * country: 1 – фильтр страна | ||
+ | * type: 2 – фильтр тип тура | ||
+ | * date: 3 – фильтр даты заезда | ||
+ | * duration: 4 – фильтр количество дней | ||
+ | * people: 5 – фильтр количество туристов | ||
+ | * city: 6 – фильтр город вылета/выезда | ||
+ | Цифра указывает очередность фильтра, то есть в каком порядке будут расположены фильтры.<br /> | ||
+ | * cityKey – указывается ключ (CT_KEY из таблицы CityDictionary) города вылета/выезда по умолчанию, null – город вылета/выезда в фильтре не будет заполнен. Существует возможность передать множественное значение, в формате: [-1, 1] | ||
+ | * countryKey – указывается ключ (CN_KEY из таблицы Country) страны по умолчанию, null – страна в фильтре не будет заполнена | ||
+ | * typeKey – указывается ключ (TP_KEY из таблицы TipTur) типа тура по умолчанию, null – тип тура в фильтре не будет заполнен | ||
+ | * title – заголовок над формой поиска, если необходим | ||
+ | [[Файл: Ls0260.png|left|Полезная информация]] <BR> | ||
+ | Существует возможность в фильтрах '''city''', '''country''' и '''type''' указать 0, в этом случае фильтры будут скрыты | ||
+ | со значением по умолчанию, указанным в параметрах '''cityKey''', '''countryKey''' и '''typeKey''' соответственно.<br /> | ||
+ | <br /> | ||
+ | Дизайн настраивается в тегах:<br /> | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | /* Блок с переменными */ | ||
+ | :root { | ||
+ | --search-color_159753: #00c2eb; /* цвет кнопки Найти */ | ||
+ | --search-text-color_159753: #fff; /* цвет текста кнопки Найти */ | ||
+ | --color_159753: #333; /* цвет остальных кнопок */ | ||
+ | --font-size_159753: 15px; /* размер шрифта фильтров */ | ||
+ | --font-size-controlers_159753: 13px; /* размер шрифта выпадающих фильтров количества дней и количества взрослых/детей) */ | ||
+ | --font-size-search-btn_159753: 15px; /* размер шрифта кнопки поиска */ | ||
+ | --font-size-calendar-btn_159753: 13px; /* размер шрифта кнопки очистить в колендаре */ | ||
+ | --font-size-error_159753: 40px; /* размер шрифта текста ошибки */ | ||
+ | --font-color_159753: #000; /* цвет всех шрифтов */ | ||
+ | --font-family_159753: sans-serif; /* гарнитура шрифта */ | ||
+ | --angle-icon-color_159753: #999; /* цвет иконок (треугольных) */ | ||
+ | } | ||
+ | /*Фон и отступы*/ | ||
+ | .demo-search_159753 { | ||
+ | background: #eee; /* можно ввести цвет (#eee) или при использовании изображения вместо background: #eee; ввести background-size: cover; background-image: (url("путь к картинке")) */ | ||
+ | padding: 70px 70px 70px 70px; /* отступы до фильтров (сверху/справа/снизу/слева) */ | ||
+ | } | ||
+ | /* Стили заголовка */ | ||
+ | .demo-search-title_159753 { | ||
+ | color: #000; /* цвет заголовка */ | ||
+ | margin-bottom: 0px; /* расстояние между заголовком и фильтрами */ | ||
+ | font-family: var(--font-family_159753); /* гарнитура шрифта заголовка */ | ||
+ | font-size: 40px; /* размер шрифта заголовка */ | ||
+ | text-align: center; /* расположение текста заголовка */ | ||
+ | } | ||
+ | </syntaxhighlight> | ||
[[Category:Мастер-Тур(15)]] | [[Category:Мастер-Тур(15)]] | ||
+ | |||
+ | ==Встраиваемая схема доступных мест в автобусе в отдельный сайт== | ||
+ | Начиная с релиза 15.8 появилась возможность отображения схемы с планом рассадки автобусного переезда на любом внешнем сайте. | ||
+ | ===Предварительная подготовка=== | ||
+ | ====Подготовка тура==== | ||
+ | Для отображения плана рассадки в туре обязательно должна присутствовать услуга ''Автобусный переезд'' и в услуге должен быть указан транспорт с заполненным планом рассадки. | ||
+ | ====Подготовка файлов==== | ||
+ | Файлы находятся по пути ''Master15.8.0_№сборки\TourSearchOwin\TransportPlan''. Также в папке имеется шаблон наполнения сайта '''demoSite.html'''.</BR> | ||
+ | В корневую папку внешнего проекта сайта добавить файлы '''bus-scheme.min.js''' и стили '''bus-scheme.css'''. </BR> | ||
+ | [[Файл:Ea_382.png|Автобусы план рассадки]]</BR> | ||
+ | В теге <head> страницы необходимо прописать ссылку на файл стилей bus-scheme.css.</BR> | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | <link rel="stylesheet" href="bus-scheme.css" /> | ||
+ | </syntaxhighlight></BR> | ||
+ | На странице в конце тега <body> добавить ссылку на файл bus-scheme.min.js </BR> | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | <script src="./bus-scheme.min.js"></script> | ||
+ | </syntaxhighlight></BR> | ||
+ | Далее в любой части кода страницы можно вызвать кнопку вывода плана рассадки автобусного переезда, указав в параметре '''tour-program-key''' ключ турпрограммы, в параметре '''api-origin''' прописать адрес службы поиска. Количество кнопок на странице неограничено и зависит от количества указанных ниже строк.</BR> | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | <bus-scheme tour-program-key="100011312" api-origin="http://localhost:9000/TourSearchOwin/" /> | ||
+ | <bus-scheme tour-program-key="100011313" api-origin="http://localhost:9000/TourSearchOwin/" /> | ||
+ | </syntaxhighlight></BR> | ||
+ | [[Файл:Ea_381.png|Автобусы план рассадки]]</BR> | ||
+ | ===Работа с формой=== | ||
+ | После выполнения указанных выше действий на странице в нужном месте появится кнопка [[Файл:Ea_387.png]]. </BR> | ||
+ | [[Файл:Ea_383.png]]</BR> | ||
+ | При нажатии на кнопку откроется форма, на которой будет отображено направление автобусного переезда (берется из названия услуги), дата начала и план рассадки. Существует возможность выбрать другую дату с просмотром актуальной схемы рассадки на выбранную дату.</BR> | ||
+ | [[Файл:Ea_390.png]] | ||
+ | </BR> | ||
+ | Зеленым помечены свободные места, красным — занятые.</BR> | ||
+ | Обратите внимание, если в туре несколько автобусных переездов, то отобразится название и план рассадки только первого из них |
Текущая версия на 15:02, 13 ноября 2024
Версия статьи от 13-11-2024.
Поддерживаемые версии ПК «Мастер-Тур»: |
Содержание
- 1 Введение
- 2 Страница поиска туров
- 2.1 Авторизация
- 2.2 Главные фильтры
- 2.3 Результаты поиска
- 2.4 Дополнительные фильтры
- 2.5 Группировка результатов поиска
- 2.6 Особенности путешествия в выбранную страну
- 2.7 Поиск с включенными изображениями и описанием отеля
- 2.8 Отображение в поиске информации по ценовым блокам и акциям
- 2.9 Поиск по ночам проживания в отеле
- 2.10 Поиск, бронирование и квотирование инфанта
- 2.11 Поиск типов размещений с детьми
- 3 Проверка наличия курсов валют в поиске
- 4 Параметры, передаваемые через URL страницы
- 5 Настройка View для разграничения туров, опубликованных для продажи
- 6 Пример скрипта, для создания View для разграничения поиска по странам и городам вылета
- 7 Пример скрипта, для создания View для разграничения поиска по филиалам
- 8 Быстрый поиск
- 9 Быстрый поиск (новая форма)
- 10 Встраиваемая схема доступных мест в автобусе в отдельный сайт
Введение
Данный экран предназначен для поиска актуальных цен с указанием наличия мест, отображения расширенной информации о программах туров и условиях продажи. Экран позволяет выдавать найденные цены с разной детализацией и группировать по нескольким параметрам. Также данном экран предназначен для поиска туров без проживания (к примеру, экскурсионных), а также автобусных туров (начиная с релиза 15.2).
Поиск и бронирование туров (YouTube)
Страница поиска туров
На данной странице есть несколько функциональных блоков:
- главные фильтры
- дополнительные фильтры
- группировка результатов поиска
- результаты поиска
Авторизация
Для наличия возможности бронирования заявки в корзине необходимо авторизоваться в системе, введя Имя пользователя и Пароль. Авторизация может происходить как в экране поиска (тогда перейдя в корзину авторизационные данные пользователя будут сохранены), либо в самой корзине.
Восстановление пароля
Если пароль для входа в систему бронирования забыт, то можно воспользоваться функцией восстановления пароля. Для этого на форме Вход в систему нужно нажать Забыли пароль?, после чего откроется экран Восстановление пароля.
В одно из полей вводим известные данные:
- Логин — вводим логин для входа в систему (если регистрировались как частное лицо и не меняли логин, то им является e-mail)
- E-mail — адрес электронной почты, указанный при регистрации
Затем нажимаем кнопку Выслать пароль и на электронную почту придет письмо с логином и паролем для входа в систему бронирования.
Шаблон письма находится в MasterWeb → Templates → PasswordRecovery.xml.
Регистрация агентства
Для того чтобы зарегистрировать агентство на форме Вход в систему нужно выбрать пункт Регистрация агентства, после чего откроется экран Регистрация партнера.
Поля для заполнения регистрационных данных:
- Название агентства(торговая марка);
- ФИО представителя компании;
- Логин для доступа к системе;
- Пароль для доступа к системе;
- ФИО руководителя;
- Должность руководителя - не обязательно для заполнения;
- Страна;
- Город;
- Индекс;
- Адрес места нахождения;
- Телефон - указывается код города и номер телефона;
- E-mail;
- ИНН - не обязательно для заполнения;
- Система налогооблажения - ОСН или УСН;
- Р/с - расчетный счет в банке;
- К/с - корреспондентский счет банка;
- Наименование банка;
- БИК - БИК банка.
После того, как все необходимые поля заполнены, нажимаем кнопку Зарегистрироваться. При этом регистрационные данные партнера запишутся в базу. Агентству будет отправлено письмо с логином и договором "О реализации туристического продукта". По умолчанию при регистрации добавляется один пользователь. Дополнительных пользователей можно добавить в Личном кабинете.
Регистрация частного лица
Для того чтобы зарегистрировать частное лицо на форме Вход в систему нужно выбрать пункт Регистрация туриста, после чего откроется регистрационная форма Регистрация частного лица. Существует две формы регистрации частного лица, стандартная форма и упрощенная регистрация частного лица (включается в настройках).
Стандартная регистрация частного лица
Заполняем регистрационные данные. Обязательные поля:
- Имя
- Фамилия
- Телефон
- E-mail (Логин) – введенный e-mail будет являться логином. Поменять логин можно в Справочники->Постоянные клиенты->Регистрационные данные
- Пароль – должен содержать не менее шести символов, среди которых должны быть латинские буквы (строчные и прописные), цифры или символы
- Подтверждение пароля
- Ведите текст с картинки (латиница) – поле для ввода проверочного кода с картинки. Если код трудночитаемый, то можно нажать кнопку Обновить
Необязательные поля:
- Страна
- Город
- Адрес
- Примечание
В форму регистрации частного лица существует возможность добавить обязательное поле «Гражданство». Регулируется настройкой Запрашивать гражданство при регистрации частника.
Упрощенная регистрация частного лица
Упрощенная регистрация туриста позволяет максимально быстро зарегистрироваться с заполнением минимально необходимых полей, а также сразу купить путевку (подробнее об этом описано в разделе о взаимодействии формы регистрации и корзины)
Упрощенная регистрация частного лица включается в общих настройках в настройках. Обязательные поля:
- Имя
- Фамилия
- Телефон
- E-mail (Логин) – введенный e-mail будет являться логином. Поменять логин можно в Справочники->Постоянные клиенты->Регистрационные данные
- Ведите текст с картинки (латиница) – поле для ввода проверочного кода с картинки. Если код трудночитаемый, то можно нажать кнопку Обновить
Поле пароль в упрощенной форме регистрации отсутствует. Пароль автоматически генерируются и отправляются на указанный при регистрации электронный адрес.
Настройка Запрашивать гражданство при регистрации частного лица в форме Упрощенная регистрация частного лица не обрабатывается.
После того, как данные заполнены, нажимаем кнопку Зарегистрироваться. По факту регистрации на указанный e-mail частного лица приходит письмо, которое уведомляет об успешно пройденной регистрации. Также приходит письмо на электронную почту администратора системы, уведомляющее, что в системе произошла регистрация частного лица.
Шаблоны писем находятся в папке TourSearchOwin → NotifyResponse:
- TemplateForTourist.txt - шаблон письма Произведена регистрация в системе онлайн бронирования;
- TemplateForAdmin.txt - шаблон письма Новая регистрация частного лица
Настройки для отправки писем задаются в конфигурационном файле Megatec.TourSearchOwin.exe.config.
Настройка ссылки на Политику конфиденциальности задаётся в конфигурационном файле web.config, в папке TourSearchClient .
Взаимодействие формы регистрации и корзины
- Если неавторизированный турист в корзине внес данные туристов и нажал кнопку Вход в систему – открывается окно авторизации. При выборе пункта регистрация туриста – откроется регистрационная форма с уже заполненными данными, внесенными для главного туриста. При нажатии на Зарегистрироваться будет произведена регистрация и авторизация туриста.
- Если неавторизированный турист в корзине внес данные туристов и нажал кнопку Купить – открывается окно авторизации. При выборе пункта регистрация туриста – откроется регистрационная форма с уже заполненными данными, внесенными для главного туриста. При нажатии на Купить будет произведена регистрация туриста, его авторизация и попытка бронирования (если все обязательные поля заполнены). Если заполнены не все обязательные поля для бронирования, то система сообщит об этом пользователю. Данный пункт обрабатывается только в упрощенной форме регистрации.
- Если неавторизированный турист в корзине нажал кнопку Вход в систему – открывается окно авторизации. При выборе пункта регистрация туриста – откроется регистрационная форма. После заполнения обязательных полей и нажатии кнопки Зарегистрироваться будет произведена регистрация и авторизация туриста, а все введенные при регистрации данные будут добавлены главному туристу.
- Если неавторизированный турист в корзине нажал кнопку Купить – открывается окно авторизации. При выборе пункта регистрация туриста – откроется регистрационная форма. После заполнения обязательных полей и нажатии кнопки Купить будет произведена регистрация туриста, его авторизация и попытка бронирования (если все обязательные поля для бронирования заполнены). Если заполнены не все поля, то система сообщит об этом пользователю. Данный пункт обрабатывается только в упрощенной форме регистрации.
Главные фильтры
Для того чтобы просмотреть цены по турам необходимо задать поисковые параметры в главных фильтрах:
- Откуда - город начала поездки, существует возможность задать несколько городов начала поездки;
- Куда (страна) - страна прибытия (можно выбрать только одну страну);
- Куда (город) - город прибытия (можно выбрать несколько или Все);
Начиная с релиза 15.8 города экскурсий, указанные в программе туров, отображаются в списке городов в разделе "Куда(город)".
- Тип тура - по умолчанию фильтр заполняется значением Все. В фильтр подгружаются значения (типы туров), соответствующие выбранному направлению. Возможен выбор нескольких вариантов типа тура;
- Даты начала тура - календарь, где актуальные даты начала тура в выбранную страну подсвечены зеленым цветом. Подсвечиваются только те даты, на которые есть возможность сформировать хотя бы один вариант результата поиска согласно заведенных программ туров;
- Количество дней - список возможных продолжительностей, которые сформированы автоматически. Отображаются только те продолжительности, на которые есть возможность сформировать хотя бы один вариант результата поиска согласно заведенных программ туров;
- Взрослые, дети (возраст детей). Если указано количество детей, то возраст детей обязателен для заполнения.
При нажатии на кнопку Очистить фильтры происходит очистка ранее выбранных фильтров.
Перед тем, как начать поиск туров без услуги проживания, рекомендуется ознакомиться с правилами определения страны назначения для туров без услуги проживания.
Существует возможность добавить Город в главные фильтры. Для этого необходимо воспользоваться настройкой Отображать фильтр по городам на главной странице поиска.
Дополнительно пользователь может указать по какому варианту наличия мест на отели, авиаперелеты, автобусы, поезда необходимо искать программы туров:
- Есть
- Есть+Запрос
- Все
По умолчанию выбран вариант "Есть+Эапрос", установка других доступных значений (Есть, Все) производится в Программах Туров → Настройки поиска
Валюта - валюта, в которой будет отображаться цена тура. Отображаются все валюты из справочника "Список валют", у которых выбран признак "Отображать в поиске"
По умолчанию выбрана "национальная" валюта.
Также в поиске доступен переключатель языков (по умолчанию есть два варианта языка - русский и английский. С настройкой отображаемых данных можно ознакомиться в разделе Настройка языка приложения.
Расчет стоимости тура
Расчет стоимости услуг в составе заказа (Цена тура):
Изначально расчет всегда ведется в валюте тура (например: если цены на услуги заведены в $, а валюта тура EU,
то в момент расчета происходит конвертация значения цены в валюте $ в валюту EU по курсу на дату расчета). Затем применяются настройки округления,
указанные в ПК Мастер-Тур (если указаны настройки округления стоимости услуг).
Стоимости этих услуг суммируются и общая сумма также округляется (по настройкам округления ПК Мастер-Тур). Полученная сумма отображается
в корзине как стоимость тура (всегда в валюте тура).
Расчет стоимости тура в валюте, выбранной в поиске:
Округленная (по настройкам, указанным в ПК Мастер-Тур) стоимость в валюте тура
конвертируется по текущему курсу в валюту поиска и итоговый результат также округляется (по настройкам, указанным в ПК Мастер-Тур).
Аналогичным способом рассчитывается стоимость в национальной валюте в корзине, только в качестве отображаемой валюты всегда выступает национальная валюта.
Расчет стоимости в экранах OrderInfo и OrderList:
При отображении стоимостей в экранах OrderInfo и OrderList, выводятся две цены: первая в валюте тура, полученная в п.1 (не важно в результате расчета или введенная руками),
и вторая в национальной валюте, которая получается путем конвертации по зафиксированному курсу, либо курсу на текущую дату из стоимости в валюте путевки. Результат округляется математически до сотых.
Аналогично происходит расчет в национальной валюте в экране Путевка (исходя из наличия зафиксированного курса).
После выбора значений в главных фильтрах становится доступной кнопка "Найти", при нажатии на которую система отберет туры по заданным параметрам.
При изменении основных фильтров (откуда, страна, город, тип тура) будут подобраны ранее выбранные даты заезда и продолжительности, если в них будет возможность найти туры.
Результаты поиска
По каждому найденному варианту тура будет представлена следующая информация:
- Даты туров и продолжительность тура (в днях) – продолжительность считается по дате окончания предоставления последней услуги. Поэтому, например, при обратном перелете на следующий день, количество дней в туре в поиске будет увеличено на один день
- Город начала поездки
- Название тура
- Отель, город, курорт, категория, продолжительность проживания (в ночах)
- Авиаперелет - информация по рейсам авиаперелета
- Цена - минимальная возможная цена варианта тура по заданным в фильтрах дате, продолжительности, количеству людей, туру и отелю.
Для просмотра информации о доступных вариантах размещения и типах питания необходимо кликнуть по слову "Варианты" в соответствующей строке тура. Откроется список доступных вариантов размещения и типов питания по данному отелю.
Слева от варианта размещения или авиаперелета отображается наличие мест.
В том случае, если по выбранным параметрам не будет найдено результатов, то пользователю будет выведено сообщение: С выбранными параметрами поиска туров не найдено. Пожалуйста, измените параметры поиска, значения статусов наличия мест, измените даты или продолжительность. В том случае, если в поисковой строке были выбраны доп. фильтры (к примеру отель, турпрограмма) и по ним нет данных в программах тура (удалили отель или продолжительность), то в этом случае доп. фильтры будут сброшены и будет осуществлена попытка поиска результатов без указанных значений.
Отображения минимальной цены для конкретного отеля
Примерно в 1% результатов поиска может возникать ситуация, когда для конкретного отеля подбирается не самая минимальная цена.
При инициализации службы поиска происходит "взвешивание" цены на отель.
В случаях когда суточные цены на разные размещения или типа питания внесены разным количеством периодов, средний вес более дешевого номера может быть больше, чем у более дорого.
Например цены на питании завтрак внесены 4-мя строчками, а цена на питании полупансион 6-ю. При измерении общего среднего веса цены получится, что цена на питании полупансион весит меньше.
Для избежания подобных ситуаций рекомендуем вносить цены на разные размещения и типы питания одинаковым количеством периодов.
Начиная с релиза 15.9 реализована настройка WeightCostAlgorithm в конфигурационном файле Megatec.TourSearchOwin.exe.config службы поиска, позволяющая отображать минимальную цену как среднее арифметическое. Если установлено значение 1, то настройка применяется, если установлено значение 0, пустое значение или настройка отсутствует в конфигурационном файле, то настройка не применяется.
При динамическом ценообразовании считать все цены невозможно, так как расчет вообще всех цен, которые смогут подойти, займет продолжительное время. Мы используем в расчете определенный алгоритм, который позволяет с большей степенью вероятности найти правильную наименьшую цену.
Алгоритм работы настройки:
1. В каждом периоде вычисляется общее количество дней.
2. Количество дней одного периода умножается на суточную стоимость этого периода (получается сумма за весь период).
3. Суммируются суммы периодов и количества дней по всем периодам (получается сумма цен за все дни всех периодов).
4. Сумма цен за все дни делится на количество всех дней (получается среднее арифметическое значение суточной стоимости).
Пример расчета:
1. Общее количество дней в периодах: 31, 28, 31 и 30.
2. Сумма за весь период: 31*150=4650; 28*130=3640; 31*180=5580; 30*200=6000.
3. Сумма цен за все дни всех периодов: 4650+3640+5580+6000=19870.
4. Среднее арифметическое значение суточной стоимости: 19870/120=165,583.
Минимальная цена каждого отеля определяется по всем типам размещений на основе среднего арифметического значения суточной стоимости каждого типа размещения в отдельности.
Дополнительные фильтры
Для удобства поиска туров по определенным параметрам можно воспользоваться дополнительными фильтрами.
Дополнительные фильтры применяются к уже отобранным по главным фильтрам вариантам туров. В программе представлены следующие дополнительные фильтры:
- Цена – отбор туров в заданном диапазоне цен;
- Программа тура – отбор по самой программе тура;
- Параметры проживания – отбор по городу, курорту, категории отеля, питанию, признаку отеля и названию отеля;
- Признаки отелей – находятся в фильтре Параметры проживания. Производит отбор отелей по выбранному признаку (фильтр доступен, начиная со 2-го релиза). Добавляются в справочнике Признаки отелей;
- Параметры авиаперелета – отбор по параметрам авиаперелета (время вылета/прилета, аэропорт вылета/прилета, город вылета, авиакомпания и класс перелета);
Начиная с релиза 15.3 реализован механизм, позволяющий не сбрасывать дополнительные фильтры при изменении основных фильтров.
Начиная с релиза 15.3 реализован подсчет общего количества найденных отелей, а также подсчет выбранных отелей в дополнительных фильтрах.
Начиная с релиза 15.3 добавлена возможность выводить в дополнительных фильтрах поиска сгруппированные типы питания и категории отелей по их глобальным кодам. Регулируется соответствующими настройками.
Логика отображения следующая: если в справочнике Типы питания или Категории отелей заполнено поле Глобальный код, то он будет отображаться в дополнительных фильтрах. Если поле Глобальный код не заполнено, то будет отображаться значение, заданное в поле Название. В результатах поиска Глобальный код не отображается.
Начиная с релиза 15.3 добавлены два признака в дополнительные фильтры Параметры авиаперелета:
- Разрешить комбинировать авиаперелеты – по умолчанию признак не выбран. Выбрать его можно только в том случае, если выбрана хотя бы одна авиакомпания. При выборе данного признака будут подбираться рейсы, которые хотя бы в одном сегменте осуществляются выбранной авиакомпанией. Без выбора этого признака будут подбираться только те рейсы, в которых все сегменты авиаперелета осуществляются выбранной авиакомпанией.
- Разрешить комбинировать классы – по умолчанию признак не выбран. Выбрать его можно только в том случае, если выбран хотя бы один класс перелета. При выборе данного признака будут подбираться рейсы, в которых хотя бы в одном сегменте авиаперелета перевозка осуществляется выбранным классом. Без выбора этого признака будут подбираться только те рейсы, в которых на всех сегментах авиаперелета перевозка осуществляется выбранным классом.
Начиная с релиза 15.7 реализована возможность, что при нажатии на название отеля, которое подсвечено голубым цветом, в разделе фильтров Параметры проживания происходят действия, описанные в разделе Поиск с включенными изображениями и описанием отеля.
Фильтр Выбранная комбинация отелей
Данный фильтр предназначен для поиска конкретной комбинации отелей в сложных турах. Например, мы едем в тур Бангкок-Паттайя и хотим жить в Бангкоке в отеле
Grand Mercure Bangkok Atrium, а в Паттайе в Jomtien Palm Beach. Для этого в списке отелей выбираем требуемые отели и ставим чекбокс Выбранная комбинация отелей.
Теперь в поиске будут показываться только те варианты туров, в которых есть данная комбинация отелей.
По умолчанию фильтр Выбранная комбинация отелей не виден. Он становится доступным после того, как пользователь выбрал в списке отелей хотя бы один отель.
Фильтр Выбранная комбинация признаков отелей
Данный фильтр предназначен для отображения только тех отелей, в которых встречается выбранная комбинация признаков отелей. Например, нам нужны отели, в которых есть Закрытая территория и Конференц-зал. Для этого в списке признаков отелей выбираем требуемые признаки и ставим чекбокс Выбранная комбинация признаков отелей.
Теперь в поиске будут показываться только те варианты туров, в отелях в которых есть данная комбинация признаков отелей.
По умолчанию фильтр Выбранная комбинация признаков отелей не виден. Он становится доступным после того, как пользователь выбрал в списке отелей хотя бы один признак отеля.
Группировка результатов поиска
Группировать отобранные результаты поиска можно по одному или нескольким параметрам одновременно. Возможны группировки по следующим параметрам:
- название тура
- дата тура
- продолжительность
- город начала поездки
- отель
- город
- курорт
- категория отеля
Отдельные случаи группировок по отель, городу, курорту и категории отеля:
- В случае если производится группировка по отелю и дополнительно делается попытка группировки по городу, курорту, или категории отеля - то группировка по отелю сбрасывается;
- В случае если производится группировка по городу, курорту или категории отеля и дополнительно делается попытка группировки по отелю - то группировки по городу, курорту и категории отеля сбрасывается.
Для просмотра результатов поиска после применения группировки необходимо нажать "Варианты" в определенной строке. Параметры, по которым производилась группировка подсвечиваются синим цветом.
Начиная с релиза 15.8 произведена оптимизация, при которой при группировке по названию тура и отелю участвует только одна дата и продолжительность для каждой программы туров.
Особенности путешествия в выбранную страну
Блок Особенности путешествия в выбранную страну появляется в том случае, если в системе администрирования ПК "Мастер-Web" в поле Примечание подраздела Страны -> Страна задано описание страны.
Начиная с 15 версии релиза 7 и выше описание по стране добавляется в справочнике Страны в программе туров. Справочники → География → Страны (ссылка на страницу http://ip-адрес сервера/TourPrograms/Countries
).
Поиск с включенными изображениями и описанием отеля
Отображение изображений и описание отеля включается в настройкой показывать описание и изображения отелей в поиске в панели администрирования программы туров. Само описание и изображения отеля необходимо предварительно добавить в новом справочнике отелей.
При включенной настройке поиск начинает работать следующим образом:
Нажав либо на изображение preview рядом с отелем, либо на название отеля – откроется окно с изображениями и описанием отеля, разделенное на разделы. Такие же разделы отображаются и в справочнике отеля. Если описание не добавлено, но указана ссылка на сайт в карточке отеля, то нажав на название отеля происходит переход по ссылке. Если добавлено описание, то открывается окно с описанием, и ссылка на сайт находится справа внизу с текстом Подробнее.
Нажав на изображение, откроется слайдер изображений во весь экран.
Отображение в поиске информации по ценовым блокам и акциям
Начиная с релиза 15.5 в настройки ценовых блоков и акций добавлена возможность отображать информацию о них в онлайне. После включения этих настроек в поиске около цен, к которым применяются такие ценовые блоки или акции, появятся специальные иконки, при наведении на которые отобразится необходимая информация.
Начиная с релиза 15.8 дата, указанная в поле период продаж по при создании ценового блока, отображается при наведении на иконку SPO.
Видимость в поиске регулируется настройкой Отображать окончание периода продаж ценового блока в настройках поиска программы туров.
Поиск по ночам проживания в отеле
Начиная с релиза 15.5 в настройку Осуществлять поиск панели администрирования добавлена опция "в ночах проживания в отеле".
При выборе этой опции поиск туров будет осуществляться не по общему количеству дней тура, а по количеству ночей проживания в отеле или круизе. К примеру, если общая длительность тура составляет одиннадцать дней, однако ночей проживания в нем девять, то искаться цены этого тура будут при выборе девяти ночей в поисковом фильтре "Ночи проживания".
Дополнительно указывается рядом с количеством ночей проживания в туре также количество ночей в пути.
При наведении на количество ночей в пути вcплывает сообщение "9 ночей проживания в отеле+2 ночи в пути"
Аналогично информация о туре будет отображаться и в корзине.
Поиск, бронирование и квотирование инфанта
Стоимость на услугу Авиаперелет для инфанта вноситься на тот же тариф, для которого заведена стоимость для взрослого. Цена вносится отдельной строчкой с указание возрастных ограничений.
При поиске туров, где в состав семьи входит инфант, ребенка с возрастом «1 год» необходимо добавлять в основной состав туристов, в основных фильтрах поиска. Возраст инфанта задается в общих настройках, панели администрирования
В результатах поиска будут доступны номера, в которых доступно размещение детей от 0 лет.
При включенной настройке искать цены на альтернативные размещения будут также подбираться другие доступные размещения.
Квоты на отель: Мастер-Тур 15 работает только с ценами и квотами за номер. Инфант не снимает дополнительную квоту, а также не изменяет стоимость номера.
Услуга Авиаперелет для инфанта будет подтверждена вне квоты.
В случае если инфант в процессе тура становится ребенком, он будет занимать квоту на обратном перелете. Цена также будет рассчитана с учетом возраста на обратном перелете.
Поиск типов размещений с детьми
Начиная с релиза 15.8 в типах размещений можно указывать любое количество детей на основных и дополнительных места. При поиске туров, где указаны размещения с детьми происходит обработка возраста каждого ребенка, указанного в типе размещения. Так же следует учитывать работу настройки Искать цены на альтернативные размещения.
Проверка наличия курсов валют в поиске
Проверка наличия курсов валют – по умолчанию признак включен (т.е. поиск туров осуществляется с учетом наличия курса национальной валюты и реальных кросс-курсов).
Включение и отключение признака происходит в общих настройках, панели администрирования.
Если признак включен, но курсы национальной валюты и реальные кросс-курсы не заданы поиск недоступен и отображается сообщение:
Что бы поиск работал, нужно добавить курсы национальной валюты и реальные кросс-курсы в соответствующие справочники Мастер-Тур.
Если признак выключен, то работа поиска осуществляется следующим образом:
- Если отсутствует курс национальной валюты, а поиск происходит в ней, то система все цены показывает равными 0;
- Если отсутствует кросс-курс между валютами (например: перелет в $, а отель в EU), а поиск происходит в одной из этих валют, то система все цены показывает равными 0;
- Если отсутствует курс национальной валюты, то в корзине система показывает стоимость в валюте тура, в национальной валюте цена показывается 0. Бронирование происходит по стоимости в валюте тура, при этом курс национальной валюты в путевке не фиксируется, стоимость в национальной валюте указывается 0;
- Если отсутствует кросс-курс между валютами (например: перелет в $, а отель в EU), то в корзине цена в валюте тура показывается равная 0 и бронирование становится невозможным;
Параметры, передаваемые через URL страницы
Предусмотрена возможность поиска тура по параметрам, указанным в URL-запросе страницы.
Пример URL-запроса:
http://ip-адрес сервера/TourSearchClient?departureCities=1&destination=1_30&tourType=5,2&dates=23.06.2016,24.06.2016,25.06.2016&durations=2,3,4,5,6,7,8,9&adultCount=2&hotelQuota=7&aviaQuota=7¤cy=USD
Обязательные параметры URL-запроса
Ниже перечисленные параметры являются обязательными:
- departureCities — код города вылета из таблицы CityDictionary;
- destination — "1_" + код страны места назначения из таблицы Country;
- destCities — код города места назначения из таблицы CityDictionary (только при включенной настройке Отображать фильтр по городам на главной странице поиска);
- tourType — код типа тура;
- dates — даты начала тура (даты задаются в формате ДД.ММ.ГГГГ, более одной даты указываются через запятую);
- durations — продолжительности (задаются через запятую);
- adultCount — количество взрослых;
- hotelQuota/aviaQuota — код варианта наличия мест на отели/авиаперелеты (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все");
- currency — ISO код валюты (задается в справочнике Список валют).
К примеру, если нужно передать по умолчанию значения фильтра Наличия мест в отеле – Все, то URL-запроса будет следующего вида:
<http://ip-адрес сервера/TourSearchClient?hotelQuota=7
Необязательные параметры URL-запроса
- childAges — возраст ребенка (если детей более одного, то возраста перечисляется через запятую, если возраст ребенка "0" - то обрабатывается как "не указан");
- groupingKeys — группировка результатов поиска по:
- Названию тура;
- Дате тура;
- Продолжительности;
- Городу начала поездки;
- Отелю;
- Городу;
- Курорту;
- Категории отеля.
Пример: http://ip-адрес сервера/TourSearchClient?departureCities=1&destination=1_30&tourType=5,2&dates=27.06.2016&durations=5&adultCount=2& childAges=1,3&hotelQuota=5&aviaQuota=7¤cy=USD&groupingKeys=2,4,8
Параметры фильтров:
1. Цена
- minPrice — минимальная цена;
- maxPrice — максимальная цена;
Параметры фильтра Цена можно использовать как в совокупности, так и по отдельности.
2. Программа тура
- tours — ключ программы тура из таблицы TourPrograms;
3. Параметры проживания
- cities — код города из таблицы CityDictionary;
- resorts — код курорта из таблицы Resorts;
- cats — код категории отеля из таблицы CategoriesofHotel;
- hotelTypes — код признака отеля из таблицы HotelTypes;
- pansions — код типа питания из таблицы Pansion;
- hotels — код отеля из таблицы HotelDictionary;
4. Параметры авиаперелета
- depTimeFrom/depTimeTo — временной интервал вылета (задается в формате ЧЧ:ММ);
- arrTimeFrom/arrTimeTo — временной интервал прилета (задается в формате ЧЧ:ММ);
Пример URL-запроса с использованием временных интервалов вылета и прилета:
http://ip-адрес сервера/TourSearchClient?departureCities=232&destination=1_10&tourType=5,2&dates=27.06.2016&durations=5&adultCount=2&hotelQuota=5&aviaQuota=7¤cy=USD&depTimeFrom=01:00
&depTimeTo=01:59&arrTimeFrom=02:00& arrTimeTo=03:59
- dep_airports — коды аэропортов вылета
- arr_airports — коды аэропортов прилета
- flightCityDeparture — код города вылета
- airlines — код авиакомпании из таблицы Airline
- flightTariffs — код класса перелета
- departureFlightNumberTransfer – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3.
- arrivalFlightNumberTransfer – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более). Обрабатывается начиная с релиза 15.3.
Ниже перечисленные параметры подразумевают установку признака активности, поэтому принимают только значение true:
- dTransfer=true — запрет на пересадку для прилета (без пересадок в прямом направлении)
- aTransfer=true — запрет на пересадку для вылета (без пересадок в обратном направлении)
- CombineAirlines=true — разрешить комбинировать авиаперелеты. Параметр применяется только при наличии параметра airlines. Обрабатывается начиная с релиза 15.3.
- CombineTariffs=true — разрешить комбинировать классы перелета. Параметр применяется только при наличии параметра tariff. Обрабатывается начиная с релиза 15.3.
Пример: http://ip-адрес сервера/TourSearchClient?departureCities=1&destination=1_30 &tourType=5,2&dates=27.06.2016&durations=5&adultCount=2&hotelQuota=5&aviaQuota=7¤cy=USD&dTransfer=true&aTransfer=true
Настройка View для разграничения туров, опубликованных для продажи
Существует возможность настроить разграничение доступа к турам для пользователя, которым подключается служба поиска в БД. Пользователь прописывается в строке подключения службы поиска
Для пользователя создается View на таблицы ToursSearch и TourPrograms.
Пример скрипта, для создания View для разграничения поиска по странам и городам вылета
IF OBJECT_ID('UserMT.ToursSearchView') IS NOT NULL
DROP VIEW UserMT.ToursSearchView
GO
CREATE VIEW [UserMT].[ToursSearchView]
AS
SELECT *
FROM dbo.ToursSearch
WHERE
(TS_CTDepartureKeys = '1' or TS_CTDepartureKeys = '5' or TS_CTDepartureKeys = '1;5' or TS_CTDepartureKeys = '5;1')
and (TS_CNKeys = '90' or TS_CNKeys = '460' or TS_CNKeys = '460;90' or TS_CNKeys = '90;460' )
GO
IF OBJECT_ID('UserMT.TourProgramsView') IS NOT NULL
DROP VIEW UserMT.TourProgramsView
GO
CREATE VIEW [UserMT].[TourProgramsView]
AS
SELECT *
FROM dbo.TourPrograms
WHERE TP_Id in
(SELECT TS_Id FROM [UserMT].[ToursSearchView])
GO
Где,
(TS_CTDepartureKeys = '1' or TS_CTDepartureKeys = '5' or TS_CTDepartureKeys = '1;5' or TS_CTDepartureKeys = '5;1') and (TS_CNKeys = '90' or TS_CNKeys = '460' or TS_CNKeys = '460;90' or TS_CNKeys = '90;460' ) это условия разграничения.
- TS_CTDepartureKeys – указываются ключи городов вылета (CT_KEY таблицы Citydictionary);
- TS_CNKeys – указываются ключи стран, направлений поиска (CN_KEY таблицы Country);
- UserMT – пользователь, который прописан в строке подключения службы поиска (указан в скрипте в 7 местах);
Пример скрипта, для создания View для разграничения поиска по филиалам
IF OBJECT_ID('UserMT.ToursSearchView') IS NOT NULL
DROP VIEW UserMT.ToursSearchView
GO
CREATE VIEW [UserMT].[ToursSearchView]
AS
SELECT *
FROM dbo.ToursSearch
WHERE
TS_Id in
(select tp_id from (
SELECT tp_id,tp_xmlsettings, cast(T2.Loc.query('.') as nvarchar(max)) as branches
FROM TourPrograms
CROSS APPLY tp_xmlsettings.nodes('/TourProgram/TourSettingsViewModel/Branches') as T2(Loc) ) tt
where ((CHARINDEX('<int>446</int>',branches) > 0) ))
GO
IF OBJECT_ID('UserMT.TourProgramsView') IS NOT NULL
DROP VIEW UserMT.TourProgramsView
GO
CREATE VIEW [UserMT].[TourProgramsView]
AS
SELECT *
FROM dbo.TourPrograms
WHERE TP_Id in
(SELECT TS_Id FROM [UserMT].[ToursSearchView])
GO
Где,
- <int>446</int> – указывается ключ партнера из таблицы tbl.Partners, который указан в поле филиал бронирования в тур программе;
- UserMT – пользователь, который прописан в строке подключения службы поиска (указан в скрипте в 7 местах);
Быстрый поиск
Также можно осуществить поиск, воспользовавшись формой Быстрый поиск. Данная форма вставляется в любую страницу сайта (для этого используются фреймы).
Для того, чтобы вставить эту форму на страницу, нужно добавить следующий текст:
<IFRAME SRC="HTTP://ip-сервера/TourSearchClient/DemoSearch" scrolling="no" width="280" height="450" FRAMEBORDER="0">
Дизайн настраивается в файле \TourSearchClient\Views\DemoSearch\Index.cshtml. Стили прописываются в файле \TourSearchClient\Content\Shared\Common.css.
На форме отображены фильтры, аналогичные основным фильтрам поиска: Откуда, Куда, Тип тура, Даты заезда, Количество ночей от... до..., Взрослые, Дети. После их заполнения и нажатия кнопки Найти происходит переход на основной поиск, куда передаются все параметры, выбранные в фильтрах быстрого поиска.
Быстрый поиск (новая форма)
Данная форма является альтернативным решение быстрого поиска с другим дизайном и реализацией.
Дизайн и настройки прописываются в файле \TourSearchOwin\NotifyResponse\DemoSearchTemplate.html.
Этот же файл является самой формой поиска, которая встраивается путем вставки в страницу сайта текста в html формате.
Весь текст, указанный в этом файле – необходимо использовать целиком.
Настройки подключения к службе поиска и настройки фильтров:
search_api_service_url: "http://localhost:9000/TourSearchOwin/", /* URL сервиса */
search_client_url: "http://localhost/TourSearchClient/", /* URL клиента поиска */
localizeCode: "ru", /* Код локализации (ru, en или ua) */
filtersOrder: {
country: 1,
type: 2,
date: 3,
duration: 4,
people: 5,
city: 6,
}
cityKey: 1,
countryKey: null,
typeKey: null,
title: "",
- search_api_service_url – указывается путь к службе поиска (TourSearchOwin)
- search_client_url – указывается путь к клиенту поиска (TourSearchClient)
- localizeCode – код локализации (ru, en или ua). Позволяет изменить локализацию окна быстрого поиска. Переводы задаются в объекте localize в файле demoSearch.js.
- country: 1 – фильтр страна
- type: 2 – фильтр тип тура
- date: 3 – фильтр даты заезда
- duration: 4 – фильтр количество дней
- people: 5 – фильтр количество туристов
- city: 6 – фильтр город вылета/выезда
Цифра указывает очередность фильтра, то есть в каком порядке будут расположены фильтры.
- cityKey – указывается ключ (CT_KEY из таблицы CityDictionary) города вылета/выезда по умолчанию, null – город вылета/выезда в фильтре не будет заполнен. Существует возможность передать множественное значение, в формате: [-1, 1]
- countryKey – указывается ключ (CN_KEY из таблицы Country) страны по умолчанию, null – страна в фильтре не будет заполнена
- typeKey – указывается ключ (TP_KEY из таблицы TipTur) типа тура по умолчанию, null – тип тура в фильтре не будет заполнен
- title – заголовок над формой поиска, если необходим
Существует возможность в фильтрах city, country и type указать 0, в этом случае фильтры будут скрыты со значением по умолчанию, указанным в параметрах cityKey, countryKey и typeKey соответственно.
Дизайн настраивается в тегах:
/* Блок с переменными */
:root {
--search-color_159753: #00c2eb; /* цвет кнопки Найти */
--search-text-color_159753: #fff; /* цвет текста кнопки Найти */
--color_159753: #333; /* цвет остальных кнопок */
--font-size_159753: 15px; /* размер шрифта фильтров */
--font-size-controlers_159753: 13px; /* размер шрифта выпадающих фильтров количества дней и количества взрослых/детей) */
--font-size-search-btn_159753: 15px; /* размер шрифта кнопки поиска */
--font-size-calendar-btn_159753: 13px; /* размер шрифта кнопки очистить в колендаре */
--font-size-error_159753: 40px; /* размер шрифта текста ошибки */
--font-color_159753: #000; /* цвет всех шрифтов */
--font-family_159753: sans-serif; /* гарнитура шрифта */
--angle-icon-color_159753: #999; /* цвет иконок (треугольных) */
}
/*Фон и отступы*/
.demo-search_159753 {
background: #eee; /* можно ввести цвет (#eee) или при использовании изображения вместо background: #eee; ввести background-size: cover; background-image: (url("путь к картинке")) */
padding: 70px 70px 70px 70px; /* отступы до фильтров (сверху/справа/снизу/слева) */
}
/* Стили заголовка */
.demo-search-title_159753 {
color: #000; /* цвет заголовка */
margin-bottom: 0px; /* расстояние между заголовком и фильтрами */
font-family: var(--font-family_159753); /* гарнитура шрифта заголовка */
font-size: 40px; /* размер шрифта заголовка */
text-align: center; /* расположение текста заголовка */
}
Встраиваемая схема доступных мест в автобусе в отдельный сайт
Начиная с релиза 15.8 появилась возможность отображения схемы с планом рассадки автобусного переезда на любом внешнем сайте.
Предварительная подготовка
Подготовка тура
Для отображения плана рассадки в туре обязательно должна присутствовать услуга Автобусный переезд и в услуге должен быть указан транспорт с заполненным планом рассадки.
Подготовка файлов
Файлы находятся по пути Master15.8.0_№сборки\TourSearchOwin\TransportPlan. Также в папке имеется шаблон наполнения сайта demoSite.html.
В корневую папку внешнего проекта сайта добавить файлы bus-scheme.min.js и стили bus-scheme.css.
В теге <head> страницы необходимо прописать ссылку на файл стилей bus-scheme.css.
<link rel="stylesheet" href="bus-scheme.css" />
На странице в конце тега <body> добавить ссылку на файл bus-scheme.min.js
<script src="./bus-scheme.min.js"></script>
Далее в любой части кода страницы можно вызвать кнопку вывода плана рассадки автобусного переезда, указав в параметре tour-program-key ключ турпрограммы, в параметре api-origin прописать адрес службы поиска. Количество кнопок на странице неограничено и зависит от количества указанных ниже строк.
<bus-scheme tour-program-key="100011312" api-origin="http://localhost:9000/TourSearchOwin/" />
<bus-scheme tour-program-key="100011313" api-origin="http://localhost:9000/TourSearchOwin/" />
Работа с формой
После выполнения указанных выше действий на странице в нужном месте появится кнопка .
При нажатии на кнопку откроется форма, на которой будет отображено направление автобусного переезда (берется из названия услуги), дата начала и план рассадки. Существует возможность выбрать другую дату с просмотром актуальной схемы рассадки на выбранную дату.
Зеленым помечены свободные места, красным — занятые.
Обратите внимание, если в туре несколько автобусных переездов, то отобразится название и план рассадки только первого из них