Детальная актуализация (xml)

Материал из wiki.Sletat.ru
Перейти к: навигация, поиск

Актуализация и загрузка информации о туре

Метод 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 – где:

  • {hotel_id} – идентификатор отеля;
  • {image_index} – индекс изображения отеля, начинается с 0;
  • {h} – высота изображения (максимальное значение 300);
  • {w} – требуемая ширина изображения (максимальное значение 300);

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

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 Тип услуги, список возможных типов:
  • 1 - тур;
  • 2 - проживание;
  • 3 - страховка;
  • 4 - транспорт (туда);
  • 5 - дополнительные сервисы;
  • 6 - дополнительное питание;
  • 7 - трансфер;
  • 8 - экскурсии;
  • 9 - различные сборы;
  • 10 - транспорт (обратно);
  • 11 - информация о визах;
  • 12 - страховка от невыезда;
  • 13 - возможность добавления младенца;
  • 14 - информация о комиссии;
  • 15 - доп. перелёт в комбинированном туре;
  • 16 - выбор размещения в основном отеле;
  • 18 - Услуги гида;
  • 19 - Питание;
  • 20 - Топливный сбор;
  • 21 - Авиаперелёт.

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);