Подключение туроператоров — различия между версиями

Материал из wiki.Sletat.ru
Перейти к: навигация, поиск
(Актуализация тура)
(SletatRu Provider API)
 
(не показано 12 промежуточных версий 1 участника)
Строка 1: Строка 1:
 
[[Category:Подключение_туроператоров]]
 
[[Category:Подключение_туроператоров]]
==  Описание сервиса  ==
+
==  SletatRu Provider API ==
 
+
Актуальная версия документации доступна по ссылке: https://static.sletat.ru/Files/api/SletatRu_Provider_API.pdf
Для интеграции со Слетать.ру нужно создать веб-сервис, который будет выполнять следующие задачи:
+
* Выгружать справочники: города вылета, страны, курорты, отели и т.д.
+
* Осуществлять параметризованный поиск цен
+
* Актуализировать выбранный тур по его идентификатору
+
 
+
'''Для упрощения, сервис можно представить веб-страничкой, которая принимает GET или POST параметры и выдаёт ответ в формате XML (не SOAP).'''
+
 
+
Для всех методов сервиса должен использоваться один адрес. Например, если вы реализуете сервис по адресу: http://mysite.com/services/sletatru.xml , то этот адрес должен быть общим для всех запросов.
+
 
+
Примеры:
+
* http://mysite.com/services/sletatru.xml?action=GetCountries – запрос списка стран
+
* http://mysite.com/services/sletatru.xml?action=GetDepartCities – запрос списка городов вылета
+
 
+
Выдача результатов должна быть в формате XML, для каждого метода описан формат.
+
 
+
Для корневого элемента в результате должен быть указан атрибут version с указанием версии протокола. Атрибут нужен для определения версии провайдера туров сервисом Слетать.ру.
+
 
+
Пример:
+
<getCountriesResult version="1.0">
+
...
+
</getCountriesResult>
+
Данный документ описывает версию прокола 1.0.
+
 
+
Все методы должны возвращать XML в кодировке UTF-8.
+
 
+
Все параметры запросов, не помеченные как обязательные, являются необязательными только для стороны, формирующей запрос. '''Для серверной стороны обработка всех полученных параметров запроса обязательна.'''
+
 
+
Результат выполнения запросов (поискового в частности) должен строго соответствовать указанным параметрам. Если параметр не обязателен и не указан, запрос его не учитывает и возвращает все варианты.
+
 
+
Пул IP адресов, с которых сервис Слетать.ру будет обращаться к реализуемому провайдеру туров уточняется отдельно. Для его уточнения необходимо написать на support@sletat.ru
+
 
+
== Дополнительные требования к сервису ==
+
 
+
Максимально допустимое время при работе с любым методом сервиса не должно превышать 30 секунд. Рекомендуемая скорость ответов (в том числе для метода выдачи туров) до 5 секунд. Если какой-либо метод вернёт результат за период более 30 секунд, то сервис Слетать.ру не обработает эти данные.
+
 
+
Любой метод реализуемого сервиса может быть вызван одновременно различными потоками. Поэтому в реализации методов не должно быть блокировок, синхронизирующих доступ к методам. Метод выдачи туров должен поддерживать параллельное выполнение нескольких поисковых запросов.
+
 
+
Количество запросов в сутки к реализуемому сервису уточняется отдельно и зависит от следующих параметров:
+
* количества и популярности направлений туроператора
+
* количества городов вылета
+
* количества поисковых запросов в сервисе Слетать.ру
+
 
+
== Реализуемые методы ==
+
 
+
Для каждого метода указано назначение, список входящих параметров, формат выдачи, а также описание и типы данных в выдаче методов.
+
 
+
'''В методах используются следующие типы данных:'''
+
 
+
* Int32 – целое число (32 бита со знаком) от 2, 147, 483, 648 до 2, 147, 483, 647
+
* Int64 – целое число (64 бита со знаком)
+
* UInt64 – целое число (64 бита без знака)
+
* String - строка
+
 
+
=== Выгрузка списка стран ===
+
 
+
Метод производит выгрузку всех направлений туроператора.
+
 
+
'''Формат запроса:''' ?action=GetCountries
+
 
+
'''Параметры:'''
+
 
