Детальная актуализация (xml)
Актуализация и загрузка информации о туре
Метод ActualizePrice необходим для актуализации предложения от туроператора. Метод также позволяет получить дополнительную информацию о туре (номера рейсов, список входящих услуг, дополнительно оплачиваемых услуг), а также выбрать дополнительные услуги в туре и пересчитать цены.
Сигнатура:
XmlActualPriceData ActualizePrice(Int32 sourceId, Int64 offerId, Int32 requestId, Int32[] selectedResources, String login, String password)
Параметры:
- requestId – идентификатор поискового запроса, выдается методом GetTours при создании
нового поискового запроса;
- offerId – идентификатор тура, выдаётся в методе GetTours для каждого тура;
- sourceId – идентификатор туроператора, выдаётся в методе GetTours для каждого тура;
- selectedResources – устарел.
- login – логин для авторизации в личном кабинете туроператора;
- password – пароль для авторизации в личном кабинете туроператора;
Если логин и пароль личного кабинета туроператора не передается в запросе, успешная актуализация информации по туру не гарантируется.
В ответ возвращается структура ActualizePriceResult, которая состоит из следующих полей:
- TourInfo – структура описывает основную информацию о туре, формат описан ниже;
- RandomNumber – случайное четырехзначное число, по которому можно просмотреть информацию о туре в личном кабинете на сайте sletat.ru или в SletatRu Agent, используется для того, чтобы клиент мог точно сообщить менеджеру вашей компании о туре, который он нашёл;
- IsFound – поле принимает значение false, если тур не был найден в базе туроператора;
- IsError – принимает значение true, если при актуализации тура возникла ошибка;
- Resources – список услуг, входящих в тур, поле может быть пустым, если для туроператора
не реализована поддержка вывода подробной информации, формат списка услуг будет описан ниже;
- ResourceData – список дополнительных произвольных данных к любой услуге из поля
Resources, формат будет описан ниже;
Описание структуры TourInfo:
Название поля |
Тип |
Описание |
CountryName |
String |
Страна (данные от туроператора). |
CityFromName |
String |
Город вылета (данные от туроператора). |
ResortName |
String |
Курорт (данные от туроператора). |
TourName |
String |
Название тура (данные от туроператора). |
CheckIn |
String |
Дата вылета в формате dd.MM.yyyy. |
CheckOut | String | Дата прилёта в формате
dd.MM.yyyy. |
Nights |
Int32 |
Продолжительность тура, ночей. |
HotelName |
String |
Название отеля (данные от туроператора). |
StarName |
String |
Категория отеля (данные от туроператора). |
RoomName |
String |
Тип номера (данные от туроператора). |
MealName |
String |
Тип питания (данные от туроператора). |
TicketsIncluded |
Enum |
Включены ли билеты в стоимость тура. Возможные значения: NotIncluded (не включены), Included (включены) и Unknown (нет данных). |
HotelIsInStop |
Enum |
Наличие мест в отеле, возможные значения: Stop (нет билетов), Available (есть билеты), Request (под запрос) и Unknown (нет данных). |
EconomTicketsDpt |
Enum |
Наличие билетов эконом-класса (туда). Возможные значения: Stop (нет билетов), Available (есть билеты), Request (под запрос) и Unknown (нет данных). |
EconomTicketsRtn |
Enum |
Наличие билетов эконом-класса (обратно). Возможные значения: Stop (нет билетов), Available (есть билеты), Request (под запрос) и Unknown (нет данных). |
BusinessTicketsDpt |
Enum |
Наличие билетов бизнес-класса (туда). Возможные значения: Stop (нет билетов), Available (есть билеты), Request (под запрос) и Unknown (нет данных). |
BusinessTicketsRtn |
Enum |
Наличие билетов бизнес-класса (обратно). Возможные значения: Stop (нет билетов), Available (есть билеты), Request (под запрос) и Unknown (нет данных). |
HtPlaceName |
String |
Размещение (данные от туроператора). |
Price |
Int32 |
Цена тура в запрошенной валюте. |
PriceCurrency |
String |
Обозначение валюты (RUB, EUR, USD или BYR). |
OriginalPrice |
Int32 |
Оригинальная цена тура в исходной валюте (параметр доступен не всегда, поэтому в это значение может дублироваться цена Price). |
OriginalPriceCurrency |
String |
Обозначение валюты (данные от туроператора) для цены OriginalPrice. |
SourceId |
Int32 |
Идентификатор туроператора. Поле заполняется только для партнёров sletat.ru (по всем вопросам обращайтесь в службу поддержки info@sletat.ru). |
SourceName |
String |
Название туроператора. Поле заполняется только для партнёров sletat.ru (по всем вопросам обращайтесь в службу поддержки info@sletat.ru). |
SourceSearchFormUrl |
String |
Ссылка на форму поиска туроператора. Поле заполняется только для партнёров sletat.ru (по всем вопросам обращайтесь в службу поддержки info@sletat.ru). |
SysCountryId |
Int32 |
Идентификатор страны из справочника стран. |
SysCountryName |
String |
Название страны из справочника стран. |
SysCityFromId |
Int32 |
Идентификатор города вылета из справочника городов вылета. |
SysCityFromName |
String |
Название города вылета из справочника городов вылета. |
SysResortId |
Int32 |
Идентификатор курорта из справочника курортов (либо из справочника GetCtities или GetGeoTree, в зависимости от параметра useTree исходного поискового запроса), параметр может быть равен 0, если курорт туроператора не слинкован. |
SysResortName |
String |
Название курорта из справочника курортов. Параметр может иметь пустое значение, если курорт туроператора не слинкован. |
SysHotelId |
Int32 |
Идентификатор отеля из справочника отелей. Параметр может быть равен 0, если отель туроператора не слинкован. |
SysHotelName |
String |
Название отеля из справочника отелей. Параметр может иметь пустое значение, если отель туроператора не слинкован. |
SysStarId |
Int32 |
Идентификатор категории отеля из справочника. Параметр может быть равен 0, если категория отеля туроператора не слинкована. |
SysStarName |
String |
Название категории отеля из справочника, параметр может иметь пустое значение, если категория отеля туроператора не слинкована. |
SysRoomId |
Int32 |
Идентификатор типа номера. Параметр может быть равен 0, если тип номера туроператора не слинкован. |
SysRoomName |
String |
Тип номера. Параметр может иметь пустое значение, если тип номера туроператора не слинкован. |
SysMealId |
Int32 |
Идентификатор типа питания из справочника. Параметр может быть равен 0, если вид питания туроператора не слинкован. |
SysMealName |
String |
Тип питания из справочника. Параметр может иметь пустое значение, если тип питания туроператора не слинкован. |
SysHtPlaceId |
Int32 |
Идентификатор размещения. Параметр может быть равен 0, если размещение туроператора не слинковано. |
SysHtPlaceName |
String |
Размещение. Параметр может иметь пустое значение, если размещение туроператора не слинковано. |
HotelDescriptionUrl |
String |
Ссылка на описание отеля. |
HotelTitleImageUrl |
String |
Ссылка на титульное изображение отеля в уменьшенном виде (115x80). Вы можете изменить размеры изображения, используя шаблон ссылки: https://hotels.sletat.ru/i/p/{hotel_id}_{image_index}_{h}_{w}.jpg – где:
Изображения не предоставляются для неслинкованных отелей, а также для отелей с отсутствующим описанием. |
HotelPhotosCount |
Int32 |
Количество фотографий к отелю. |
TourUrl |
String |
Ссылка на описание / бронирование тура на сайте туроператора. Поле заполняется только для партнёров sletat.ru (по всем вопросам обращайтесь в службу поддержки info@sletat.ru). В настоящий момент некоторые туроператоры не имеют ссылок в сервисе Слетать.ру. |
OriginalCurrencyId | Int32 | Идентификатор валюты тура по данным туроператора. Возможные значения: 2 – USD, 3 – EUR, 5 – RUR. |
Adults | Int32 | Количество туристов (взрослых). |
Kids | Int32 | Количество туристов (детей). |
В таблице к некоторым полям добавлен комментарий «(данные от туроператора)». Комментарий означает, что данные строки взяты напрямую из данных туроператора, а не названия из справочников Слетать.ру.
Структура Resources состоит из вложенных элементов Resource, каждый из которых описывает одну услугу в туре полями:
Название поля |
Тип |
Описание |
Id |
Int32 |
Идентификатор услуги |
Type | Int32 | Тип услуги, список возможных типов:
|
Name |
String |
Название услуги. |
IsChecked |
Boolean |
При значении true указывает, что данная услуга входит в посчитанную цену. |
IsEnabled |
Boolean |
При значении true указывает, что данная услуга может быть включена или исключена из стоимости тура, и стоимость может быть пересчитана повторным вызовом данного метода с использованием параметра selectedResources. |
GroupId |
Int32? |
Идентификатор группы. Группы используются для указания на взаимоисключающие услуги, т.е. набор услуг, только одна из которых может быть выбрана. Значение поля может быть NULL, в этом случае выбор услуги никак не связан с другими услугами. |
Exclude |
String |
Список идентификаторов других ресурсов, пересчёт тура с которыми невозможен с использованием данного ресурса. С помощью данного поля, например, устанавливается список подходящих обратных перелётов для каждого перелёта в страну отдыха. Список разделён запятыми. |
Структура ResourceData может включать дополнительные описания для услуг из поля Resources. Каждый элемент состоит из полей:
Название поля |
Тип |
Описание |
ResourceId |
Int32 |
Идентификатор услуги из структуры Resources. |
Name |
String |
Название дополнительного поля с описанием. |
Value |
String |
Содержание дополнительного поля с описанием. |
Ниже представлена таблица возможных значений поля Name для каждого типа услуг:
Тип ресурса |
Значение Name |
Описание |
1 (тур) |
COMMENT |
Комментарий к туру. |
1 (тур) |
DATEBEG |
Дата начала тура. |
1 (тур) |
DATEEND |
Дата окончания тура. |
1 (тур) |
PEOPLE_COUNT |
Кол-во людей для заселения (без учёта младенца, если есть) |
2 (проживание) |
URL |
Ссылка на описание отеля. |
2 (проживание) |
RESORT |
Курорт, в котором расположен отель. |
2 (проживание) |
HTPLACE |
Размещение в отеле. |
2 (проживание) |
ROOM |
Тип номера. |
2 (проживание) |
MEAL |
Питание в отеле. |
2 (проживание) |
CHECKIN |
Дата заезда. |
2 (проживание) |
CHECKOUT |
Дата выезда. |
4, 10, 15 (перелёт) |
FLIGHT |
Номер рейса. |
4, 10, 15 (перелёт) |
DATE |
Дата перелёта. |
4, 10, 15 (перелёт) |
START_TIME |
Время начала перелёта. |
4, 10, 15 (перелёт) |
END_TIME |
Время окончания перелёта. |
4, 10, 15 (перелёт) |
AIRPORT_FROM |
Аэропорт вылета. |
4, 10, 15 (перелёт) |
AIRPORT_TO |
Аэропорт прилёта. |
4, 10, 15 (перелёт) |
CLASS |
Класс перелёта, возможны значения ECONOM и BUSINESS. |
14 (комиссия) |
COMISSION_BASE |
Базовая комиссия агентства (%). |
14 (комиссия) |
COMISSION_EARLY_ORDER |
Комиссия за раннее бронирование (%). |
14 (комиссия) |
COMISSION_BONUS |
Бонус к комиссии (%). |
14 (комиссия) |
COMISSION_SUM |
Сумма комиссии в оригинальной валюте тура (для туроператоров на основе СамоТур сумма комиссии появляется после пересчёта цены тура). |
16 (размещение) |
PEOPLE_COUNT |
Кол-во людей в выбранном размещении. |
16 (размещение) |
IS_IN_STOP |
Есть ли места, 2 – запрос, 1 – стоп, 0 – есть места. |
16 (размещение) |
PRICE |
Цена размещения. |
16 (размещение) |
CURRENCY_ID |
Системный идентификатор валюты (5 – рубли, 3 – евро, 2 – доллары). |
16 (размещение) |
CURRENCY_NAME |
Название валюты у туроператора. |
Таблица ResourceData заполняется данными, если они предоставляются туроператором.
Пример реализации на PHP:
$searchParam = array( "sourceId"=>"Зашифрованный идентификатор туроператора. Выдаётся каждому туру методом GetRequestResult.", "offerId"=>"Идентификатор ценового предложения. Выдаётся каждому туру методом GetRequestResult.", "requestId"=> 0, "login"=> "логин от ЛК ТО", "password"=>"пароль от ЛК ТО" ); $soapClient = new SoapClient('https://module.sletat.ru/XmlGate.svc?singlewsdl'); $soapClient->__setSoapHeaders( new SoapHeader("urn:SletatRu:DataTypes:AuthData:v1", "AuthInfo", array( "Login" => 'Логин в системе Слетать.ру', "Password"=> 'Пароль в системе Слетать.ру' ))); $result = $soapClient->ActualizePrice($searchParam);