|
|
(не показано 11 промежуточных версий 4 участников) |
Строка 1: |
Строка 1: |
− |
| |
− | '''!!!СТАТЬЯ В РАЗРАБОТКЕ!!!'''
| |
− |
| |
| ==API Авиабилетов== | | ==API Авиабилетов== |
| | | |
− | Для авторизации в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий сделанных через АПИ.
| + | Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ. |
| | | |
| === API Поиска авиабилетов === | | === API Поиска авиабилетов === |
Строка 98: |
Строка 95: |
| </tr> | | </tr> |
| <tr class="row24"> | | <tr class="row24"> |
− | <td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети со взрослыми, UNN - дети без сопровождения взрослых, INF - младенцы,INS - младенцы с местом</td> | + | <td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети, UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом</td> |
| | | |
| </tr> | | </tr> |
Строка 105: |
Строка 102: |
| </tr> | | </tr> |
| <tr class="row26"> | | <tr class="row26"> |
− | <td class="col0">LinkedTo </td><td class="col1">нет </td><td class="col2">целое число </td><td class="col3">Номер взрослого, к которому привязан младенец/ребёнок</td> | + | <td class="col0">LinkedTo </td><td class="col1">нет </td><td class="col2">целое число </td><td class="col3">Номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)</td> |
| | | |
| </tr> | | </tr> |
Строка 695: |
Строка 692: |
| '''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. | | '''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. |
| Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]] | | Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]] |
− |
| |
− | ==Фиксация оплаты внешним запросом==
| |
− | !!! не нашел, есть просто фиксация оплаты, но это вроде немного не то !!!
| |
− |
| |
− | ==API универсального платежного шлюза==
| |
− | !!! сказано спросить у КШ, я спросил, у него нет информации !!!
| |
| | | |
| == API Синхронизации пользователей и субагентов == | | == API Синхронизации пользователей и субагентов == |
| Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей. | | Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей. |
| + | Модуль является компонентом, включаемым и отключаемым из административной части. |
| | | |
− | Модуль является компонентом, включаемым и отключаемым из административной части.
| + | О механизме авторизации B2B-пользователей, синхронизации учетных записей можно прочитать в статье [[Синхронизация пользователей]] |
− | === Авторизация B2B-пользователей ===
| |
− | | |
− | Все B2B-пользователи, загруженные через модуль взаимодействия со сторонней программой, будут иметь случайным образом сгенерированный криптостойкий [[пароль]]. Механизм авторизации работает следующим образом:
| |
− | | |
− | 1.Система пытается авторизовать пользователя через собственную службу авторизации.
| |
− | 2.В случае неудачи, но присутствия в системе введенного логина, она должна попытаться авторизовать пользователя во внешней службе авторизации («САМО-тур»), при включенном компоненте взаимодействия с «САМО-тур».
| |
− | 3.В случае неудачного опознавания пользователя выводится соответствующее сообщение и процедура может быть повторена путем повторного ввода логина и пароля.
| |
− | | |
− | Регистрация неудачных попыток входа производится только в двух случаях:
| |
− | *Компонент взаимодействия выключен.
| |
− | *Компонент взаимодействия включен и провалены обе попытки авторизации (внутренней и внешней).
| |
− | | |
− | Для сторонней авторизации пользователей в системе Nemo внешняя программа должна иметь веб-службу, основанную на WSDL определенного формата. Ссылка на веб-службу прописывается в настройках системы Nemo на странице конфигурации интеграции с внешней системой.
| |
− | | |
− | Для импортированных пользователей в Nemo имеется поле «Идентификатор внешней системы», который отвечает за сопоставление с ID пользователя в сторонней системе. Для менеджеров агентств оно равно номеру партнера (агента) во внешней системе, для пользователей — номеру пользователя в «САМО-туре».
| |
− | | |
− | Для пользователей, имеющих какое-либо значение в поле «идентификатор во внешней системе», запрещен функционал смены пароля или его восстановления по электронной почте.
| |
− | | |
− | Пример запросов и ответов на авторизацию:
| |
− | | |
− | '''Request'''
| |
− | <pre><?xml version="1.0" encoding="utf-8"?>
| |
− | <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
| |
− | xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
| |
− | <soap12:Body>
| |
− | <getAuthorization xmlns="http://tempuri.org/">
| |
− | <login>string</login>
| |
− | <pass>string</pass>
| |
− | </getAuthorization>
| |
− | </soap12:Body>
| |
− | </soap12:Envelope></pre>
| |
− | | |
− | '''Response'''
| |
− | <pre><?xml version="1.0" encoding="utf-8"?>
| |
− | <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
| |
− | xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
| |
− | <soap12:Body>
| |
− | <getAuthorizationResponse xmlns="http://tempuri.org/">
| |
− | <getAuthorizationResult>
| |
− | <session_id>string</session_id>
| |
− | <user_id>string</user_id>
| |
− | <login>string</login>
| |
− | <status>string</status>
| |
− | </getAuthorizationResult>
| |
− | </getAuthorizationResponse>
| |
− | </soap12:Body>
| |
− | </soap12:Envelope></pre>
| |
− | | |
− | Сервис реализует функцию «getAuthorization», на вход которой передается конструкция «getAuthorizationRequest»:
| |
− | | |
− | *login (строка) - введенный пользователем логин
| |
− | *pass (строка) - введенный пользователем пароль
| |
− | | |
− | Функция должна отдавать системе конструкцию getAuthorizationResponse:
| |
− | | |
− | *session_id (строка) - пустое значение
| |
− | *user_id (строка) - идентификатор менеджера в системе «САМО-тур»
| |
− | *login (строка) - логин пользователя (для контроля)
| |
− | *status (строка) - может иметь значения:
| |
− | 1. adm - администратор
| |
− | 2. mgr - менеджер
| |
− | 3. usr - пользователь (возвращается всегда это значение)
| |
− | | |
− | === Импорт и синхронизация учетных записей ===
| |
− | | |
− | Со стороны внешней системы должно быть приложение, отправляющее в формате XML данные по учетным записям B2B-клиентов (агентств и пользователей). Со стороны Nemo имеется скрипт, который принимает XML в формате, приведенном в описании документов, передаваемых в Nemo, с ключом авторизации, определенным в Nemo в административной части модуля.
| |
− | | |
− | Передаваемые элементы с описанием учетных записей и партнеров имеют аккаунт (Account ID) во внешней системе и атрибут action, который может быть в состоянии update или delete, т.е. обновления/добавления и удаления, соответственно.
| |
− | | |
− | В административной части модуля в Nemo задается ключ авторизации для защиты от несанкционированного доступа. Значение не должно быть пустым.
| |
− | | |
− | Скрипт получает данные об обновлении и добавлении (проходят как одно и то же действие) или удалении информации по аккаунту. XML-данные могут содержать несколько элементов.
| |
− | | |
− | Описание передаваемых в Nemo XML-документов:
| |
− | | |
− | <pre><?xml version="1.0" encoding="UTF-8" ?>
| |
− | <changes key="ключ_авторизации">
| |
− | <accounts> - список изменений по аккаунтам пользователей
| |
− | <item id=3 partnerId=10 action="update" admin="1">
| |
− | <login>Логин пользователя</login>
| |
− | </item>
| |
− | <item id=6 partnerId=15 action="update">
| |
− | ...
| |
− | </item>
| |
− | <item id=9 partnerId=30 action="delete" />
| |
− | </accounts>
| |
− | <partners> - список изменений по партнерам
| |
− | <item id=140 action="update">
| |
− | <name>Название агентства</name>
| |
− | <ofname>Официальное Название агентства</ofname>
| |
− | <phone>Телефон</phone>
| |
− | <tax>Форма налогообложения</tax>
| |
− | <group>123</group>
| |
− | <code>ABCD</item>
| |
− | </partners></changes></code></pre>
| |
− | | |
− | При импорте информации об агентствах будут возвращаться следующие значения:
| |
− | | |
− | <table border="1">
| |
− | <tr class="row0" bgcolor="#CCCCCC">
| |
− | <th class="col0">Поле во внешней системе </th><th class="col1"> Путь к элементу xml </th><th class="col2"> Тип данных </th><th class="col3"> Сопоставляемое поле в Nemo </th><th class="col4"> Примечание </th>
| |
− | | |
− | </tr>
| |
− | <tr class="row1">
| |
− | <td class="col0">Идентификатор партнера</td><td class="col1">/changes/partners/item[@id]</td><td class="col2 leftalign">Целое число </td><td class="col3 leftalign">Идентификатор во внешней системе для менеджера / администратора </td><td class="col4"></td>
| |
− | </tr>
| |
− | <tr class="row2">
| |
− | <td class="col0">Название юридического лица</td><td class="col1">/changes/partners/item/ofname</td><td class="col2">Строка</td><td class="col3">Полное официальное название юридического лица </td><td class="col4">Необходимо для выписки счетов юридическими лицами</td>
| |
− | | |
− | </tr>
| |
− | <tr class="row3">
| |
− | <td class="col0">Сокращенное название</td><td class="col1">/changes/partners/item/name</td><td class="col2">Строка</td><td class="col3 leftalign">Имя агентства </td><td class="col4"></td>
| |
− | </tr>
| |
− | <tr class="row4">
| |
− | <td class="col0">Код агентства</td><td class="col1">/changes/partners/item/code</td><td class="col2">Строка</td><td class="col3">Используется при создании логина администратора</td><td class="col4"></td>
| |
− | | |
− | </tr>
| |
− | <tr class="row5">
| |
− | <td class="col0">Номер группы в самотуре</td><td class="col1">/changes/partners/item/group</td><td class="col2">Целое число, либо пусто</td><td class="col3 leftalign">На основании таблицы сопоставлений (см. ниже) определяется, к какой группе агентство принадлежит в Nemo </td><td class="col4"></td>
| |
− | </tr>
| |
− | <tr class="row6">
| |
− | <td class="col0">Форма налогообложения</td><td class="col1">/changes/partners/item/tax</td><td class="col2">Целое число, равное идентификатору во внешней системе</td><td class="col3"></td><td class="col4"></td>
| |
− | </tr>
| |
− | </table>
| |
− | | |
− | Для каждого возвращенного агентства Nemo проверяет наличие его в своей базе. Если [[агентство]] не найдено, то создается новое, для него создается менеджер (админ) с логином ABCD-1234, где ABCD – буквенный идентификатор партнера во внешней системе, 1234 — id партнера во внешней системе. Пароль генерируется случайный и криптостойкий.
| |
− | | |
− | Если агентство найдено, то в случае необходимости производится обновление всех полей на основании данных из внешней системы. Если изменился буквенный код агентства, то Nemo переименовывает менеджера в соответствии с новым кодом. При импорте информации о пользователях агентств в Nemo будут посылаться следующие поля:
| |
− | | |
− | <table border="1">
| |
− | <tr class="row0" bgcolor="#CCCCCC">
| |
− | <th class="col0">Поле во внешней системе</th><th class="col1">Путь к элементу xml</th><th class="col2">Тип данных</th><th class="col3">Сопоставляемое поле в Nemo</th><th class="col4">Примечание</th>
| |
− | | |
− | </tr>
| |
− | <tr class="row1">
| |
− | <td class="col0">Идентификатор пользователя</td><td class="col1">/changes/accounts/item[@id]</td><td class="col2">Целое число</td><td class="col3">Идентификатор внешней системы</td><td class="col4">Храним как дополнительное поле </td>
| |
− | </tr>
| |
− | <tr class="row2">
| |
− | <td class="col0">Идентификатор партнера</td><td class="col1">/changes/accounts/item[@partnerId]</td><td class="col2">Целое число</td><td class="col3">Идентификатор внешней системы менеджера агентства</td><td class="col4"></td>
| |
− | | |
− | </tr>
| |
− | <tr class="row3">
| |
− | <td class="col0">Логин</td><td class="col1">/changes/accounts/item/login</td><td class="col2">Строка</td><td class="col3">Логин пользователя</td><td class="col4"></td>
| |
− | </tr>
| |
− | <tr class="row4">
| |
− | <td class="col0">Администратор</td><td class="col1">/changes/accounts/item[@admin]</td><td class="col2">0 - нет, 1 - да</td><td class="col3 leftalign">Эксперт по бронированию </td><td class="col4"></td>
| |
− | | |
− | </tr>
| |
− | </table>
| |
− | | |
− | Для каждого возвращенного пользователя Nemo проверяет наличие его в своей базе. Если пользователь не найден, то создается новый. Пароль генерируется случайный и криптостойкий.
| |
− | | |
− | Если [[пользователь]] найден, то в случае необходимости производится обновление всех полей на основании данных из внешней системы. При запросе на удаление пользователя, в Nemo указанный логин удаляться не будет в целях сохранения целостности старых данных, а просто помечается как удаленный, и логин переименовывается и становится вида [логин_пользователя]_X_[числовой идентификатор_пользователя в Само].
| |
− | | |
− | <pre><item id=[идентификатор] action="delete" /></pre>
| |
− | | |
− | === Таблица сопоставлений групп ===
| |
− | | |
− | В административной части Nemo надо создать отдельную страницу, на которой можно сопоставить имеющиеся [[Пользователь#Группы в Nemo|группы в Nemo]] номерам групп в САМО-тур (поле group в XML). Выводится список существующих групп для текущего (корневого) агентства.
| |
| | | |
| ==API Кроссавторизации== | | ==API Кроссавторизации== |
− | Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п) | + | '''Авторизация пользователей из внешних систем''' — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п) |
| | | |
| Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу: | | Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу: |
Строка 929: |
Строка 762: |
| </div></div> | | </div></div> |
| | | |
| + | ==Передача параметров в форму поиска (FastSearch)== |
| | | |
− | ==Передача параметров в форму поиска==
| |
− | {{Contract}}
| |
| В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска. | | В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска. |
| | | |
− | === Применение ===
| + | Примеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch - передача параметров в форму]] |
− | Эта технология может использоватся к примеру для формирования ссылок с баннеров, при клике на которые пользователь попадает на форму, на которой уже могут быть заполнены пункты назначения, даты, количество пассажиров и прочие параметры.
| |
− | | |
− | Также, при указании всех необходимых параметров, пользователя можно перебрасывать сразу на процесс поиска авиабилетов с указанными критериями.
| |
− | | |
− | Для использования заполнения формы из URL следует включить опцию: '''Администрирование''' → '''Настройки системы''' → '''''Включить FastSearch (передачу параметров поиска)'''''
| |
− | | |
− | После этого можно использовать ссылки на форму поиска вида
| |
− | | |
− | <pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=BER&departure_date=21.10.2009&adults=1&children=0&input_vendors=SU,PS¶m_by_get=on</pre>
| |
− | | |
− | === Переменные FastSearch ===
| |
− | Имена полей - такие же как имена инпутов на поисковой форме.
| |
− | | |
− | Следите за тем, чтобы значения соответствовали установленным в настройках ограничениям.
| |
− | | |
− | Переменные, которые предполагают в качестве значения "true" можно просто не включать в запрос, чтобы их логика не отработала.
| |
− | | |
− | ==== Форма поиска ====
| |
− | Чтобы перенаправить пользователя на страницу с заполненными параметрами поиска, необходимо указать get-параметр '''¶m_by_get=on''', иначе сработают стандартные предустановки полей формы поиска.
| |
− | | |
− | ==== Процесс поиска ====
| |
− | Если вы указываете все необходимые для поиска параметры, то для того чтобы отправить пользователя сразу на результаты поиска, нужно указать get-параметр '''&fast_search=on'''.
| |
− | | |
− | ==== Маршрут «В одну сторону» и «Туда и обратно» ====
| |
− | {| style="width: 800px;" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="300" | Элемент
| |
− | ! scope="col" width="250" | Переменная
| |
− | ! scope="col" width="250" | Допустимые значения
| |
− | |-
| |
− | | Тип маршрута
| |
− | | trip_type
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | OW
| |
− | | В одну сторону
| |
− | |-
| |
− | | RT
| |
− | | Туда и обратно
| |
− | |-
| |
− | | CR
| |
− | | Сложный маршрут
| |
− | |}
| |
− | | |
− | |-
| |
− | | Пункт вылета
| |
− | | out_iata
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | MOW
| |
− | | Код аэропорта ИАТА
| |
− | |}
| |
− | | |
− | |-
| |
− | | Пункт прилета
| |
− | | in_iata
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | LED
| |
− | | Код аэропорта ИАТА
| |
− | |}
| |
− | | |
− | |-
| |
− | | Дата вылета
| |
− | | departure_date
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 25.10.2013
| |
− | | Дата в формате ДД.ММ.ГГГГ
| |
− | |}
| |
− | | |
− | |-
| |
− | | Дата обратного вылета
| |
− | | back_departure_date
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 27.10.2013
| |
− | | Дата в формате ДД.ММ.ГГГГ
| |
− | |}
| |
− | | |
− | |-
| |
− | | Время вылета
| |
− | | prefered_departure_type
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | not_important
| |
− | | Любое время
| |
− | |-
| |
− | | morning
| |
− | | Утром
| |
− | |-
| |
− | | afternoon
| |
− | | Днем
| |
− | |-
| |
− | | evening
| |
− | | Вечером
| |
− | |-
| |
− | | night
| |
− | | Ночью
| |
− | |}
| |
− | | |
− | |-
| |
− | | Время обратного вылета
| |
− | | prefered_back_departure_type
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | not_important
| |
− | | Любое время
| |
− | |-
| |
− | | morning
| |
− | | Утром
| |
− | |-
| |
− | | afternoon
| |
− | | Днем
| |
− | |-
| |
− | | evening
| |
− | | Вечером
| |
− | |-
| |
− | | night
| |
− | | Ночью
| |
− | |}
| |
− | | |
− | |-
| |
− | | Поиск только среди прямых рейсов ("Без пересадок")
| |
− | | direct
| |
− | | true
| |
− | |}
| |
− | | |
− | ===== Дополнительные параметры =====
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="300" | Элемент
| |
− | ! scope="col" width="250" | Переменная
| |
− | ! scope="col" width="250" | Допустимые значения
| |
− | |-
| |
− | | Нижнее ограничение по цене по умолчанию
| |
− | | money_from
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 0
| |
− | | Целое число большее либо равное 0
| |
− | |}
| |
− | | |
− | |-
| |
− | | Верхнее ограничение по цене по умолчанию
| |
− | | money_to
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 10000
| |
− | | Целое число большее 0
| |
− | |}
| |
| | | |
− | |-
| + | FastSearch так же работает и для отелей, подробности в статье [[Fast Search для отелей]] |
− | | Поиск в окружных датах
| |
− | | district_date
| |
− | | true
| |
− | |-
| |
− | | Диапазон соседних дат +(-) [дней]
| |
− | | date_range
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 1
| |
− | | Целое число большее [1..3]
| |
− | |}
| |
− | | |
− | |-
| |
− | | Поиск по соседним аэропортам
| |
− | | district_airport
| |
− | | true
| |
− | |-
| |
− | | Класс обслуживания
| |
− | | class
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | econom
| |
− | | Перелет эконом-классом
| |
− | |-
| |
− | | business
| |
− | | Перелет бизнес-классом
| |
− | |-
| |
− | | first
| |
− | | Перелет первым-классом
| |
− | |}
| |
− | | |
− | |-
| |
− | | Фильтр по авиакомпании
| |
− | | input_vendors
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | SU,PS
| |
− | | Коды авиакомпании ИАТА через запятую без пробелов
| |
− | |}
| |
− | | |
− | |-
| |
− | | Сортировка
| |
− | | sort
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | price
| |
− | | По стоимости
| |
− | |-
| |
− | | out_date
| |
− | | По расписанию
| |
− | |-
| |
− | | company
| |
− | | По авиакомпании
| |
− | |-
| |
− | | fltduration
| |
− | | По длительности перелёта
| |
− | |}
| |
− | | |
− | |}
| |
− | | |
− | ==== Сложный маршрут ====
| |
− | <span style="font-size: large; color: rgb(255, 0, 0);">! </span><span style="background-color: rgb(255, 240, 245);"> Данные переменные применимы только для сложного маршрута ('''trip_type=CR''').</span>
| |
− | | |
− | '''[X]''' - номера отдельных перелетов. Нумерация начинается с 0, что означает первый перелет.
| |
− | | |
− | Максимальное количество сегментов для сложного маршрута определяется одноименной настройкой в разделе '''Авиабилеты ⇨ Поиск ⇨ Ограничения поиска'''.
| |
− | | |
− | {| style="width: 800px;" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="300" | Элемент
| |
− | ! scope="col" width="250" | Переменная
| |
− | ! scope="col" width="250" colspan="2" | Допустимые значения
| |
− | |-
| |
− | | Пункты вылета
| |
− | | cr_iata[0]<br/>
| |
− | cr_iata[1]<br/>
| |
− | ...<br/>
| |
− | cr_iata[8]
| |
− | | width="80" | MOW
| |
− | | Код аэропорта ИАТА
| |
− | |-
| |
− | | Пункты прилета
| |
− | | cr_back_iata[0]<br/>
| |
− | cr_back_iata[1]<br/>
| |
− | ...<br/>
| |
− | cr_back_iata[8]
| |
− | | width="80" | LED
| |
− | | Код аэропорта ИАТА
| |
− | |-
| |
− | | Дата вылета
| |
− | | cr_date[0]<br/>
| |
− | cr_date[1]<br/>
| |
− | ...<br/>
| |
− | cr_date[8]
| |
− | | width="80" | 25.10.2013
| |
− | | Дата в формате ДД.ММ.ГГГГ
| |
− | |-
| |
− | | Время вылета
| |
− | | cr_pref_departure[0]<br/>
| |
− | cr_pref_departure[1]<br/>
| |
− | ...<br/>
| |
− | cr_pref_departure[8]
| |
− | | colspan="2" style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | not_important
| |
− | | Любое время
| |
− | |-
| |
− | | morning
| |
− | | Утром
| |
− | |-
| |
− | | afternoon
| |
− | | Днем
| |
− | |-
| |
− | | evening
| |
− | | Вечером
| |
− | |-
| |
− | | night
| |
− | | Ночью
| |
− | |}
| |
− | | |
− | |-
| |
− | | Класс обслуживания
| |
− | | cr_class[0]<br/>
| |
− | cr_class[1]<br/>
| |
− | ...<br/>
| |
− | cr_class[8]
| |
− | | colspan="2" style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | econom
| |
− | | Перелет эконом-классом
| |
− | |-
| |
− | | business
| |
− | | Перелет бизнес-классом
| |
− | |-
| |
− | | first
| |
− | | Перелет первым классом
| |
− | |}
| |
− | | |
− | |-
| |
− | | Окружные аэропорты (±XX км)
| |
− | | cr_district_airport[0]<br/>
| |
− | cr_district_airport[1]<br/>
| |
− | ...<br/>
| |
− | cr_district_airport[8]
| |
− | | colspan="2" | true
| |
− | |}
| |
− | | |
− | ==== Пассажиры ====
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="300" | Элемент
| |
− | ! scope="col" width="250" | Переменная
| |
− | ! scope="col" width="250" | Допустимые значения
| |
− | |-
| |
− | | Взрослых от 12 лет
| |
− | | adults
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 1
| |
− | | Целое число большее либо равное 0
| |
− | |}
| |
− | | |
− | |-
| |
− | | Детей от 2 до 12 лет
| |
− | | children
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 1
| |
− | | Целое число большее либо равное 0
| |
− | |}
| |
− | | |
− | |-
| |
− | | Младенцев до 2 лет
| |
− | | infants
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 1
| |
− | | Целое число большее либо равное 0
| |
− | |}
| |
− | | |
− | |-
| |
− | | Младенцев с местом до 2 лет
| |
− | | infants_seat
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 1
| |
− | | Целое число большее либо равное 0
| |
− | |}
| |
− | | |
− | |-
| |
− | | Молодых от 12 до 24 лет <br/>
| |
− | | youths
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 1
| |
− | | Целое число большее либо равное 0<br/>
| |
− | <span style="font-size: large; color: rgb(255, 0, 0);">! </span><span style="background-color: rgb(255, 240, 245);"> Данный параметр доступен только в новой базовой теме.</span>
| |
− | |}
| |
− | | |
− | |-
| |
− | | Пожилых от 65 лет
| |
− | | seniors
| |
− | | style="padding: 0;" |
| |
− | | |
− | {| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
| |
− | |-
| |
− | | width="80" | 1
| |
− | | Целое число большее либо равное 0<br/>
| |
− | <span style="font-size: large; color: rgb(255, 0, 0);">! </span><span style="background-color: rgb(255, 240, 245);"> Данный параметр доступен только в новой базовой теме.</span>
| |
− | |}
| |
− | | |
− | |}
| |
− | | |
− | ==== Примеры FastSearch запросов ====
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
| |
− | <u>'''В одну сторону (простой)'''</u>
| |
− | <div class="mw-collapsible-content">
| |
− | '''Рейс в одну сторону из Москвы в Париж, дата вылета: 25.10.2013, без пересадок, 1 взрослый'''
| |
− | * '''''форма поиска'''''
| |
− | <pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
| |
− | &direct=true&adults=2¶m_by_get=on</pre>
| |
− | * '''''процесс поиска'''''
| |
− | <pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
| |
− | &direct=true&adults=2¶m_by_get=on&fast_search=on</pre>
| |
− | </div>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
| |
− | <u>'''В одну сторону (с фильтрами по авиакомпаниям)'''</u>
| |
− | <div class="mw-collapsible-content">
| |
− | '''Рейс в одну сторону из Москвы в Париж, дата вылета 25.10.2013, Пассажиры: пожилых - 2, Авиакомпании: Аэрофлот - Российские авиалинии, Международные Авиалинии Украины'''
| |
− | * '''''форма поиска'''''
| |
− | <pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
| |
− | &seniors=2&input_vendors=SU,PS¶m_by_get=on</pre>
| |
− | * '''''процесс поиска'''''
| |
− | <pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
| |
− | &seniors=2&input_vendors=SU,PS¶m_by_get=on&fast_search=on</pre>
| |
− | </div>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
| |
− | <u>'''Туда-обратно'''</u>
| |
− | <div class="mw-collapsible-content">
| |
− | '''Рейсы туда-обратно Москва ↔ Париж, дата вылета: 25.10.2013, обратно: 27.10.2013, класс перелета: Эконом, Пассажиры: взрослых - 2 младенцев - 1'''
| |
− | * '''''форма поиска'''''
| |
− | <pre>http://SITEMANE/?trip_type=RT&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
| |
− | &back_departure_date=27.10.2013&class=econom&adults=2&infants=1¶m_by_get=on</pre>
| |
− | * '''''процесс поиска'''''
| |
− | <pre>http://SITEMANE/?trip_type=RT&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
| |
− | &back_departure_date=27.10.2013&class=econom&adults=2&infants=1¶m_by_get=on&fast_search=on</pre>
| |
− | </div>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
| |
− | <u>'''Сложный маршрут'''</u>
| |
− | <div class="mw-collapsible-content">
| |
− | '''из Москвы в Париж, дата вылета 25.10.2013,'''<br/>
| |
− | '''из Парижа в Санкт-Петербург, дата вылета 26.10.2013,'''<br/>
| |
− | '''из Санкт-Петербурга в Москву, дата вылета 29.10.2013,'''<br/>
| |
− | '''1 взрослый'''
| |
− | * '''''форма поиска'''''
| |
− | <pre>http://SITEMANE/?trip_type=CR
| |
− | &cr_iata[0]=MOW&cr_back_iata[0]=PAR&cr_date[0]=25.10.2013
| |
− | &cr_iata[1]=PAR&cr_back_iata[1]=LED&cr_date[1]=26.10.2013
| |
− | &cr_iata[2]=LED&cr_back_iata[2]=MOW&cr_date[2]=29.10.2013
| |
− | &adults=1¶m_by_get=on</pre>
| |
− | * '''''процесс поиска'''''
| |
− | <pre>http://SITEMANE/?trip_type=CR
| |
− | &cr_iata[0]=MOW&cr_back_iata[0]=PAR&cr_date[0]=25.10.2013
| |
− | &cr_iata[1]=PAR&cr_back_iata[1]=LED&cr_date[1]=26.10.2013
| |
− | &cr_iata[2]=LED&cr_back_iata[2]=MOW&cr_date[2]=29.10.2013
| |
− | &adults=1¶m_by_get=on&fast_search=on</pre>
| |
− | </div>
| |
− | </div>
| |
− | | |
− | === Взаимодействие FastSearch и Метрики ===
| |
− | Для того, чтобы переход был зарегистрирован системой как переход с определенного источника, необходимо передать в запросе дополнительный параметр utm_source (Metrics Session ID). Например:
| |
− | <pre>http://SITEMANE/?(some_parameters=vals&)utm_source=source_alias</pre>
| |
− | где source_alias - алиас источника переходов. [[Модуль метрики | Дополнительная информация по использованию модуля Метрики]].
| |
− | | |
− | ==== Пример FastSearch запроса с параметром для модуля Метрики ====
| |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
| |
− | <u>'''FastSearch (с учетом источника перехода для модуля Метрики)'''</u>
| |
− | <div class="mw-collapsible-content">
| |
− | '''Рейс в одну сторону из Москвы в Париж, дата вылета: 25.10.2013, без пересадок, 1 взрослый (с учетом источника перехода для модуля Метрики).'''
| |
− | * '''''форма поиска'''''
| |
− | <pre>
| |
− | http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
| |
− | &direct=true&adults=2¶m_by_get=on&utm_source=source_alias
| |
− | </pre>
| |
− | * '''''процесс поиска'''''
| |
− | <pre>
| |
− | http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
| |
− | &direct=true&adults=2¶m_by_get=on&fast_search=on&utm_source=source_alias
| |
− | </pre>
| |
− | </div>
| |
− | </div>
| |
| | | |
| + | <!-- Т.к. это внутренний формат обмена данными между Немо и одним клиентом, то данную инфу скроем в комментарии |
| ==Проверка в сторонней системе возможности тикетинга== | | ==Проверка в сторонней системе возможности тикетинга== |
| | | |
− | При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, в ответе будет | + | При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет |
| <pre><m:Opportunity>Да</m:Opportunity></pre> | | <pre><m:Opportunity>Да</m:Opportunity></pre> |
| Пример запроса "GetDebtCounterparty" | | Пример запроса "GetDebtCounterparty" |
Строка 1576: |
Строка 920: |
| </pre> | | </pre> |
| </div></div> | | </div></div> |
| + | |
| + | --> |