+
* id – идентификатор страны (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getCountriesResult version="1.0">
+
  <country id="{Int32}" name="{String}" />
+
  ...
+
</getCountriesResult>
+
 
+
Корневой элемент '''getCountriesResult''' содержит произвольное количество элементов '''country''', каждый из которых описывает направление атрибутами '''id''' (идентификатор страны) и '''name''' (название страны, язык рус/анг).
+
 
+
=== Выгрузка списка городов вылета ===
+
 
+
Метод производит выгрузку всех доступных городов вылета, а также содержит данные о том, какие направления доступны из каждого города вылета. Сервис Слетать.ру периодически обращается к данному методу для обновления данных о доступных направлениях для каждого города вылета у туроператора.
+
 
+
'''Формат запроса:''' ?action=GetDepartCities
+
 
+
'''Параметры:'''
+
 
+
* id – идентификатор города вылета (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getDepartCitiesResult version="1.0">
+
  <city id="{Int32}" name="{String}">
+
  <countryTo id="{Int32}" />
+
  ...
+
  </city>...
+
</getDepartCitiesResult>
+
 
+
Корневой элемент '''getDepartCitiesResult''' содержит произвольное количество элементов '''city''', каждый из которых описывает город вылета атрибутами '''id''' (идентификатор города) и '''name''' (название города, язык рус/анг). Каждый элемент '''city''' также должен содержать набор элементов '''countryTo''', каждый из которых описывает доступное направление из города вылета. Для элемента '''countryTo''' указывается атрибут '''id''' с идентификатором страны.
+
 
+
=== Выгрузка списка курортов ===
+
 
+
Метод возвращает список всех доступных курортов.
+
 
+
'''Формат запроса:''' ?action=GetResorts
+
 
+
'''Параметры:'''
+
 
+
* id – идентификатор курорта (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getResortsResult version="1.0">
+
  <resort id="{Int32}" name="{String}" countryId="{Int32}" />
+
  ...
+
</getResortsResult>
+
 
+
Корневой элемент '''getResortsResult''' содержит произвольное количество элементов '''resort''', каждый из которых описывает курорт атрибутами '''id''' (идентификатор курорта), '''name''' (название курорта, язык рус/анг) и '''countryId''' (идентификатор страны в котором расположен курорт).
+
 
+
=== Выгрузка списка категорий отелей ===
+
 
+
Метод возвращает список категорий отелей (примеры: 3*, 4*, Apts и т.д.).
+
 
+
'''Формат запроса:''' ?action=GetHotelCategories
+
 
+
'''Параметры:'''
+
 
+
* id – идентификатор категории отеля (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getHotelCategoriesResult version="1.0">
+
  <hotelCategory id="{Int32}" name="{String}" />
+
  ...
+
</getHotelCategoriesResult>
+
 
+
Корневой элемент '''getHotelCategoriesResult''' содержит произвольное количество элементов '''hotelCategory''', каждый из которых описывает категорию отеля атрибутами '''id''' (идентификар) и '''name''' (название).
+
 
+
=== Выгрузка списка отелей ===
+
 
+
Метод возвращает список всех доступных отелей. В данном методе желательно возвращать только те отели, по которым в базе туроператора есть актуальные цены.
+
 
+
'''Формат запроса:''' ?action=GetHotels
+
 
+
'''Параметры:'''
+
 
+
* id – идентификатор отеля (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getHotelsResult version="1.0">
+
  <hotel id="{Int32}" name="{String}" hotelCategoryId="{Int32}" resortId="{Int32}" />
+
  ...
+
</getHotelsResult>
+
 
+
Корневой элемент '''getHotelsResult''' содержит произвольное количество элементов '''hotel''', каждый из которых описывает отель атрибутами '''id''' (идентификатор), '''name''' (название отеля), '''hotelCategoryId''' (идентификатор категории отеля) и '''resortId''' (идентификатор курорта в котором расположен отель).
+
 
+
=== Выгрузка видов питания ===
+
 
+
Метод возвращает список видов питания (примеры: HB, BB, без питания и т.д.).
+
 
+
'''Формат запроса:''' ?action=GetMeals
+
 
+
'''Параметры:'''
+
 
+
* id – идентификатор вида питания (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getMealsResult version="1.0">
+
  <meal id="{Int32}" name="{String}" />
+
  ...
+
</getMealsResult> 
+
 
+
Корневой элемент '''getMealsResult''' содержит произвольное количество элементов '''meal''', каждый из которых описывает вид питания атрибутами '''id''' (идентификатор) и '''name''' (название).
+
 
+
=== Выгрузка списка валют ===
+
 
+
Метод возвращает список используемых валют. Список обязательно должен содержать рубли, доллары и евро.
+
 
+
'''Формат запроса:''' ?action=GetCurrencies
+
 
+
'''Параметры:'''
+
+
* id – идентификатор валюты (опциональный; если указан, то запрашивается только одна запись)
+
 
+
'''Формат выдачи:'''
+
 
+
<getCurrenciesResult version="1.0">
+
  <currency id="{Int32}" name="{String}" />
+
  ...
+
</getCurrenciesResult>
+
 
+
Корневой элемент '''getCurrenciesResult''' содержит произвольное количество элементов '''currency''', каждый из которых описывает валюту атрибутами '''id''' (идентификатор) и '''name''' (название).
+
 
+
=== Поиск туров ===
+
 
+
Метод поиска туров использует множество параметров для поиска и фильтрации туров. Метод лишь должен возвращать наиболее дешевые предложения, найденные по предоставленным параметрам. Количество туров в выдаче регулируется параметром '''count'''.
+
 
+
'''Формат запроса:''' ?action=GetTours
+
 
+
'''Параметры:'''
+
 
+
{| class="wikitable"
+
|Параметр; '''обязательный'''
+
|Тип данных
+
|Описание
+
|-
+
|offerId
+
|Int64
+
|Уникальный идентификатор ранее найденного предложения. В случае, если данный параметр задан, все остальные параметры не обязательны и не должны приниматься в расчет. Метод должен возвращать одну запись.
+
|-
+
|'''count'''
+
|Int32
+
|Максимальное количество предложений в выдаче.
+
|-
+
|'''countryId'''
+
|Int32
+
|Идентификатор страны.
+
|-
+
|'''departCityId'''
+
|Int32
+
|Идентификатор города вылета.
+
|-
+
|'''dateFrom'''
+
|String
+
|Начальная дата в диапазоне дат вылета в формате dd.MM.yyyy (пример: 31.12.2015).
+
|-
+
|'''dateTo'''
+
|String
+
|Конечная дата в диапазоне дат вылета в формате dd.MM.yyyy (пример: 31.12.2015).
+
|-
+
|'''adults'''
+
|Int32
+
|Количество взрослых.
+
|-
+
|'''kids'''
+
|Int32
+
|Количество детей.
+
|-
+
|kidsAges
+
|String
+
|Количество полных лет каждому ребёнку. Передаётся в виде строки, перечисление через запятую (пример: 3,6). Значения 0 или 1 используются для обозначения инфантов.
+
|-
+
|'''nightsMin'''
+
|Int32
+
|Минимальное количество ночей в туре.
+
|-
+
|'''nightsMax'''
+
|Int32
+
|Максимальное количество ночей в туре.
+
|-
+
|resorts
+
|String
+
|Идентификаторы курортов, перечисление через запятую.
+
|-
+
|hotelCategories
+
|String
+
|Идентификаторы категорий отелей, перечисление через запятую.
+
|-
+
|hotels
+
|String
+
|Идентификаторы отелей,  перечисление через запятую.
+
|-
+
|meals
+
|String
+
|Идентификаторы видов питания, перечисление через запятую.
+
|-
+
|'''currencyId'''
+
|Int32
+
|Валюта, в которой должны быть выданы цены, а также валюта для входящих параметров priceMin и priceMax (если они есть).
+
|-
+
|priceMin
+
|Int32
+
|Цена тура от.
+
|-
+
|priceMax
+
|Int32
+
|Цена тура до.
+
|-
+
|hotelIsNotInStop
+
|Int32
+
|При значении "1" - в результатах не должно быть отелей в стопе (отели со статусом «под запрос» допустимы). При значении "0" в результат должны попадать как отели в стопе, так и отели с наличием мест и с местами по запросу.
+
|-
+
|ticketsIncluded
+
|Int32
+
|При значении "1" в результатах должны быть только туры с включенной стоимостью перелёта («только отель» - недопустимы). При значении "0" в результат должны попадать как туры без перелета, так и туры с перелетом.
+
|-
+
|hasTickets
+
|Int32
+
|При значении "1" в результатах должны быть туры только с реальным наличием билетов в перелёте. Не должно быть туров со стопом на перелёте, перелёты со статусом «под запрос» недопустимы. При значении "0" в результат должны попадать как туры без билетов на рейс, так и туры с наличием билетов и с билетами по запросу.
+
|-
+
|excludeUsualTours
+
|Int32
+
|При значении "1" из результатов должны быть исключены туры, являющиеся обычными турами (не являющиеся комбинированными, экскурсионными или шоп-турами). При значении "0" или отсутствии данного параметра, такие туры должны быть включены в результат.
+
|-
+
|excludeCombined
+
|Int32
+
|При значении "1" из результатов должны быть исключены туры, являющиеся комбинированными (в рамках которых турист посещает несколько курортов). При значении "0" или отсутствии данного параметра, такие туры должны быть включены в результат.
+
|-
+
|excludeShopTours
+
|Int32
+
|При значении "1" из результатов должны быть исключены шоп-туры и туры с обязательствами. При значении "0" или отсутствии данного параметра, такие туры должны быть включены в результат.
+
|-
+
|excludeExcursionTours
+
|Int32
+
|При значении "1" из результатов должны быть исключены экскурсионные туры. При значении "0" или отсутствии данного параметра, такие туры должны быть включены в результат.
+
|-
+
|}
+
 
+
'''Формат выдачи:'''
+
 
+
<getToursResult version="1.0">
+
  <tour
+
  offerId="{Int64}"
+
  tourName="{String}"
+
  hotelId="{Int32}"
+
  hotelUrl="{String}"
+
  resortId="{Int32}"
+
  hotelCategoryId="{Int32}"
+
  mealId="{Int32}"
+
  htPlaceName="{String}"
+
  roomTypeName="{String}"
+
  tourDate="{String}"
+
  nights="{Int32}"
+
  price="{Int32}"
+
  hotelIsInStop="{Int32}"
+
  ticketsIncluded="{Int32}"
+
  hasEconomTicketsDpt="{Int32}"
+
  hasEconomTicketsRtn="{Int32}"
+
  hasBusinessTicketsDpt="{Int32}"
+
  hasBusinessTicketsRtn="{Int32}"
+
  tourUrl="{String}"
+
  spoUrl="{String}"
+
  fewPlacesInHotel="{Int32}"
+
  fewTicketsDptY="{Int32}"
+
  fewTicketsRtnY="{Int32}"
+
  fewTicketsDptB="{Int32}"
+
  fewTicketsRtnB="{Int32}"
+
  flags="{UInt64}"
+
  description="{String}"
+
  receivingParty="{String}"
+
  earlyBookingValidTill="{String}"
+
  />
+
  ...
+
</getToursResult>
+
 
+
Корневой элемент '''getToursResult''' содержит произвольное количество элементов '''tour''' (от 0 элементов, но не более количества указанного в параметре '''count'''), каждый из которых описывает тур следующими атрибутами:
+
 
+
{| class="wikitable"
+
|Параметр; '''обязательный'''
+
|Описание
+
|-
+
|'''offerId'''
+
|Уникальный идентификатор предложения, по которому в дальнейшем можно провести актуализацию тура или бронирование.
+
|-
+
|'''tourName'''
+
|Произвольное название тура.
+
|-
+
|'''hotelId'''
+
|Идентификатор отеля.
+
|-
+
|hotelUrl
+
|Ссылка на страницу с описанием отеля.
+
|-
+
|'''resortId'''
+
|Идентификатор курорта, в котором расположен отель.
+
|-
+
|'''hotelCategoryId'''
+
|Идентификатор категории отеля.
+
|-
+
|'''mealId'''
+
|Идентификатор вида питания.
+
|-
+
|'''htPlaceName'''
+
|Произвольное название размещения в номере (примеры: DBL, TRP, 2 ADL + 1 CH (212), 2 ADL + INF). Название должно отображать допустимые возрасты детей (если поиск был с указанием количества детей более 0) или то, что размещение с учетом инфанта (+ INF), в соответствующем случае.
+
|-
+
|roomTypeName
+
|Название типа номера (примеры: standard, deluxe, family, deluxe super ocean view).
+
|-
+
|'''tourDate'''
+
|Дата начала тура в формате dd.MM.yyyy (пример: 31.12.2015).
+
|-
+
|tourEndDate
+
|Дата окончания тура (дата прилета) в формате dd.MM.yyyy (пример: 31.12.2015).
+
|-
+
|'''nights'''
+
|Количество ночей в туре.
+
|-
+
|'''price'''
+
|Цена тура в валюте, которая была указана во входном параметре '''currencyId'''.
+
|-
+
|'''hotelIsInStop'''
+
|Наличие мест в отеле, допустимы значения: 0 – есть места, 1 – нет мест, 2 – запрос.
+
|-
+
|'''ticketsIncluded'''
+
|Включена ли стоимость билетов в стоимость тура, допустимы значения: 0 – не включена (тур только отель), 1 – включена (пакетный тур).
+
|-
+
|'''hasEconomTicketsDpt'''
+
|Наличие билетов эконом класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
+
|-
+
|'''hasEconomTicketsRtn'''
+
|Наличие обратных билетов эконом класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
+
|-
+
|'''hasBusinessTicketsDpt'''
+
|Наличие билетов бизнес класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
+
|-
+
|'''hasBusinessTicketsRtn'''
+
|Наличие обратных билетов бизнес класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
+
|-
+
|'''tourUrl'''
+
|Ссылка, при переходе по которой можно забронировать тур (ссылка может вести на страницу авторизации, но после авторизации должны автоматически попасть на страницу бронирования тура).
+
|-
+
|spoUrl
+
|Ссылка на описание тура, его программы (если есть).
+
|-
+
|fewPlacesInHotel
+
|Поле заполняется, если есть указание на то, что мест в отеле мало. Если нельзя указать точное количество оставшихся мест, то заполняется значением -1, иначе указывается точное количество оставшихся мест.
+
|-
+
|fewTicketsDptY
+
|Поле заполняется, если есть указание на то, что мест эконом класса туда мало. Если нельзя указать точное количество оставшихся мест, то заполняется значением -1, иначе указывается точное количество оставшихся мест.
+
|-
+
|fewTicketsRtnY
+
|Поле заполняется, если есть указание на то, что мест эконом класса обратно мало. Если нельзя указать точное количество оставшихся мест, то заполняется значением -1, иначе указывается точное количество оставшихся мест.
+
|-
+
|fewTicketsDptB
+
|Поле заполняется, если есть указание на то, что мест бизнес класса туда мало. Если нельзя указать точное количество оставшихся мест, то заполняется значением -1, иначе указывается точное количество оставшихся мест.
+
|-
+
|fewTicketsRtnB
+
|Поле заполняется, если есть указание на то, что мест бизнес класса обратно мало. Если нельзя указать точное количество оставшихся мест, то заполняется значением -1, иначе указывается точное количество оставшихся мест.
+
|-
+
|flags
+
|Набор битовых флагов тура. Тур может иметь несколько установленных флагов одновременно, данное значение является их суммой. Возможные флаги тура:
+
* 1 – туроператор рекомендует данный тур;
+
* 2 – доступно мгновенное подтверждение;
+
* 4 – туроператор считает данный тур лучшим предложением;
+
* 8 – тур раннего бронирования;
+
* 16 – тур позднего бронирования;
+
* 32 – туроператор предоставляет скидку на данный тур;
+
* 64 – VIP предложение;
+
* 128 – тур доступен в кредит;
+
* 256 – тур является эксклюзивным предложением туроператора;
+
* 512 – при покупке тура туристу подарок;
+
* 1024 – тур является комбинированным (турист посещает несколько курортов);
+
* 2048 – тур с обязательством (шоп - тур);
+
* 4096 – зарезервировано для использования системой;
+
* 8192 – экскурсионный тур;
+
|-
+
|description
+
|Дополнительная информация по туру, например, для комбинированных туров может содержать информацию о проживании в отелях.
+
|-
+
|receivingParty
+
|Принимающая сторона.
+
|-
+
|earlyBookingValidTill
+
|Если тур является туром раннего бронирования и известна последняя дата ранней брони, то в данном поле должна быть указана эта дата.
+
|-
+
|}
+
 
+
=== Актуализация тура ===
+
 
+
Метод служит для получения окончательной цены тура (со всеми обязательными доплатами и сборами), списка включенных в стоимость тура услуг, а также вариантов перелета, возможных дополнительных услуг и доплат по ним. Метод должен возвращать цену самой дешевой конфигурации запрашиваемого предложения. Для корректной работы метода необходимо, чтобы '''offerId''' был уникален для предложений с разным составом группы туристов, даже в случае если все прочие параметры предложений совпадают.
+
 
+
'''Формат запроса:''' ?action=ActualizeTour
+
+
'''Параметры:'''
+
 
+
{| class="wikitable"
+
|Параметр; '''обязательный'''
+
|Тип данных
+
|Описание
+
|-
+
|'''offerId'''
+
|Int64
+
|Уникальный идентификатор ранее найденного предложения.
+
|-
+
|'''currencyId'''
+
|Int32
+
|Валюта, в которой должна быть рассчитана цена и доплаты.
+
|-
+
|}
+
 
+
'''Формат выдачи:'''
+
 
+
<actualizeTourResult version="1.0">
+
  <actualizedTour
+
  price="{Int32}"
+
  ticketsIsIncluded="{Int32}"
+
  hotelIsInStop="{Int32}"
+
  hasEconomTicketsDpt="{Int32}"
+
  hasEconomTicketsRtn="{Int32}"
+
  hasBusinessTicketsDpt="{Int32}"
+
  hasBusinessTicketsRtn="{Int32}"
+
  fewPlacesInHotel="{Int32}"
+
  fewEconomTicketsDpt="{Int32}"
+
  fewEconomTicketsRtn="{Int32}"
+
  fewBusinessTicketsDpt="{Int32}"
+
  fewBusinessTicketsRtn="{Int32}"
+
  tourUrl="{String}"
+
  >
+
  <services>
+
    <service
+
    id="{Int32}"
+
    type="{String}"
+
    name="{String}"
+
    isIncluded="{Int32}"
+
    description="{String}"
+
    surcharge="{Int32}"
+
    flightCompatibleIds="{String}"
+
    flightClass="{String}"
+
    flightAvailability="{Int32}"
+
    flightPlacesCount="{Int32}"
+
    flightAirportFrom="{String}"
+
    flightAirportTo="{String}"
+
    flightNum="{String}"
+
    flightAirline="{String}"
+
    flightStartDateTime="{String}"
+
    flightEndDateTime="{String}"
+
    flightAircraft="{String}"
+
    />
+
    ...
+
  </services>
+
  </actualizedTour>
+
</actualizeTourResult>
+
 
+
Корневой элемент '''actualizeTourResult''' должен содержать единственный элемент '''actualizedTour''', который описывается следующими атрибутами:
+
 
+
{| class="wikitable"
+
|Параметр; '''обязательный'''
+
|Описание
+
|-
+
|'''price'''
+
|Актуализированная цена тура в валюте, которая была указана во входном параметре '''currencyId'''
+
|-
+
|'''ticketsIsIncluded'''
+
|Включена ли стоимость билетов в стоимость тура, допустимы значения: 0 – не включена (тур только отель), 1 – включена (пакетный тур)
+
|-
+
|'''hasEconomTicketsDpt'''
+
|Наличие билетов эконом класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
+
|-
+
|'''hasEconomTicketsRtn'''
+
|Наличие обратных билетов эконом класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
+
|-
+
|'''hasBusinessTicketsDpt'''
+
|Наличие билетов бизнес класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
+
|-
+
|'''hasBusinessTicketsRtn'''
+
|Наличие обратных билетов бизнес класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
+
|-
+
|fewPlacesInHotel
+
|Поле заполняется, если есть указание на то, что мест в отеле мало. Если нельзя указать точное кол-во оставшихся мест, то заполняется значением -1, иначе указывается точное кол-во оставшихся мест.
+
|-
+
|fewEconomTicketsDpt
+
|Поле заполняется, если есть указание на то, что мест эконом класса туда мало. Если нельзя указать точное кол-во оставшихся мест, то заполняется значением -1, иначе указывается точное кол-во оставшихся мест.
+
|-
+
|fewEconomTicketsRtn
+
|Поле заполняется, если есть указание на то, что мест эконом класса обратно мало. Если нельзя указать точное кол-во оставшихся мест, то заполняется значением -1, иначе указывается точное кол-во оставшихся мест.
+
|-
+
|fewBusinessTicketsDpt
+
|Поле заполняется, если есть указание на то, что мест бизнес класса туда мало. Если нельзя указать точное кол-во оставшихся мест, то заполняется значением -1, иначе указывается точное кол-во оставшихся мест.
+
|-
+
|fewBusinessTicketsRtn
+
|Поле заполняется, если есть указание на то, что мест бизнес класса обратно мало. Если нельзя указать точное кол-во оставшихся мест, то заполняется значением -1, иначе указывается точное кол-во оставшихся мест.
+
|-
+
|tourUrl
+
|Ссылка, при переходе по которой можно забронировать тур (ссылка может вести на страницу авторизации, но после авторизации должны автоматически попасть на страницу бронирования тура).
+
|-
+
|}
+
 
+
Элемент '''actualizedTour''' может содержать секцию '''services''', которая в свою очередь содержит произвольное число элементов '''service'''. Каждый элемент '''service''' описывает услугу включенную в стоимость тура, либо услугу, добавление которой возможно в текущей конфигурации тура. Атрибуты элемента '''service''':
+
 
+
{| class="wikitable"
+
|Параметр; '''обязательный'''
+
|Описание
+
|-
+
|'''id'''
+
|Идентификатор услуги, уникальный в рамках данного предложения.
+
|-
+
|'''type'''
+
|Тип услуги. Может принимать одно из следующих значений:
+
* “Insurance” – страховка;
+
* “DptTransport” – перелет туда;
+
* “RtnTransport” – перелет обратно;
+
* “AdditionalService ” – дополнительная услуга;
+
* “AdditionalMeal” – дополнительное питание;
+
* “Transfer” – трансфер;
+
* “Excursion” – экскурсия;
+
* “Charge” – доплата;
+
* “Visa” – виза;
+
* “NoGoGuarantee” – страховка от невыезда;
+
|-
+
|'''name'''
+
|Наименование услуги.
+
|-
+
|'''isIncluded'''
+
|Включена ли данная услуга в стоимость текущей конфигурации тура, допустимы значения: 0 – не включена, 1 – включена.
+
|-
+
|description
+
|Описание услуги в произвольной форме.
+
|-
+
|surcharge
+
|Доплата за включение услуги в стоимость тура. Применяется только для услуг, не включенных в стоимость текущей конфигурации тура.
+
|-
+
|flightCompatibleIds
+
|Совместимые перелеты. Идентификаторы услуг перелетов, представленных в секции services, которые могут применяться совместно с текущей услугой перелета. Для перелета туда заполняется id перелетов обратно и наоборот. Применяется и является обязательным только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightClass
+
|Класс перелета. Может принимать одно из следующих значений:
+
* “ECONOM” – эконом;
+
* “BUSINESS” – бизнес;
+
Применяется и является обязательным только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightAvailability
+
|Наличие билетов, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. Применяется и является обязательным только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightPlacesCount
+
|Количество оставшихся билетов. Заполняется, если количество билетов мало. Если кол-во билетов известно – заполняется этим числом, иначе значением -1. Применяется только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightAirportFrom
+
|Аэропорт отправления. Значение должно начинаться с кода IATA, за которым может следовать дополнительная информация, например о терминале (пример: SVO C). Применяется и является обязательным только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightAirportTo
+
|Аэропорт прибытия. Значение должно начинаться с кода IATA, за которым может следовать дополнительная информация, например о терминале (пример: AYT 1). Применяется и является обязательным только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightNum
+
|Рейс (например UN 7422). Применяется и является обязательным только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightAirline
+
|Авиакомпания. Применяется только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightStartDateTime
+
|Дата и время вылета в формате dd.MM.yyyy HH:mm (пример: 31.12.2012 14:30). Применяется только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightEndDateTime
+
|Дата и время прибытия в формате dd.MM.yyyy HH:mm (пример: 31.12.2012 14:30). Применяется только для услуг типа DptTransport и RtnTransport.
+
|-
+
|flightAircraft
+
|Информация о воздушном судне. Применяется только для услуг типа DptTransport и RtnTransport.
+
|-
+
|}
+

Текущая версия на 11:08, 4 октября 2018

SletatRu Provider API

Актуальная версия документации доступна по ссылке: https://static.sletat.ru/Files/api/SletatRu_Provider_API.pdf