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>

Внимание! Атрибут с кодом ошибки может отсутствовать!