XML - результаты поиска/Поиск туров/Интерфейс - Результаты поиска
Материал из TourClient - Руководство пользователя
Работа с сервисом осуществляется путем отправки POST запросов на адрес http://tourclient.ru/f/exml/user_id/tours_export .
Где user_id - ID пользователя AgentPassport.
POST-параметр request должен содержать xml запроса.
В результате сервис вернет ответ в формате xml.
Запрос к сервису
- Все параметры TourSearchRequest или TourSearchGroupByAllocationRequest задают ограничения на найденные в результате запроса туры
- Если параметр не задан, это означает что такого ограничения нет и поиск от данного параметра не зависит
- Опциональные входные параметры могут не присутствовать вообще, либо может быть задано пустое значение: <allocCatId></allocCatId>.
- Работа параметра SeatStatus подробнее описана в Ограничение результатов запроса по наличию мест.
- Работа параметра currency подробнее описана в Пересчет цен в запрошенную валюту.
- Должен быть задан либо roomSizeId либо adults и children. В первом случае поиск будет ограничен конкретным размещением, во втором случае в результат могут попасть разные размещения с подходящими параметрами.
<?xml version="1.0" encoding="UTF-8"?> <Request> <TourSearchRequest> <!-- либо <TourSearchGroupByAllocationRequest> для поиска с группировкой по отелям --> <dataOffset>0</dataOffset> <!-- [Обязательно] Смещение блока запрашиваемого данных, относительно всех найденных результатов. --> <dataLimit>50</dataLimit> <!-- [Обязательно] Размер блока данных. --> <searchMethod>DB</searchMethod> <!-- [Опционально] Тип поиска. DB - поиск по базе данных, Online - комбинированный поиск --> <!-- Суммарно эти параметры определяют запрошенную страницу --> <seatStatus>3</seatStatus> <!-- [Опционально] Наличие мест. 1 - есть места, 2 - по запросу, 3 - все туры, 5 - есть билет, отель под запрос --> <cityId>1000</cityId> <!-- [Обязательно] Идентификатор города вылета. --> <countryId>12</countryId> <!-- [Обязательно] Идентификатор страны прилета. --> <roomSizeId>14</roomSizeId> <!-- [Опционально] Идентификатор размещения (DBL,SNGL,TRL...). --> <adults>2</adults> <!-- [Опционально]Количество взрослых. --> <children>0</children> <!-- [Опционально]Количество детей. --> <childAge1>0</childAge1> <!-- Возраст первого ребенка. --> <childAge2>0</childAge2> <!-- Возраст второго ребенка. --> <durationFrom>7</durationFrom> <!-- Продолжительность (количество ночей в отеле). ОТ. --> <durationTill>14</durationTill> <!-- Продолжительность (количество ночей в отеле). ДО. --> <departureFrom>2014-07-25</departureFrom> <!-- [Обязательно] Дата вылета ОТ. --> <departureTill>2014-08-10</departureTill> <!-- [Обязательно] Дата вылета ДО. --> <ticket>1</ticket> <!-- [Опционально] Наличие билета. true - только с билетом включенным в стоимость, false - только без билета, 1 - только с авиабилетом, 2 - только с ж/д билетом, 3 - только с билетом на автобус, 4 - только с билетом на паром 5 - только с билетом на автомобиль --> <currency>3</currency> <!-- [Обязательно] Валюта, в которой необходимо вернуть цены (валюта запроса). --> <!-- 1 - USD, 2 - EUR, 3 - RUB, 4 - UAH --> <priceFrom>500</priceFrom> <!-- [Опционально] Цена ОТ (в валюте запроса). --> <priceTill>50000</priceTill> <!-- [Опционально] Цена ДО (в валюте запроса). --> <operatorIds> <!-- [Опционально] Массив идентификаторов туроператоров. --> <id>111</id> <id>222</id> <id>333</id> </operatorIds> <resortIds> <!-- [Опционально] Массив идентификаторов курортов. --> <id>111</id> <id>222</id> <id>333</id> </resortIds> <resortPlaceIds> <!-- [Опционально] Массив идентификаторов районов. --> <id>111</id> <id>222</id> <id>333</id> </resortPlaceIds> <allocCatIds> <!-- [Опционально] Идентификатор категории отеля. --> <id>7</id> <id>8</id> <id>9</id> </allocCatIds> <allocRate>3.56</allocRate> <!-- [Опционально] Рейтинг отеля (не менее заданного) --> <allocationIds> <!-- [Опционально] Массив идентификаторов отелей. --> <id>111</id> <id>222</id> <id>333</id> </allocationIds> <mealIds> <!-- [Опционально] Массив идентификаторов питаний. --> <id>111</id> <id>222</id> <id>333</id> </mealIds> <roomViewIds> <!-- [Опционально] Массив идентификаторов видов из номера. --> <id>111</id> <id>222</id> <id>333</id> </roomViewIds> <roomTypeIds> <!-- [Опционально] Массив идентификаторов типов номеров. --> <id>111</id> <id>222</id> <id>333</id> </roomTypeIds> <allocPlaceTypeId>1</allocPlaceTypeId> <!-- [Опционально] Тип расположения отеля (городской - 2, загородный - 4, пляжный - 1 ). --> <allocationTypeId>2</allocationTypeId> <!-- [Опционально] Тип отеля(хостел - 41,мотель - 161, гостиница - 2 и пр...). --> <allocPlaceValueIds> <id>1</id> <id>3</id> <!-- [Опционально] Значение расположения отеля(1-я линия - 1, 2-я линия - 3, 3-я линия - 4 и пр..). --> <id>4</id> </allocPlaceValueIds> <offerFlags> <!-- [Опционально] Фильтр по флагам туров. Принимают значения true/false --> <promoPrice>true</promoPrice> <!-- Цена тура отмечена как ПРОМО --> <comboTour>true</comboTour> <!-- Тур комбинированный --> <hasProgram>true</hasProgram> <!-- У тура есть программа --> <regularFlight>true</regularFlight> <!-- Тур с регулярными перелетами --> <directFlight>true</directFlight> <!-- Тур с прямым перелетом --> <connectionFlight>true</connectionFlight> <!-- Тур с пересадкой на перелете --> </offerFlags> </TourSearchRequest> <!-- либо </TourSearchGroupByAllocationRequest> для поиска с группировкой по отелям --> <TourExtraEntities> <!-- [Опционально] Дополнительные объекты которые нужно добавить к объекту тур. Возможные значения перечислены в ниже. --> <entity>OnlineSeatsState</entity> <entity>ExtraCharges</entity> <entity>City</entity> <entity>Country</entity> <entity>RoomSize</entity> <entity>Resort</entity> <entity>ResortPlace</entity> <entity>Allocation</entity> <entity>AllocCat</entity> <entity>Meal</entity> <entity>RoomType</entity> <entity>RoomView</entity> <entity>Operator</entity> <entity>ComboTour</entity> <!-- Признак комбинированного тура --> <entity>OfferFlags</entity> <!-- Флаги тура (promoPrice, ComboTour, hasProgram) --> </TourExtraEntities> </Request>
Ответ сервиса
Сервис возвращает ответ, содержащий массив объектов Тур (Tours) и объект Статус поиска (SearchStatus)
<?xml version="1.0" encoding="UTF-8"?> <Result> <Tours> <!-- Массив объектов Тур. --> <Tour>...</Tour> <Tour>...</Tour> <Tour>...</Tour> ... </Tours> <SearchStatus> <!-- Статус поиска. --> ... </SearchStatus> </Result>
Подробное описание возвращаемых данных можно посмотреть в Описании объектов.
В случае ошибки сервис вернет:
<?xml version="1.0" encoding="UTF-8"?> <Result> <Error code="код ошибки">Текст ошибки</Error> </Result>
Внимание! Атрибут с кодом ошибки может отсутствовать!