Детальная актуализация (xml) — различия между версиями
Kdadmin (обсуждение | вклад) (→Актуализация и загрузка информации о туре) |
Kdadmin (обсуждение | вклад) (Добавление валюты UZS) |
||
| (не показано 17 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
| + | [[Category:Расширения и дополнения]] | ||
== Актуализация и загрузка информации о туре == | == Актуализация и загрузка информации о туре == | ||
| Строка 11: | Строка 12: | ||
* offerId – идентификатор тура, выдаётся в методе GetTours для каждого тура; | * offerId – идентификатор тура, выдаётся в методе GetTours для каждого тура; | ||
* sourceId – идентификатор туроператора, выдаётся в методе GetTours для каждого тура; | * sourceId – идентификатор туроператора, выдаётся в методе GetTours для каждого тура; | ||
| − | * selectedResources – | + | * selectedResources – устарел. |
* login – логин для авторизации в личном кабинете туроператора; | * login – логин для авторизации в личном кабинете туроператора; | ||
| Строка 18: | Строка 19: | ||
В ответ возвращается структура '''ActualizePriceResult''', которая состоит из следующих полей: | В ответ возвращается структура '''ActualizePriceResult''', которая состоит из следующих полей: | ||
* TourInfo – структура описывает основную информацию о туре, формат описан ниже; | * TourInfo – структура описывает основную информацию о туре, формат описан ниже; | ||
| − | * RandomNumber – случайное | + | * RandomNumber – случайное четырехзначное число, по которому можно просмотреть информацию о туре в личном кабинете на сайте sletat.ru или в SletatRu Agent, используется для того, чтобы клиент мог точно сообщить менеджеру вашей компании о туре, который он нашёл; |
| − | нашёл; | + | |
* IsFound – поле принимает значение false, если тур не был найден в базе туроператора; | * IsFound – поле принимает значение false, если тур не был найден в базе туроператора; | ||
* IsError – принимает значение true, если при актуализации тура возникла ошибка; | * IsError – принимает значение true, если при актуализации тура возникла ошибка; | ||
| Строка 72: | Строка 73: | ||
|- | |- | ||
| | | | ||
| − | + | CheckIn | |
| | | | ||
String | String | ||
| | | | ||
Дата вылета в формате | Дата вылета в формате | ||
| + | dd.MM.yyyy. | ||
| + | |- | ||
| + | |CheckOut | ||
| + | |String | ||
| + | |Дата прилёта в формате | ||
dd.MM.yyyy. | dd.MM.yyyy. | ||
|- | |- | ||
| Строка 185: | Строка 191: | ||
Int32 | Int32 | ||
| | | | ||
| − | Цена тура в запрошенной | + | Цена тура в запрошенной валюте (со скидкой и наценкой). |
| − | валюте. | + | |
|- | |- | ||
| | | | ||
| Строка 193: | Строка 198: | ||
String | String | ||
| | | | ||
| − | Обозначение валюты (RUB, EUR, USD | + | Обозначение валюты (RUB, EUR, USD, BYR и UZS). |
|- | |- | ||
| | | | ||
| Строка 200: | Строка 205: | ||
Int32 | Int32 | ||
| | | | ||
| − | Оригинальная цена тура в исходной валюте ( | + | Оригинальная цена тура в исходной валюте (со скидкой и наценкой). |
| − | + | ||
|- | |- | ||
| | | | ||
| Строка 381: | Строка 385: | ||
Ссылка на титульное изображение отеля в уменьшенном виде (115x80). Вы можете изменить размеры изображения, используя шаблон ссылки: | Ссылка на титульное изображение отеля в уменьшенном виде (115x80). Вы можете изменить размеры изображения, используя шаблон ссылки: | ||
| − | + | https://hotels.sletat.ru/i/p/{hotel_id}_{image_index}_{h}_{w}.jpg – где: | |
* {hotel_id} – идентификатор отеля; | * {hotel_id} – идентификатор отеля; | ||
| − | * {image_index} – | + | * {image_index} – индекс изображения отеля, начинается с 0; |
* {h} – высота изображения (максимальное значение 300); | * {h} – высота изображения (максимальное значение 300); | ||
* {w} – требуемая ширина изображения (максимальное значение 300); | * {w} – требуемая ширина изображения (максимальное значение 300); | ||
| Строка 444: | Строка 448: | ||
| Int32 | | Int32 | ||
| Тип услуги, список возможных типов: | | Тип услуги, список возможных типов: | ||
| − | * тур; | + | * 1 - тур; |
| − | * проживание; | + | * 2 - проживание; |
| − | * страховка; | + | * 3 - страховка; |
| − | * транспорт (туда); | + | * 4 - транспорт (туда); |
| − | * дополнительные сервисы; | + | * 5 - дополнительные сервисы; |
| − | * дополнительное питание; | + | * 6 - дополнительное питание; |
| − | * трансфер; | + | * 7 - трансфер; |
| − | * экскурсии; | + | * 8 - экскурсии; |
| − | * различные сборы; | + | * 9 - различные сборы; |
| − | * транспорт (обратно); | + | * 10 - транспорт (обратно); |
| − | * информация о визах; | + | * 11 - информация о визах; |
| − | * возможность добавления младенца; | + | * 12 - страховка от невыезда; |
| − | * информация о комиссии; | + | * 13 - возможность добавления младенца; |
| − | * доп. перелёт в комбинированном туре; | + | * 14 - информация о комиссии; |
| − | * выбор размещения в основном отеле. | + | * 15 - доп. перелёт в комбинированном туре; |
| + | * 16 - выбор размещения в основном отеле; | ||
| + | * 18 - Услуги гида; | ||
| + | * 19 - Питание; | ||
| + | * 20 - Топливный сбор; | ||
| + | * 21 - Авиаперелёт; | ||
| + | * 22 - Ж/Д билеты; | ||
| + | * 23 - Автобусный переезд; | ||
| + | * 24 - Морское путешествие; | ||
| + | * 25 - Other; | ||
| + | * 26 - Экологический сбор или GreenTax. | ||
|- | |- | ||
| | | | ||
| Строка 513: | Строка 527: | ||
|- | |- | ||
| | | | ||
| − | + | Name | |
| | | | ||
| − | + | String | |
| | | | ||
| − | + | Название дополнительного поля с описанием. | |
|- | |- | ||
| | | | ||
| − | + | ResourceId | |
| | | | ||
| − | + | Int32 | |
| | | | ||
| − | + | Идентификатор услуги из структуры '''Resources'''. | |
|- | |- | ||
| | | | ||
| Строка 573: | Строка 587: | ||
Кол-во людей для заселения | Кол-во людей для заселения | ||
(без учёта младенца, если есть) | (без учёта младенца, если есть) | ||
| + | |- | ||
| + | | | ||
| + | 1 (тур) | ||
| + | | | ||
| + | BAGGAGE_INCLUDED | ||
| + | | | ||
| + | Указывает удалось ли получить <br>информацию о багаже от туроператора | ||
| + | |- | ||
| + | | | ||
| + | 1 (тур) | ||
| + | | | ||
| + | BAGGAGE_PLACES | ||
| + | | | ||
| + | Кол-во багажных мест | ||
| + | |- | ||
| + | | | ||
| + | 1 (тур) | ||
| + | | | ||
| + | BAGGAGE_WEIGHT | ||
| + | | | ||
| + | Указывает допустимый вес багажа (кг) | ||
| + | |- | ||
| + | | | ||
| + | 1 (тур) | ||
| + | | | ||
| + | BAGGAGE_SIZE | ||
| + | | | ||
| + | Допустимый размер багажа | ||
| + | |- | ||
| + | | | ||
| + | 1 (тур) | ||
| + | | | ||
| + | LUGGAGE_INCLUDED | ||
| + | | | ||
| + | Указывает удалось ли получить <br>информацию о ручной клади от туроператора | ||
| + | |- | ||
| + | | | ||
| + | 1 (тур) | ||
| + | | | ||
| + | LUGGAGE_PLACES | ||
| + | | | ||
| + | Кол-во мест ручной клади | ||
| + | |- | ||
| + | | | ||
| + | 1 (тур) | ||
| + | | | ||
| + | LUGGAGE_WEIGHT | ||
| + | | | ||
| + | Указывает допустимый вес ручной клади (кг) | ||
| + | |- | ||
| + | | | ||
| + | 1 (тур) | ||
| + | | | ||
| + | LUGGAGE_SIZE | ||
| + | | | ||
| + | Допустимый размер ручной клади | ||
|- | |- | ||
| | | | ||
| Строка 638: | Строка 708: | ||
| | | | ||
Номер рейса. | Номер рейса. | ||
| + | |- | ||
| + | | | ||
| + | 4, 10, | ||
| + | 15 (перелёт) | ||
| + | | | ||
| + | FLIGHT_IS_CONCRETE | ||
| + | | | ||
| + | Конкретизация авиаперелета (true - конкретизирован, false - не конкретизирован) | ||
|- | |- | ||
| | | | ||
| Строка 771: | Строка 849: | ||
Таблица '''ResourceData''' заполняется данными, если они предоставляются туроператором. | Таблица '''ResourceData''' заполняется данными, если они предоставляются туроператором. | ||
| − | + | Пример реализации на PHP: | |
| + | |||
| + | <source lang="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); | ||
| + | </source> | ||
Текущая версия на 17:25, 30 марта 2026
Актуализация и загрузка информации о туре
Метод 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 и UZS). |
|
OriginalPrice |
Int32 |
Оригинальная цена тура в исходной валюте (со скидкой и наценкой). |
|
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. Каждый элемент состоит из полей:
|
Название поля |
Тип |
Описание |
|
Name |
String |
Название дополнительного поля с описанием. |
|
ResourceId |
Int32 |
Идентификатор услуги из структуры Resources. |
|
Value |
String |
Содержание дополнительного поля с описанием. |
Ниже представлена таблица возможных значений поля Name для каждого типа услуг:
|
Тип ресурса |
Значение Name |
Описание |
|
1 (тур) |
COMMENT |
Комментарий к туру. |
|
1 (тур) |
DATEBEG |
Дата начала тура. |
|
1 (тур) |
DATEEND |
Дата окончания тура. |
|
1 (тур) |
PEOPLE_COUNT |
Кол-во людей для заселения (без учёта младенца, если есть) |
|
1 (тур) |
BAGGAGE_INCLUDED |
Указывает удалось ли получить |
|
1 (тур) |
BAGGAGE_PLACES |
Кол-во багажных мест |
|
1 (тур) |
BAGGAGE_WEIGHT |
Указывает допустимый вес багажа (кг) |
|
1 (тур) |
BAGGAGE_SIZE |
Допустимый размер багажа |
|
1 (тур) |
LUGGAGE_INCLUDED |
Указывает удалось ли получить |
|
1 (тур) |
LUGGAGE_PLACES |
Кол-во мест ручной клади |
|
1 (тур) |
LUGGAGE_WEIGHT |
Указывает допустимый вес ручной клади (кг) |
|
1 (тур) |
LUGGAGE_SIZE |
Допустимый размер ручной клади |
|
2 (проживание) |
URL |
Ссылка на описание отеля. |
|
2 (проживание) |
RESORT |
Курорт, в котором расположен отель. |
|
2 (проживание) |
HTPLACE |
Размещение в отеле. |
|
2 (проживание) |
ROOM |
Тип номера. |
|
2 (проживание) |
MEAL |
Питание в отеле. |
|
2 (проживание) |
CHECKIN |
Дата заезда. |
|
2 (проживание) |
CHECKOUT |
Дата выезда. |
|
4, 10, 15 (перелёт) |
FLIGHT |
Номер рейса. |
|
4, 10, 15 (перелёт) |
FLIGHT_IS_CONCRETE |
Конкретизация авиаперелета (true - конкретизирован, false - не конкретизирован) |
|
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);