XML - результаты поиска/Поиск туров/Интерфейс - Результаты поиска — различия между версиями
Материал из TourClient - Руководство пользователя
Jeka (обсуждение | вклад) (→Параметр запроса - Наличие мест) |
Levenets (обсуждение | вклад) (→Запрос к сервису) |
||
(не показаны 22 промежуточных версий 4 участников) | |||
Строка 9: | Строка 9: | ||
=== Запрос к сервису === | === Запрос к сервису === | ||
− | * Все параметры TourSearchRequest задают ограничения на найденные в результате запроса туры | + | * Все параметры TourSearchRequest или TourSearchGroupByAllocationRequest задают ограничения на найденные в результате запроса туры |
* Если параметр не задан, это означает что такого ограничения нет и поиск от данного параметра не зависит | * Если параметр не задан, это означает что такого ограничения нет и поиск от данного параметра не зависит | ||
* Опциональные входные параметры могут не присутствовать вообще, либо может быть задано пустое значение: <allocCatId></allocCatId>. | * Опциональные входные параметры могут не присутствовать вообще, либо может быть задано пустое значение: <allocCatId></allocCatId>. | ||
− | + | * Работа параметра SeatStatus подробнее описана в [[Ограничение результатов запроса по наличию мест]]. | |
+ | * Работа параметра currency подробнее описана в [[Пересчет цен в запрошенную валюту]]. | ||
+ | * Должен быть задан либо roomSizeId либо adults и children. В первом случае поиск будет ограничен конкретным размещением, во втором случае в результат могут попасть разные размещения с подходящими параметрами. | ||
Строка 19: | Строка 21: | ||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<Request> | <Request> | ||
− | <TourSearchRequest> | + | <TourSearchRequest> <!-- либо <TourSearchGroupByAllocationRequest> для поиска с группировкой по отелям --> |
<dataOffset>0</dataOffset> <!-- [Обязательно] Смещение блока запрашиваемого данных, относительно всех найденных результатов. --> | <dataOffset>0</dataOffset> <!-- [Обязательно] Смещение блока запрашиваемого данных, относительно всех найденных результатов. --> | ||
<dataLimit>50</dataLimit> <!-- [Обязательно] Размер блока данных. --> | <dataLimit>50</dataLimit> <!-- [Обязательно] Размер блока данных. --> | ||
− | <!-- Суммарно эти параметры | + | <searchMethod>DB</searchMethod> <!-- [Опционально] Тип поиска. DB - поиск по базе данных, Online - комбинированный поиск --> |
+ | |||
+ | <!-- Суммарно эти параметры определяют запрошенную страницу --> | ||
− | <seatStatus>3</seatStatus> <!-- [Опционально] Наличие мест. 1 - есть места, 2 - по запросу, 3 - все туры --> | + | <seatStatus>3</seatStatus> <!-- [Опционально] Наличие мест. 1 - есть места, 2 - по запросу, 3 - все туры, 5 - есть билет, отель под запрос --> |
<cityId>1000</cityId> <!-- [Обязательно] Идентификатор города вылета. --> | <cityId>1000</cityId> <!-- [Обязательно] Идентификатор города вылета. --> | ||
Строка 32: | Строка 36: | ||
<adults>2</adults> <!-- [Опционально]Количество взрослых. --> | <adults>2</adults> <!-- [Опционально]Количество взрослых. --> | ||
− | <children>0</children> <!-- [Опционально]Количество детей. --> | + | <children>0</children> <!-- [Опционально]Количество детей. --> |
− | + | ||
Строка 46: | Строка 49: | ||
<ticket>1</ticket> <!-- [Опционально] Наличие билета. | <ticket>1</ticket> <!-- [Опционально] Наличие билета. | ||
− | true - только с билетом включенным в стоимость | + | true - только с билетом включенным в стоимость, |
− | false - только без билета | + | false - только без билета, |
1 - только с авиабилетом, 2 - только с ж/д билетом, | 1 - только с авиабилетом, 2 - только с ж/д билетом, | ||
3 - только с билетом на автобус, 4 - только с билетом на паром | 3 - только с билетом на автобус, 4 - только с билетом на паром | ||
Строка 77: | Строка 80: | ||
</resortPlaceIds> | </resortPlaceIds> | ||
− | < | + | <allocCatIds> <!-- [Опционально] Идентификатор категории отеля. --> |
+ | <id>7</id> | ||
+ | <id>8</id> | ||
+ | <id>9</id> | ||
+ | </allocCatIds> | ||
+ | |||
<allocRate>3.56</allocRate> <!-- [Опционально] Рейтинг отеля (не менее заданного) --> | <allocRate>3.56</allocRate> <!-- [Опционально] Рейтинг отеля (не менее заданного) --> | ||
Строка 104: | Строка 112: | ||
</roomTypeIds> | </roomTypeIds> | ||
− | </TourSearchRequest> | + | <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> <!-- [Опционально] Дополнительные объекты которые нужно добавить к объекту тур. Возможные значения перечислены в ниже. --> | <TourExtraEntities> <!-- [Опционально] Дополнительные объекты которые нужно добавить к объекту тур. Возможные значения перечислены в ниже. --> | ||
<entity>OnlineSeatsState</entity> | <entity>OnlineSeatsState</entity> | ||
Строка 119: | Строка 144: | ||
<entity>RoomView</entity> | <entity>RoomView</entity> | ||
<entity>Operator</entity> | <entity>Operator</entity> | ||
+ | <entity>ComboTour</entity> <!-- Признак комбинированного тура --> | ||
+ | <entity>OfferFlags</entity> <!-- Флаги тура (promoPrice, ComboTour, hasProgram) --> | ||
</TourExtraEntities> | </TourExtraEntities> | ||
</Request> | </Request> | ||
Строка 154: | Строка 181: | ||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<Result> | <Result> | ||
− | <Error>Текст ошибки</Error> | + | <Error code="код ошибки">Текст ошибки</Error> |
</Result> | </Result> | ||
</source> | </source> | ||
+ | Внимание! Атрибут с кодом ошибки может отсутствовать! |
Текущая версия на 10:26, 1 декабря 2021
Работа с сервисом осуществляется путем отправки 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>
Внимание! Атрибут с кодом ошибки может отсутствовать!