|
|
(не показано 20 промежуточных версий 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> |
Строка 682: |
Строка 679: |
| | | |
| | | |
− | ==== Штрафы за аннуляцию ====
| + | ==Выгрузки статистики продаж через API (Метапоиск)== |
− | | |
− | Всегда в явном виде нужно указывать пользователю информацию о штрафах за аннуляцию до бронирования.
| |
− | | |
− | Штрафы получаются по каждой услуге отдельным запросом. Нужно указать тип услуги, идентификатор результата поиска и выбранную категорию.
| |
− | | |
− | Внимание. Для отелей из Hotelbeds (Supplier=HOTELBEDS) штрафы до бронирования получить невозможно.
| |
− | | |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Penalty
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Запрос =====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
| |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenalty">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:penalty>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <Penalty>
| |
− | <Item>
| |
− | <Type>HOTELS</Type>
| |
− | <CacheId>1867246</CacheId>
| |
− | <CategoryId>1</CategoryId>
| |
− | </Item>
| |
− | </Penalty>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:penalty>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Item'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Type
| |
− | | Обязательный. Тип объекта.
| |
− | | HOTELS
| |
− | |-
| |
− | | CacheId
| |
− | | Обязательный. Идентификатор результата поиска в системе Nemo.
| |
− | | Целое число
| |
− | |-
| |
− | | CategoryId
| |
− | | Обязательный. Идентификатор категории.
| |
− | | Целое число
| |
− | |}
| |
− | | |
− | Элемент '''Source'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Ответ =====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenalty">
| |
− | <SOAP-ENV:Body>
| |
− | <ns1:penaltyResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <Penalty>
| |
− | <ItemDateBegin>2013-10-15 00:00:00</ItemDateBegin>
| |
− | <CancelCharges>
| |
− | <Charge>
| |
− | <DateFrom>2013-10-12 00:00:00</DateFrom>
| |
− | <DateTo>2013-10-15 23:59:59</DateTo>
| |
− | <Money Currency="RUB">74733.84</Money>
| |
− | </Charge>
| |
− | <Charge>
| |
− | <DateFrom>2013-09-23 00:00:00</DateFrom>
| |
− | <DateTo>2013-10-11 00:00:00</DateTo>
| |
− | <Money Currency="RUB">67260.46</Money>
| |
− | </Charge>
| |
− | <Charge>
| |
− | <DateFrom>2013-08-01 17:59:00</DateFrom>
| |
− | <DateTo>2013-09-22 00:00:00</DateTo>
| |
− | <Money Currency="RUB">12455.64</Money>
| |
− | </Charge>
| |
− | </CancelCharges>
| |
− | <ModifyCharges/>
| |
− | </Penalty>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:penaltyResponse>
| |
− | </SOAP-ENV:Body>
| |
− | </SOAP-ENV:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Penalty'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ItemDateBegin
| |
− | | Обязательный. Дата начала услуги (дата заселения в отель).
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | CancelCharges
| |
− | | Необязательный. Содержит информацию о штрафах за аннуляцию.
| |
− | | Элемент Charge
| |
− | |-
| |
− | | ModifyCharges
| |
− | | Необязательный. Содержит информацию о штрафах за модификацию.
| |
− | | Элемент Charge
| |
− | |}
| |
− | | |
− | Штрафы разбиваются по временным интервалам. На каждом интервале указывается значение штрафа.
| |
− | | |
− | Элемент '''Charge'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | DateFrom
| |
− | | Обязательный. Дата/время начала интервала.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | DateTo
| |
− | | Необязательный. Дата/время окончания интервала.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | Money
| |
− | | Обязательный. Сумма штрафа.
| |
− | | Вещественное число.
| |
− | Атрибут: Currency - код валюты.
| |
− | |}
| |
− | </div>
| |
− | </div>
| |
− | | |
− | | |
− | | |
− | ==== Бронирование ====
| |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Запрос =====
| |
− | <div class="mw-collapsible-content">
| |
− | Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.
| |
− | | |
− | Сейчас же необходимо указывать только 1 услугу-отель (элемент Item) в запросе на бронирование.
| |
− | | |
− | Для успешного запроса нужно указать:
| |
− | #Услугу. В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата.
| |
− | #Информация о клиентах. Все клиенты перечисляются в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиента), также добавляются в описание услуги.
| |
− | #Заказчик. Указатель на одну персону.
| |
− | | |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Booking
| |
− | | |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
| |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DBooking">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:booking>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <Booking>
| |
− | <Items>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Item>
| |
− | <!--You have a CHOICE of the next 3 items at this level-->
| |
− | <HotelBookData>
| |
− | <CacheId>1872666</CacheId>
| |
− | <CategoryId>1</CategoryId>
| |
− | <Rooms>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Room Id="2">
| |
− | <Persons>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Person Number="1"/>
| |
− | <Person Number="2"/>
| |
− | </Persons>
| |
− | </Room>
| |
− | <Room Id="1">
| |
− | <Persons>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Person Number="3"/>
| |
− | </Persons>
| |
− | </Room>
| |
− | </Rooms>
| |
− | </HotelBookData>
| |
− | <Customer>
| |
− | <Person Number="1"/>
| |
− | </Customer>
| |
− | </Item>
| |
− | </Items>
| |
− | <Persons>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Person Number="1" Type="ADT">
| |
− | <!--Optional:-->
| |
− | <Lastname>IVANOV</Lastname>
| |
− | <!--Optional:-->
| |
− | <Name>IVAN</Name>
| |
− | <!--Optional:-->
| |
− | <Middlename>IVANOVICH</Middlename>
| |
− | <!--Optional:-->
| |
− | <DateOfBirth>1987-12-12</DateOfBirth>
| |
− | <!--Optional:-->
| |
− | <Phone>+79871231212</Phone>
| |
− | <!--Optional:-->
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <!--Optional:-->
| |
− | <Gender>MR</Gender>
| |
− | <!--Optional:-->
| |
− | <Document Type="P">
| |
− | <Series>1811</Series>
| |
− | <Number>912219</Number>
| |
− | <!--Optional:-->
| |
− | <IssueDate>2012-12-12</IssueDate>
| |
− | <!--Optional:-->
| |
− | <ExpiryDate>2014-12-12</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="2" Type="CHD">
| |
− | <!--Optional:-->
| |
− | <Lastname>PETROV</Lastname>
| |
− | <!--Optional:-->
| |
− | <Name>IVAN</Name>
| |
− | <!--Optional:-->
| |
− | <Middlename>MIKHAILOVICH</Middlename>
| |
− | <!--Optional:-->
| |
− | <DateOfBirth>2008-12-12</DateOfBirth>
| |
− | <!--Optional:-->
| |
− | <Phone>+79871231212</Phone>
| |
− | <!--Optional:-->
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <!--Optional:-->
| |
− | <Gender>MR</Gender>
| |
− | <!--Optional:-->
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <!--Optional:-->
| |
− | <IssueDate>2012-12-12</IssueDate>
| |
− | <!--Optional:-->
| |
− | <ExpiryDate>2014-12-12</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="3" Type="ADT">
| |
− | <!--Optional:-->
| |
− | <Lastname>SIDOROV</Lastname>
| |
− | <!--Optional:-->
| |
− | <Name>IVAN</Name>
| |
− | <!--Optional:-->
| |
− | <Middlename>SERGEEVICH</Middlename>
| |
− | <!--Optional:-->
| |
− | <DateOfBirth>1987-12-12</DateOfBirth>
| |
− | <!--Optional:-->
| |
− | <Phone>+79871231212</Phone>
| |
− | <!--Optional:-->
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <!--Optional:-->
| |
− | <Gender>MR</Gender>
| |
− | <!--Optional:-->
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <!--Optional:-->
| |
− | <IssueDate>2012-12-12</IssueDate>
| |
− | <!--Optional:-->
| |
− | <ExpiryDate>2014-12-12</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | </Persons>
| |
− | </Booking>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:booking>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Booking'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Items
| |
− | | Обязательный. Массив элементов Item.
| |
− | | Элемент Item
| |
− | |-
| |
− | | Customer
| |
− | | Обязательный. Элемент установки заказчика.
| |
− | |
| |
− | |-
| |
− | | Persons
| |
− | | Обязательный. Массив клиентов.
| |
− | |
| |
− | |}
| |
− | | |
− | Данные об услугах записываются в элементы <Item>.
| |
− | | |
− | Элемент '''Item'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | HotelBookData
| |
− | | Обязательный. В зависимости от типа объекта бронирования. В данный момент возможно указать только данные для отеля.
| |
− | |
| |
− | |-
| |
− | | Persons
| |
− | | Необязательный. Привязка клиентов к услуге. Если не указаны, будут привязаны все из указанных в главном элементе Booking.
| |
− | | [<Person Number=''"1"'' />]
| |
− | |}
| |
− | | |
− | <u>Бронирование отеля.</u>
| |
− | Для бронирования отеля необходимы следующие параметры:
| |
− | # ID результата поиска - один отель
| |
− | # ID выбранной категории этого отеля
| |
− | # Распределение клиентов по комнатам.
| |
− | | |
− | Элемент '''HotelBookData'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | CacheId
| |
− | | Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.
| |
− | | Целое число
| |
− | |-
| |
− | | CategoryId
| |
− | | Обязательный. Идентификатор категории.
| |
− | | Целое число
| |
− | |-
| |
− | | Rooms
| |
− | | Обязательный. Распределение клиентов по комнатам.
| |
− | | Список элементов Room
| |
− | |-
| |
− | | Room
| |
− | | Атрибут Id
| |
− | Ид комнаты из результата поиска
| |
− | | |
− | Элемент Persons
| |
− | | Целое число
| |
− | |-
| |
− | | Persons
| |
− | | Обязательный.
| |
− | Список людей
| |
− | | Список элементов Person
| |
− | |-
| |
− | | Person
| |
− | | Обязательный.
| |
− | Атрибут Number
| |
− | Номер пассажира из Booking ->Persons->Person->Number
| |
− | |
| |
− | Целое число
| |
− | |}
| |
− | | |
− | <u>Информация о клиентах.</u>
| |
− | Для успешного завершения бронирования нужно указать как минимум одного клиента. Максимальное число клиентов в текущей версии не ограничено.
| |
− | | |
− | Набор обязательных данных может меняться в зависимости от типов услуг в бронировании. Рекомендуемый набор обязательных параметров: Lastname, Name, DateOfBirth. Остальные обязательные параметры будут устанавливаться индивидуально при подключении к сервису.
| |
− | | |
− | Элемент '''Person'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Атрибут Number
| |
− | | Обязательный. Номер клиента, необходим для правильной привязки к услугам.
| |
− | | Целое число
| |
− | |-
| |
− | | Type
| |
− | | Обязательный.
| |
− | Тип пассажира.
| |
− | | Строка.
| |
− | Возможные значения:
| |
− | ADT
| |
− | CLD
| |
− | INF
| |
− | |-
| |
− | | Lastname
| |
− | | Фамилия.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Name
| |
− | | Имя.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Middlename
| |
− | | Отчество.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | DateOfBirth
| |
− | | Дата рождения.
| |
− | | Формат гггг-мм-дд.
| |
− | |-
| |
− | | Phone
| |
− | | Телефон.
| |
− | Рекомендуемый формат:
| |
− | +79871234567
| |
− | | Строка
| |
− | |-
| |
− | | Email
| |
− | | Электронный адрес.
| |
− | | Строка
| |
− | |-
| |
− | | Gender
| |
− | | Пол.
| |
− | | MR - мужчина,
| |
− | MS - женщина.
| |
− | |-
| |
− | | Document
| |
− | | Документ
| |
− | | Элемент Document
| |
− | |}
| |
− | | |
− | Для некоторых услуг может потребоваться информация о документах.
| |
− | | |
− | Элемент '''Document'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Атрибут Type
| |
− | | Обязательный. Тип документа.
| |
− | | P - загранпаспорт
| |
− | C - внутренний гражданский паспорт
| |
− | B - свидетельство о рождении
| |
− | |-
| |
− | | Series
| |
− | | Необязательный. Серия документа. Можно указать слитно с номером в Number.
| |
− | | Строка в произвольном формате
| |
− | |-
| |
− | | Number
| |
− | | Обязательный. Номер документа.
| |
− | | Строка в произвольном формате
| |
− | |-
| |
− | | IssueDate
| |
− | | Необязательный. Дата выдачи документа.
| |
− | | Формат гггг-мм-дд
| |
− | |-
| |
− | | ExpiryDate
| |
− | | Необязательный. Дата истечения срока действия документа.
| |
− | | Формат гггг-мм-дд
| |
− | |}
| |
− | | |
− | Элемент '''Source'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Ответ =====
| |
− | <div class="mw-collapsible-content">
| |
− | После выполнения запроса сразу поступит информация о бронировании. В первую очередь нужно внимательно проверить статусы <Status> всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска RQ (по запросу), то статус скорее всего будет не равен «booked». Через некоторое время проверять реальный статус бука отправляя запрос на чтение данных о бронировании.
| |
− | | |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
| |
− | xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DBooking"
| |
− | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
| |
− | <SOAP-ENV:Body>
| |
− | <ns1:bookingResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <Booking>
| |
− | <Items>
| |
− | <Item Id="386610">
| |
− | <Hotel Id="1872666">
| |
− | <Supplier>GTA</Supplier>
| |
− | <CityId>22046</CityId>
| |
− | <DateBegin>2013-10-15</DateBegin>
| |
− | <DateEnd>2013-10-18</DateEnd>
| |
− | <CacheId>1872666</CacheId>
| |
− | <Name>ADLON KEMPINSKI</Name>
| |
− | <Categories>
| |
− | <Category Id="1">
| |
− | <Rooms>
| |
− | <Room Count="1" Id="1" ServiceId="1"/>
| |
− | <Room Count="1" Id="2" ServiceId="2"/>
| |
− | </Rooms>
| |
− | <TotalPrice Currency="RUB">74733.84</TotalPrice>
| |
− | </Category>
| |
− | </Categories>
| |
− | <Services>
| |
− | <Service Id="1" Status="OK">
| |
− | <Desc>Standard Twin</Desc>
| |
− | <Meal>Full Breakfast</Meal>
| |
− | <Price Currency="RUB">37366.92</Price>
| |
− | </Service>
| |
− | <Service Id="2" Status="OK">
| |
− | <Desc>Standard Twin</Desc>
| |
− | <Meal>Full Breakfast</Meal>
| |
− | <Price Currency="RUB">37366.92</Price>
| |
− | </Service>
| |
− | </Services>
| |
− | <Rooms>
| |
− | <Room Id="1" Type="TWIN"/>
| |
− | <Room Id="2" Type="SNGL"/>
| |
− | </Rooms>
| |
− | </Hotel>
| |
− | <Type>HOTELS</Type>
| |
− | <Status>waiting</Status>
| |
− | <Prices>
| |
− | <Price Currency="RUB">74733.84</Price>
| |
− | <Charges Currency="RUB">0</Charges>
| |
− | <Commission Currency="RUB">0</Commission>
| |
− | <Penalty Currency="RUB">0</Penalty>
| |
− | <TotalPrice Currency="RUB">74733.84</TotalPrice>
| |
− | </Prices>
| |
− | <Dates>
| |
− | <BookingDate>2013-08-01 19:49:56</BookingDate>
| |
− | <UpdateDate>2013-08-01 19:49:57</UpdateDate>
| |
− | <CancelDate xsi:nil="true"/>
| |
− | <PenaltyDate>2013-07-31 19:10:37</PenaltyDate>
| |
− | <AutoCancelDate>2013-08-01 19:51:56</AutoCancelDate>
| |
− | <ConfirmationLimit/>
| |
− | </Dates>
| |
− | <Statuses>
| |
− | <PaymentStatus>1</PaymentStatus>
| |
− | <DocumentStatus>1</DocumentStatus>
| |
− | <DeliveryStatus>1</DeliveryStatus>
| |
− | <InvoiceStatus>1</InvoiceStatus>
| |
− | <ProblemStatus>1</ProblemStatus>
| |
− | </Statuses>
| |
− | <Customer>
| |
− | <Person Number="1"/>
| |
− | </Customer>
| |
− | <Persons>
| |
− | <Person Number="1"/>
| |
− | <Person Number="2"/>
| |
− | <Person Number="3"/>
| |
− | </Persons>
| |
− | </Item>
| |
− | </Items>
| |
− | <Persons>
| |
− | <Person Number="1">
| |
− | <Lastname>IVANOV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>IVANOVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1811</Series>
| |
− | <Number>912219</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="2">
| |
− | <Lastname>PETROV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>MIKHAILOVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="3">
| |
− | <Lastname>SIDOROV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>SERGEEVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | </Persons>
| |
− | </Booking>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:bookingResponse>
| |
− | </SOAP-ENV:Body>
| |
− | </SOAP-ENV:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Структура ответа очень похожа на запрос. Выделяются те же основные элементы.
| |
− | | |
− | Элемент '''Booking'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Items
| |
− | | Обязательный. Содержит элемент(ы) Item.
| |
− | | Элемент Item
| |
− | |-
| |
− | | Persons
| |
− | | Обязательный. Здесь перечислены все клиенты заказа.
| |
− | | Элемент Person
| |
− | |}
| |
− | | |
− | В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
| |
− | | |
− | Элемент '''Item'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный.
| |
− | Номер заказа в системе Nemo.
| |
− | | Целое число
| |
− | |-
| |
− | | Type
| |
− | | Обязательный.
| |
− | Тип объекта бронирования.
| |
− | | HOTELS
| |
− | |-
| |
− | | Status
| |
− | | Обязательный. Статус объекта бронирования .
| |
− | | booked - забронирован
| |
− | cancelled - аннулирован
| |
− | pending confirmation - в процессе подтверждения
| |
− | pending – произошла попытка бронирования, которое не было завершено
| |
− | waiting – ожидается результат запроса на бронирование
| |
− | |-
| |
− | | Prices
| |
− | | Обязательный. Данные о ценах.
| |
− | | см. Элемент Prices
| |
− | |-
| |
− | | Dates
| |
− | | Обязательный. Данные о датах.
| |
− | | см. Элемент Dates
| |
− | |-
| |
− | | Statuses
| |
− | | Обязательный. Различные дополнительные статусы заказанной услуги.
| |
− | | см. Элемент Statuses
| |
− | |-
| |
− | | Persons
| |
− | | Обязательный. Содержит клиентов привязанных к услуге.
| |
− | | элементы Person
| |
− | |-
| |
− | | Hotel
| |
− | | Необязательный. Элемент с данными об отеле.
| |
− | | см. элемент Hotel (результат поиска отеля)
| |
− | |}
| |
− | | |
− | Информация о цене услуги вынесена в отдельную ветку:
| |
− | | |
− | Элемент '''Prices'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Price
| |
− | | Обязательный. Базовая цена услуги.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |-
| |
− | | Charges
| |
− | | Необязательный. Сумма дополнительных сборов.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |-
| |
− | | Commission
| |
− | | Необязательный. Сумма комиссий (вычитается из общей стоимости).
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |-
| |
− | | Penalty
| |
− | | Необязательный. Сумма штрафов.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |-
| |
− | | TotalPrice
| |
− | | Обязательный. Итоговая стоимость.
| |
− | = Price + Charges + Commission
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |}
| |
− | | |
− | Информация о датах услуги также вынесена в отдельную ветку:
| |
− | | |
− | Элемент '''Dates'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | BookingDate
| |
− | | Обязательный. Дата бронирования.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | UpdateDate
| |
− | | Необязательный. Дата обновления.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | CancelDate
| |
− | | Необязательный. Дата аннуляции.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | PenaltyDate
| |
− | | Необязательный. Дата наступления штрафов.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | AutoCancelDate
| |
− | | Необязательный. Дата автоаннулирования.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |}
| |
− | | |
− | Дополнительные статусы:
| |
− | | |
− | Элемент '''Statuses'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | PaymentStatus
| |
− | | Необязательный.
| |
− | Статус оплаты.
| |
− | | Целое число
| |
− | 1 - неоплачено
| |
− | 2 - частично оплачено
| |
− | 3 - оплачено
| |
− | |-
| |
− | | DocumentStatus
| |
− | | Необязательный.
| |
− | Статус ваучера.
| |
− | | Целое число
| |
− | 1 - документ не сформирован
| |
− | 2 - документ сформирован
| |
− | |-
| |
− | | DeliveryStatus
| |
− | | Необязательный.
| |
− | Статус доставки.
| |
− | | Целое число
| |
− | 1 - не доставлен
| |
− | 2 - доставлен
| |
− | |-
| |
− | | InvoiceStatus
| |
− | | Необязательный.
| |
− | Статус счета.
| |
− | | Целое число
| |
− | 1 - счет выставлен.
| |
− | 2 - счет не выставлен.
| |
− | |}
| |
− | | |
− | Информация о клиентах заказа полностью повторяет структуру запроса.
| |
− | </div>
| |
− | </div>
| |
− | | |
− | | |
− | | |
− | ==== Подтверждение бронирования ====
| |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Запрос =====
| |
− | <div class="mw-collapsible-content">
| |
− | Подтверждение бронирования заказа.
| |
− | | |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=ConfirmBooking
| |
− | | |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DConfirmBooking">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:confirm>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <BookingId>179547</BookingId>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:confirm>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Request'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | BookingID
| |
− | | Обязательный. Идентификатор заказа в системе Nemo.
| |
− | | Целое число
| |
− | |}
| |
− | | |
− | Элемент '''Source'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Ответ =====
| |
− | <div class="mw-collapsible-content">
| |
− | | |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DConfirmBooking">
| |
− | <SOAP-ENV:Body>
| |
− | <ns1:confirmResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <Books>
| |
− | <Book>
| |
− | <Id>179547</Id>
| |
− | <Status>booked</Status>
| |
− | </Book>
| |
− | </Books>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:confirmResponse>
| |
− | </SOAP-ENV:Body>
| |
− | </SOAP-ENV:Envelope>
| |
− | </syntaxhighlight>
| |
− | </div>
| |
− | </div>
| |
− | | |
− | | |
− | ==== Выгрузка актуальных данных по заказу(ам) ====
| |
− | Используется для экспорта бронирований и для обновления данных в локальной клиентской базе.
| |
− | | |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Export
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Запрос =====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
| |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DExport">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:export>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <Export>
| |
− | <Items>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Item Id="386621"/>
| |
− | </Items>
| |
− | </Export>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:export>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Item'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор заказа в системе Nemo.
| |
− | | Целое число
| |
− | |}
| |
− | | |
− | Элемент '''Source'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Ответ =====
| |
− | <div class="mw-collapsible-content">
| |
− | Ответ содержит элементы результатов бронирований. См. описание выше.
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
| |
− | xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DExport"
| |
− | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
| |
− | <SOAP-ENV:Body>
| |
− | <ns1:exportResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <Export>
| |
− | <Items>
| |
− | <Item Id="386621">
| |
− | <Hotel Id="1872666">
| |
− | <Supplier>GTA</Supplier>
| |
− | <CityId>22046</CityId>
| |
− | <DateBegin>2013-10-15</DateBegin>
| |
− | <DateEnd>2013-10-18</DateEnd>
| |
− | <CacheId>1872666</CacheId>
| |
− | <Name>ADLON KEMPINSKI</Name>
| |
− | <Categories>
| |
− | <Category Id="1">
| |
− | <Rooms>
| |
− | <Room Count="1" Id="1" ServiceId="1"/>
| |
− | <Room Count="1" Id="2" ServiceId="2"/>
| |
− | </Rooms>
| |
− | <TotalPrice Currency="RUB">74733.84</TotalPrice>
| |
− | </Category>
| |
− | </Categories>
| |
− | <Services>
| |
− | <Service Id="1" Status="OK">
| |
− | <Desc>Standard Twin</Desc>
| |
− | <Meal>Full Breakfast</Meal>
| |
− | <Price Currency="RUB">37366.92</Price>
| |
− | </Service>
| |
− | <Service Id="2" Status="OK">
| |
− | <Desc>Standard Twin</Desc>
| |
− | <Meal>Full Breakfast</Meal>
| |
− | <Price Currency="RUB">37366.92</Price>
| |
− | </Service>
| |
− | </Services>
| |
− | <Rooms>
| |
− | <Room Id="1" Type="TWIN"/>
| |
− | <Room Id="2" Type="SNGL"/>
| |
− | </Rooms>
| |
− | </Hotel>
| |
− | <Type>HOTELS</Type>
| |
− | <Status>waiting</Status>
| |
− | <Prices>
| |
− | <Price Currency="RUB">74733.84</Price>
| |
− | <Charges Currency="RUB">0</Charges>
| |
− | <Commission Currency="RUB">0</Commission>
| |
− | <Penalty Currency="RUB">0</Penalty>
| |
− | <TotalPrice Currency="RUB">74733.84</TotalPrice>
| |
− | </Prices>
| |
− | <Dates>
| |
− | <BookingDate>2013-08-01 20:21:47</BookingDate>
| |
− | <UpdateDate>2013-08-01 20:35:01</UpdateDate>
| |
− | <CancelDate xsi:nil="true"/>
| |
− | <PenaltyDate>2013-07-31 19:10:37</PenaltyDate>
| |
− | <AutoCancelDate>2013-08-01 20:23:47</AutoCancelDate>
| |
− | <ConfirmationLimit/>
| |
− | </Dates>
| |
− | <Statuses>
| |
− | <PaymentStatus>1</PaymentStatus>
| |
− | <DocumentStatus>1</DocumentStatus>
| |
− | <DeliveryStatus>1</DeliveryStatus>
| |
− | <InvoiceStatus>1</InvoiceStatus>
| |
− | <ProblemStatus>1</ProblemStatus>
| |
− | </Statuses>
| |
− | <Customer>
| |
− | <Person Number="1"/>
| |
− | </Customer>
| |
− | <Persons>
| |
− | <Person Number="1"/>
| |
− | <Person Number="2"/>
| |
− | <Person Number="3"/>
| |
− | </Persons>
| |
− | </Item>
| |
− | </Items>
| |
− | <Persons>
| |
− | <Person Number="1">
| |
− | <Lastname>IVANOV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>IVANOVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1811</Series>
| |
− | <Number>912219</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="2">
| |
− | <Lastname>PETROV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>MIKHAILOVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="3">
| |
− | <Lastname>SIDOROV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>SERGEEVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | </Persons>
| |
− | </Export>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:exportResponse>
| |
− | </SOAP-ENV:Body>
| |
− | </SOAP-ENV:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Формат ответа аналогичен результату бронирования.
| |
− | </div>
| |
− | </div>
| |
− | | |
− | | |
− | | |
− | ==== Аннуляция заказа ====
| |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CancelBooking
| |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Запрос =====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
| |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCancelBooking">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:cancel>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <CancelBooking>
| |
− | <Item Id="386621"/>
| |
− | </CancelBooking>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:cancel>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Item'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор заказа в системе Nemo.
| |
− | | Целое число
| |
− | |}
| |
− | | |
− | Элемент '''Source'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div>
| |
− | | |
− | ===== Ответ =====
| |
− | см. результаты бронирования.
| |
− | | |
− | ==Выгрузки статистики продаж через API== | |
| | | |
| '''Метапоисковая система''' (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем. | | '''Метапоисковая система''' (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем. |
| | | |
− | Необходимо убедиться, что API запросы на поиск отправляются на доменное имя, указанное для агентства (субагента) в разделе '''Администрирование''' -> '''Настройки агентства'''
| + | В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) <u>за определенный период бронирования заказов</u> в виде файла данных в формате XML. |
− | | |
− | | |
− | ===== Запрос =====
| |
− | Пример запроса
| |
− | <syntaxhighlight lang="text" enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | http://host/index.php?go=settings/download_metasearch_stat&date1=2012-05-01&date2=2012-06-01&partner=aviasales&password=secret
| |
− | </syntaxhighlight>
| |
− | | |
− | Параметры запроса
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" | Параметр запроса
| |
− | ! scope="col" | Описание
| |
− | |-
| |
− | | date1
| |
− | | YYYY-MM-DD дата.
| |
− | |-
| |
− | | date2
| |
− | | YYYY-MM-DD дата.
| |
− | |-
| |
− | | partner
| |
− | | Идентификатор партнёра - алиас источника переходов модуля метрики.
| |
− | |-
| |
− | | password
| |
− | | Пароль партнёра - пароль источника переходов модуля метрики.
| |
− | |}
| |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
| |
− | ===== Ответ =====
| |
− | <div class="mw-collapsible-content"> | |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <bookings>
| |
− | <booking>
| |
− | <nemo_id>123123</nemo_id>
| |
− | <id>JHKHVR</id>
| |
− | <created_at>2012-05-02 00:02:01</created_at>
| |
− | <marker>1232:1222.t</marker>
| |
− | <price>1199</price>
| |
− | <profit>200</profit>
| |
− | <currency>RUB</currency>
| |
− | <state>PAID</state>
| |
− | <validatingCarrier>UN</validatingCarrier>
| |
− | <segment>
| |
− | <flight>
| |
− | <operatingCarrier>UN</operatingCarrier>
| |
− | <number>3</number>
| |
− | <departure>DME</departure>
| |
− | <departureDate>2012-09-25</departureDate>
| |
− | <departureTime>09:55</departureTime>
| |
− | <arrival>LED</arrival>
| |
− | <arrivalDate>2012-09-25</arrivalDate>
| |
− | <arrivalTime>11:10</arrivalTime>
| |
− | <equipment>735</equipment>
| |
− | <cabin>Y</cabin>
| |
− | </flight>
| |
− | </segment>
| |
− | <adults>1</adults>
| |
− | <children>0</children>
| |
− | <infants>0</infants>
| |
− | </booking>
| |
− | ...more bookings...
| |
− | </bookings>
| |
− | </syntaxhighlight>
| |
| | | |
− | '''Описание параметров'''
| + | Можно получить список заказов с их статусом (забронирован, выписан, аннулирован), сделанных через метапоисковую систему. |
| | | |
− | <syntaxhighlight lang="text" enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| + | Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками [[Взаимодействие с метапоисковиками]] |
− | /bookings - корневой элемент содержащий информацию о бронированиях.
| |
− | //booking - информации об одном бронировании.
| |
− | nemo_id - ид заказа в системе Немо.
| |
− | id - уникальный идентификатор бронирования в системе поставщика (локатор).
| |
− | created_at - YYYY-MM-DD HH:MM время и дата бронирования в таймзоне UTC; если даты бронирования нет, то дата начала создания заказа.
| |
− | marker - маркер переданные в GET параметре marker при переходе на бронирование.
| |
− | price - цена билетов.
| |
− | profit - прибыль партнёра от данного бронирования.
| |
− | currency - валюта в которой указаны прибыль и цена билета.
| |
− | state - состояние брони. Допустимые значения PROCESSING/PAID/CANCELLED.
| |
− | segment - информация о перелётах.
| |
− | validatingCarrier - информация о бронировании.
| |
− | //flight - информация об одном перелёте.
| |
− | operatingCarrier - код авиакомпании осуществляющей рейс.
| |
− | number - номер рейса.
| |
− | departure - IATA код аэропорта отправления.
| |
− | departureDate - дата отправления, 'YYYY-MM-DD', местное время.
| |
− | departureTime - время отправления, 'HH:MM', местное время.
| |
− | arrival - IATA код аэропорта назначения.
| |
− | arrivalDate - дата прибытия, 'YYYY-MM-DD', местное время.
| |
− | arrivalTime - время прибытия, 'HH:MM', местное время.
| |
− | equipment - IATA транспортного средства осуществляющего перевозку.
| |
− | cabin - класс перелёта. "Y" - эконом , "C" - бизнес, "F" - первый.
| |
− | adults - кол-во взрослых пассажиров.
| |
− | children - кол-во детей.
| |
− | infants - кол-во детей до 2 лет.
| |
− | </syntaxhighlight>
| |
− | </div>
| |
− | </div>
| |
− | | |
− | Время и дата бронирования '''''created_at''''' передается в таймзоне UTC+4.
| |
− | | |
− | Состояние брони '''''state''''' может принимать значения:
| |
− | * '''''PROCESSING''''' - забронирован;
| |
− | * '''''PAID''''' - выписан;
| |
− | * '''''CANCELLED''''' - аннулирован (по любым причинам).
| |
− | | |
− | Прибыль партнёра '''''profit''''' от данного бронирования в формате 00.99 (через точку).
| |
− | Размер прибыли партнера устанавливается для конкретного источника трафика в Модуле метрики и считается как процент от стоимости оплаченного заказа, включая комиссию платежного шлюза и апсейловые продажи. В последующем расчет прибыли может измениться. При возврате авиабилетов сумма ранее засчитанная как прибыль партнера (метапоисковой системы) должна подставляться с минусом в данном периоде.
| |
− | | |
− | Количество детей до 2 лет '''''infants''''' относится только к младенцам без места. Количество младенцев с местом объединяются с количеством детей до 12 лет '''''children'''''.
| |
| | | |
| ==Выгрузка информации о заказах == | | ==Выгрузка информации о заказах == |
− | '''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. | + | '''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. |
− | === Процесс выгрузки ===
| + | Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]] |
− | Схематично процесс выгрузки заказов представлен на блок-схеме.
| |
− | | |
− | [[Файл:Export.png]]
| |
− | === Статусы выгрузки заказа ===
| |
− | Коды статусов выгрузки заказа соответствуют кодам состояния HTTP. Фактически указывается последний полученный код состояния HTTP, полученный при выгрузке данных по адресу, указанному в настройках выгрузки. Коды относятся к серверу, на который происходит выгрузка заказов.
| |
− | | |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="20" | Код
| |
− | ! scope="col" width="300" | Описание
| |
− | |-
| |
− | | 0
| |
− | | Неизвестный ответ. Адрес для выгрузки не доступен.
| |
− | |-
| |
− | | 200
| |
− | | OK — успешный запрос.
| |
− | |-
| |
− | | 301
| |
− | | Запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка.
| |
− | |-
| |
− | | 403
| |
− | | Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу.
| |
− | |-
| |
− | | 404
| |
− | | Сервер понял запрос, но не нашёл соответствующего ресурса по указанному URI.
| |
− | |-
| |
− | | 422
| |
− | | Unprocessable Entity — сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом.
| |
− | |-
| |
− | | 500
| |
− | | Любая внутренняя ошибка сервера.
| |
− | |}
| |
− | | |
− | === Выгрузка заказа для компонента «Авиабилеты»===
| |
− | Для компонента '''«Авиабилеты»''' доступна выгрузка заказов в форматах Nemo и/или Софи (при включенном модуле '''«Выгрузка заказов Софи»).
| |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ==== Формат Nemo ====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <PNR>
| |
− | <Common>
| |
− | <id>277749</id>
| |
− | <Type>FLIGHTS</Type>
| |
− | <Service>SABRE</Service>
| |
− | <Locator>SQLJNK</Locator>
| |
− | <ExternalId>1234567</ExternalId> <!-- Внешний идентификатор -->
| |
− | <Stamp>123456789</Stamp>
| |
− | <UtmSource>100</UtmSource> <!-- Источник перехода -->
| |
− | <BeginDateTime>2014.12.18-10:45</BeginDateTime>
| |
− | <EndDateTime>2014.12.25-16:40</EndDateTime>
| |
− | <TicketingDateTime>2014.12.09-15:02</TicketingDateTime>
| |
− | <VoidDateTime/>
| |
− | <TotalPrice>
| |
− | <Amount>10773.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalPrice>
| |
− | <UserId>2964</UserId>
| |
− | <EEUserId/>
| |
− | <UserLogin>userLogin</UserLogin>
| |
− | <GroupId>2963</GroupId>
| |
− | <CompanyId>2963</CompanyId>
| |
− | <UserStatus>Менеджер</UserStatus>
| |
− | <DateCreate>2014.12.09-14:59</DateCreate>
| |
− | <ExtServices> <!-- Дополнительные услуги -->
| |
− | <ExtService>
| |
− | <Type>AeroExpress</Type>
| |
− | <Price>
| |
− | <Amount>1440</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Price>
| |
− | </ExtService>
| |
− | <ExtService>
| |
− | <Type>AlphaInsurance</Type>
| |
− | <Price>
| |
− | <Amount>480</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Price>
| |
− | <Insurances>
| |
− | <Insurance>
| |
− | <Number>Z694.198TEST.2765282</Number>
| |
− | <Fio>IVANOV IVAN</Fio>
| |
− | </Insurance>
| |
− | <Insurance>
| |
− | <Number>Z694.198TEST.2765283</Number>
| |
− | <Fio>PETROV PETR</Fio>
| |
− | </Insurance>
| |
− | </Insurances>
| |
− | </ExtService>
| |
− | </ExtServices>
| |
− | </Common>
| |
− | <Payment>
| |
− | <Title>Testpay</Title>
| |
− | <Method>Testpay</Method>
| |
− | <BillingId>117607091</BillingId>
| |
− | <Date>2014-12-09 15:00:39</Date>
| |
− | <CreateDate>2014-12-09 15:00:34</CreateDate>
| |
− | <Status>ticket</Status>
| |
− | <PenaltyDate/>
| |
− | <Timelimit>2014-12-10 14:59:55</Timelimit>
| |
− | <PaymentCharge> <!-- Сбор платежного шлюза -->
| |
− | <Amount>313.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </PaymentCharge>
| |
− | <Charge> <!-- Общий сбор минус сбор платежного шлюза -->
| |
− | <Amount>1920</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Charge>
| |
− | <BaseFare> <!-- Тариф -->
| |
− | <Amount>1600</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </BaseFare>
| |
− | <Book> <!-- Тариф плюс таксы -->
| |
− | <Amount>8540</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Book>
| |
− | <Penalty>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Penalty>
| |
− | <Total>
| |
− | <Amount>10773.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Total>
| |
− | <Commission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Commission>
| |
− | <PaidValue>
| |
− | <Amount>10773.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </PaidValue>
| |
− | </Payment>
| |
− | <Client>
| |
− | <LastName/>
| |
− | <Name>SIDOROV PETR</Name>
| |
− | <MiddleName/>
| |
− | <Number/>
| |
− | <Birth/>
| |
− | <Email>mail@host.com</Email>
| |
− | <Phone>+74950000000</Phone>
| |
− | </Client>
| |
− | <PassengersCount>2</PassengersCount>
| |
− | <Passengers>
| |
− | <Passenger>
| |
− | <passenger_type>ADT</passenger_type>
| |
− | <lastname>IVANOV</lastname>
| |
− | <name>IVAN</name>
| |
− | <gender>F</gender>
| |
− | <date_of_birth>12.12.1987</date_of_birth>
| |
− | <doc_type>C</doc_type>
| |
− | <passport_number>1234567890</passport_number>
| |
− | <currency_of_passport>24.03.2023</currency_of_passport>
| |
− | <middlename/>
| |
− | <passenger_id>37667</passenger_id>
| |
− | <nationality>RU</nationality>
| |
− | <email>mail@host.com</email>
| |
− | <Tickets>
| |
− | <Active>0</Active>
| |
− | <Seg/>
| |
− | <Num>5553984070962</Num>
| |
− | <Date>2014-12-09 16:01:00</Date>
| |
− | </Tickets>
| |
− | <Tickets>
| |
− | <Active>1</Active>
| |
− | <Seg/>
| |
− | <Num>5553984070964</Num>
| |
− | <Date>2014-12-09 16:03:00</Date>
| |
− | </Tickets>
| |
− | <PriceInfo>
| |
− | <BaseFare>
| |
− | <Amount>800</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </BaseFare>
| |
− | <TotalFare>
| |
− | <Amount>4270</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalFare>
| |
− | <Commission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Commission>
| |
− | <AirlineCommission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </AirlineCommission>
| |
− | </PriceInfo>
| |
− | </Passenger>
| |
− | <Passenger>
| |
− | <passenger_type>ADT</passenger_type>
| |
− | <doc_type>C</doc_type>
| |
− | <middlename/>
| |
− | <passenger_id>37668</passenger_id>
| |
− | <lastname>PETROV</lastname>
| |
− | <name>PETR</name>
| |
− | <gender>M</gender>
| |
− | <date_of_birth>20.12.1984</date_of_birth>
| |
− | <passport_number>1234567899</passport_number>
| |
− | <currency_of_passport>20.12.2029</currency_of_passport>
| |
− | <nationality>RU</nationality>
| |
− | <email>mail@host.com</email>
| |
− | <Tickets>
| |
− | <Active>0</Active>
| |
− | <Seg/>
| |
− | <Num>5553984070963</Num>
| |
− | <Date>2014-12-09 16:01:00</Date>
| |
− | </Tickets>
| |
− | <Tickets>
| |
− | <Active>1</Active>
| |
− | <Seg/>
| |
− | <Num>5553984070965</Num>
| |
− | <Date>2014-12-09 16:03:00</Date>
| |
− | </Tickets>
| |
− | <PriceInfo>
| |
− | <BaseFare>
| |
− | <Amount>800</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </BaseFare>
| |
− | <TotalFare>
| |
− | <Amount>4270</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalFare>
| |
− | <Commission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Commission>
| |
− | <AirlineCommission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </AirlineCommission>
| |
− | </PriceInfo>
| |
− | </Passenger>
| |
− | </Passengers>
| |
− | <FlightType>Внутренний</FlightType>
| |
− | <OrderInfo>
| |
− | <Info>
| |
− | <Company>Аэрофлот - Российские авиалинии</Company>
| |
− | <CompanyCode>SU</CompanyCode>
| |
− | <OperatingCompanyCode>FV</OperatingCompanyCode>
| |
− | <StartDate>2014.12.18</StartDate>
| |
− | <StartTime>10:45</StartTime>
| |
− | <StartDayOfWeek>Thursday</StartDayOfWeek>
| |
− | <FlightNumber>6128 (FV6128)</FlightNumber>
| |
− | <StartAirportCode>VKO</StartAirportCode>
| |
− | <StartAirportName>Внуково, Москва</StartAirportName>
| |
− | <StartCountry>Россия</StartCountry>
| |
− | <StartCountryCode>RU</StartCountryCode>
| |
− | <EndAirportCode>LED</EndAirportCode>
| |
− | <EndAirportName>Санкт-Петербург, Пулково</EndAirportName>
| |
− | <EndCountry>Россия</EndCountry>
| |
− | <EndCountryCode>RU</EndCountryCode>
| |
− | <Time>1:30</Time>
| |
− | <Equip>
| |
− | <Name>Airbus 319</Name>
| |
− | <Type>319</Type>
| |
− | </Equip>
| |
− | <ClassType>economy</ClassType>
| |
− | <ClassTypeCode>R</ClassTypeCode>
| |
− | <Meal/>
| |
− | </Info>
| |
− | <Info>
| |
− | <Company>Аэрофлот - Российские авиалинии</Company>
| |
− | <CompanyCode>SU</CompanyCode>
| |
− | <OperatingCompanyCode>FV</OperatingCompanyCode>
| |
− | <StartDate>2014.12.25</StartDate>
| |
− | <StartTime>15:10</StartTime>
| |
− | <StartDayOfWeek>Thursday</StartDayOfWeek>
| |
− | <FlightNumber>6153 (FV6153)</FlightNumber>
| |
− | <StartAirportCode>LED</StartAirportCode>
| |
− | <StartAirportName>Санкт-Петербург, Пулково</StartAirportName>
| |
− | <StartCountry>Россия</StartCountry>
| |
− | <StartCountryCode>RU</StartCountryCode>
| |
− | <EndAirportCode>VKO</EndAirportCode>
| |
− | <EndAirportName>Внуково, Москва</EndAirportName>
| |
− | <EndCountry>Россия</EndCountry>
| |
− | <EndCountryCode>RU</EndCountryCode>
| |
− | <Time>1:30</Time>
| |
− | <Equip>
| |
− | <Name>Airbus 319</Name>
| |
− | <Type>319</Type>
| |
− | </Equip>
| |
− | <ClassType>economy</ClassType>
| |
− | <ClassTypeCode>R</ClassTypeCode>
| |
− | <Meal/>
| |
− | </Info>
| |
− | </OrderInfo>
| |
− | <Remarks>Debit</Remarks>
| |
− | </PNR>
| |
− | </syntaxhighlight>
| |
− | | |
− | Ремарка ''<Remarks>Debit</Remarks>'' является не обязательной, означает что заказ был оплачен с помощью способа оплаты «Депозит»;
| |
− | если же заказ был оплачен с использованием депозитного кредита, и депозит ушел в минус даже на 1 руб., то будет ''<Remarks>Credit</Remarks>''.
| |
− | | |
− | Элемент ''<TotalFare>'' возвращает стоимость уже оплаченного заказа. Если же заказ забронирован, но не оплачен, то значение будет 0 RUB.
| |
− | | |
− | Элемент ''<CreateDate>'' в зависимости от состояния брони возвращает время окончания бронирования, если бронирование было завершено, иначе возвращает время создания брони.
| |
− | | |
− | Формат поддерживает возможность передачи нескольких номеров электронных билетов на одного пассажира (в том числе войдированных и аннулированных).
| |
− | </div>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | | |
− | ==== Формат Софи ====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | | |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <order_snapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
| |
− | <header currency="RUB" time_gmt="2015-01-13 08:10:54" time="2015-01-13 12:10:54" ord_id="279307" corp_ord_id="MKQFBZ" site="2806"/>
| |
− | <customer email="cepogilixe@lackmail.net" phone="XXXX9048" name="" corp_code="2806"/>
| |
− | <products>
| |
− | <product>
| |
− | <!--@stamp - валидатор. Парсится из заказа(Сирена и Галилео). Если получить из ГДС не удалось, то передаётся валидатор, настроенный в реквизитах подключения к ГДС.-->
| |
− | <air_ticket_prod prod_id="0" psg_type="A" title="Москва - Ленинград" taxes="1776" fare="400" origin="MOW" service_fee="100" form_owner="SU" validating_carrier="SU" destination="LED" comission="0.4" stamp="92354802">
| |
− | <air_seg segment_id="0" carrier="SU" flight_number="6128" op_carrier="FV" departure_datetime="2015-01-16 10:45:00" arrival_datetime="2015-01-16 12:15:00" departure_airport="VKO" arrival_airport="LED" fare_basis="RPROWRF"/>
| |
− | </air_ticket_prod>
| |
− | </product>
| |
− | <product>
| |
− | <ral_ticket_prod rsrv_id="2496500" prod_id="200" origin="Киевский вокзал" destination="Внуково, Москва" departure_datetime="2015-01-16 06:45:00" cartype="standart" fare="360"/>
| |
− | </product>
| |
− | <product>
| |
− | <service_prod prod_id="300" provider_type="INSURANCE" provider_id="AlphaInsurance" offer_type="alpha_insurance" ext_id="Z694.198TEST.2774397" price="100" count="1" psgr_id="0"/>
| |
− | </product>
| |
− | <product>
| |
− | <payment_prod price="123"/>
| |
− | </product>
| |
− | </products>
| |
− | <reservations>
| |
− | <reservation rsrv_id="279307" crs="SABRE" rloc="MKQFBZ"/>
| |
− | <reservation rsrv_id="2496500" crs="AeroExpress" rloc="218812"/>
| |
− | </reservations>
| |
− | <passengers>
| |
− | <passenger doc_number="1234567890" psgr_id="0" doc_country="RU" psgr_type="A" doc_type="C" birth_date="1990-01-04" name="IVAN" gender="M" first_name="IVANOV"/>
| |
− | </passengers>
| |
− | <travel_docs>
| |
− | <travel_doc>
| |
− | <air_ticket_doc tkt_oper="TKT" tkt_number="5555871998698" tkt_date="2015-01-13 12:10:50" prod_id="0" psgr_id="0" issuingAgent="2807"/>
| |
− | </travel_doc>
| |
− | <travel_doc>
| |
− | <aex_doc rsrv_id="2496500" prod_id="200" psgr_id="0" tkt_oper="TKT" tkt_date="2015-01-13 12:10:54" tkt_number="394612"/>
| |
− | </travel_doc>
| |
− | <travel_doc>
| |
− | <insur_doc main_prod_id="0" prod_id="300" psgr_id="0" tkt_oper="TKT" tkt_date="2015-01-13 12:10:54" tkt_number="Z694.198TEST.2774397"/>
| |
− | </travel_doc>
| |
− | </travel_docs>
| |
− | <payments>
| |
− | <payment pay_id="117607839" pay_oper="PAY" pay_time="2015-01-13 12:09:52" psp_code="024" psp_name="Rapida" psp_pay_id="" pay_system="ES" amount="2859" fop="CA"/>
| |
− | </payments>
| |
− | </order_snapshot>
| |
− | </syntaxhighlight>
| |
− | | |
− | *service_fee — сбор агентский (только сервисный сбор, '''не включает''' в себя сбор за эквайринг).
| |
− | *comission - комиссия АК
| |
− | *stamp - код Валидатора в ПСС, берется из настроек Немо, если в настройках он не указан, то не передается.
| |
− | *ord_id — идентификатор заказа в НЕМО
| |
− | *corp_ord_id — PNR из ГДС
| |
− | *site — идентификатор агентства в Немо
| |
− | *payment pay_id — номер биллинга Немо.
| |
− | *pay_system — код платежной системы
| |
− | **SB — для сбербанка
| |
− | **ES — для Рапиды
| |
− | **UNT — для Юнителлера
| |
− | *cardholder — держатель карты.
| |
− | *expire_date — срок действия карты, у тех ПШ, что не приходит в ответе — пустой.
| |
− | *card_number — номер карты, в формате: 415481XXXXXX1734
| |
− | *approval_code — код подтверждения.
| |
− | *payment_prod price — сбор за эквайринг.
| |
− | *main_prod_id - ID основного продукта (авиабилета).
| |
− | *tkt_number - номер полиса для пассажира;
| |
− | *tkt_date - дата и время операции;
| |
− | *tkt_oper - тип операции (TKT/REF).
| |
− | *provider_type - тип поставщика (INSURANCE).
| |
− | *provider_id - AlphaInsurance;
| |
− | *offer_type - название полиса;
| |
− | *price - цена полиса для пассажира;
| |
− | *rloc - номер заказа у поставщика.
| |
− | | |
− | </div>
| |
− | </div>
| |
− | | |
− | === Выгрузка заказа для компонента «Отели» ===
| |
− | Для компонента '''«Отели»''' доступна выгрузка заказов в формате Nemo.
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ==== Формат Nemo ====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <PNR>
| |
− | <Common>
| |
− | <id>263462</id>
| |
− | <Type>HOTELS</Type>
| |
− | <Service>ACADEM</Service>
| |
− | <Locator>3028655</Locator>
| |
− | <BeginDateTime>2014.04.15-00:00</BeginDateTime>
| |
− | <EndDateTime>2014.04.16-00:00</EndDateTime>
| |
− | <TotalPrice>
| |
− | <Amount>1950</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalPrice>
| |
− | <UserId>123</UserId>
| |
− | <EEUserId />
| |
− | <UserLogin>userLogin</UserLogin>
| |
− | <GroupId>332</GroupId>
| |
− | <UserStatus>Менеджер</UserStatus>
| |
− | <DateCreate>2014.03.21-16:11</DateCreate>
| |
− | </Common>
| |
− | <Payment>
| |
− | <Status>booked</Status>
| |
− | <PenaltyDate>2014.04.13-00:00</PenaltyDate>
| |
− | <Timelimit>2014-04-13 00:00:00</Timelimit>
| |
− | <Charge>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Charge>
| |
− | <Book>
| |
− | <Amount>1950</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Book>
| |
− | <Penalty>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Penalty>
| |
− | <Total>
| |
− | <Amount>1950</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Total>
| |
− | <Commission>
| |
− | <Amount>112</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Commission>
| |
− | <PaidValue>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </PaidValue>
| |
− | </Payment>
| |
− | <Client>
| |
− | <LastName>Сидоров</LastName>
| |
− | <Name>Владимир</Name>
| |
− | <MiddleName>Константинович</MiddleName>
| |
− | <Number>1806326598</Number>
| |
− | <Birth>1987-05-20</Birth>
| |
− | <Email>mail@host.com</Email>
| |
− | <Phone>+79871234567</Phone>
| |
− | </Client>
| |
− | <Passengers>
| |
− | <Passenger>
| |
− | <nationality>RU</nationality>
| |
− | <lastname>IVANOV</lastname>
| |
− | <name>IVAN</name>
| |
− | </Passenger>
| |
− | </Passengers>
| |
− | <Info>
| |
− | <Name>Интурист</Name>
| |
− | <City>
| |
− | <Code>34</Code>
| |
− | <Name>Великий Новгород</Name>
| |
− | </City>
| |
− | <Location />
| |
− | <StarRating>3</StarRating>
| |
− | <Days>2</Days>
| |
− | <Nights>1</Nights>
| |
− | <CheckInDate>2014.04.15</CheckInDate>
| |
− | <CheckOutDate>2014.04.16</CheckOutDate>
| |
− | <CheckInTime>14:00</CheckInTime>
| |
− | <CheckOutTime>12:00</CheckOutTime>
| |
− | <OnRequest>false</OnRequest>
| |
− | </Info>
| |
− | <Rooms>
| |
− | <Room>
| |
− | <Name>Двухместный стандарт (две кровати)</Name>
| |
− | <Type>SNGL</Type>
| |
− | <FareId>1</FareId>
| |
− | </Room>
| |
− | </Rooms>
| |
− | <Fares>
| |
− | <Fare>
| |
− | <Id>1</Id>
| |
− | <Price>
| |
− | <Amount>1950</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Price>
| |
− | <Meals>Завтрак "Шведский стол",Отсутствует</Meals>
| |
− | <Description>Одноместный</Description>
| |
− | </Fare>
| |
− | </Fares>
| |
− | <CancelCharges>
| |
− | <Charge>
| |
− | <DateFrom>2014.04.13-00:00</DateFrom>
| |
− | <DateTo>2014.04.15-00:00</DateTo>
| |
− | <Amount>1488</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Charge>
| |
− | </CancelCharges>
| |
− | <ModifyCharges />
| |
− | <ModificationMethods>
| |
− | <Method>MOD_PASS_NAMES</Method>
| |
− | <Method>MOD_DATES</Method>
| |
− | </ModificationMethods>
| |
− | </PNR>
| |
− | </syntaxhighlight>
| |
− | </div>
| |
− | </div>
| |
− | | |
− | === Выгрузка заказа для компонента «ЖД» ===
| |
− | Для компонента '''«ЖД»''' доступна выгрузка заказов в формате Nemo.
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ==== Формат Nemo ====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <PNR>
| |
− | <Common>
| |
− | <id>123456</id>
| |
− | <Type>TRAINS</Type>
| |
− | <Service>UFS</Service>
| |
− | <Locator>64345987</Locator>
| |
− | <BeginDateTime>2014.04.26-00:15</BeginDateTime>
| |
− | <EndDateTime>2014.04.26-13:33</EndDateTime>
| |
− | <TicketingDateTime>2014.06.06-15:10</TicketingDateTime>
| |
− | <VoidDateTime>2014.06.07-14:19</VoidDateTime>
| |
− | <TotalPrice>
| |
− | <Amount>57505.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalPrice>
| |
− | <UserId>123</UserId>
| |
− | <EEUserId />
| |
− | <UserLogin>mikhalevtur</UserLogin>
| |
− | <GroupId>122</GroupId>
| |
− | <UserStatus>Менеджер</UserStatus>
| |
− | <DateCreate>2014.04.24-15:03</DateCreate>
| |
− | </Common>
| |
− | <Payment>
| |
− | <Title>Testpay</Title>
| |
− | <Method>Testpay</Method>
| |
− | <BillingId>117603370</BillingId>
| |
− | <Date>2014-04-24 15:10:12</Date>
| |
− | <CreateDate>2014-06-06 15:10:00</CreateDate>
| |
− | <Status>cancelled</Status>
| |
− | <PenaltyDate />
| |
− | <Timelimit>2014-04-24 15:18:01</Timelimit>
| |
− | <Charge>
| |
− | <Amount>52278</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Charge>
| |
− | <Book>
| |
− | <Amount>5227.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Book>
| |
− | <Penalty>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Penalty>
| |
− | <TotalAgencyChargeForRefund>
| |
− | <Amount>100</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalAgencyChargeForRefund>
| |
− | <Total>
| |
− | <Amount>57505.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Total>
| |
− | <PaidValue>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </PaidValue>
| |
− | </Payment>
| |
− | <Client>
| |
− | <LastName>Сидоров</LastName>
| |
− | <Name>Владимир</Name>
| |
− | <MiddleName>Константинович</MiddleName>
| |
− | <Number>1806326598</Number>
| |
− | <Birth>1987-05-20</Birth>
| |
− | <Email>mail@host.com</Email>
| |
− | <Phone>+79871234567</Phone>
| |
− | </Client>
| |
− | <Passengers>
| |
− | <Passenger>
| |
− | <name>Владимир</name>
| |
− | <middlename>Константинович</middlename>
| |
− | <phone>
| |
− | <country />
| |
− | <city />
| |
− | <number>+79271031610</number>
| |
− | <expansion />
| |
− | </phone>
| |
− | <email>mlsdsar@gmail.com</email>
| |
− | <nationality>RU</nationality>
| |
− | <passenger_type>ADT</passenger_type>
| |
− | <lastname>Сидоров</lastname>
| |
− | <doc_type>C</doc_type>
| |
− | <passport_number>1806326598</passport_number>
| |
− | <passenger_id>1</passenger_id>
| |
− | <gender>M</gender>
| |
− | <date_of_birth>20.04.1984</date_of_birth>
| |
− | <TotalPrice>28752.9</TotalPrice>
| |
− | <FarePrice>2613.9</FarePrice>
| |
− | <Charge>26139</Charge>
| |
− | <RefundMoney>8649.3</RefundMoney>
| |
− | <ChargeForRefund>100</ChargeForRefund>
| |
− | <TicketNumber>74944708487545</TicketNumber>
| |
− | <SeatNumber>033</SeatNumber>
| |
− | <HasSeat>true</HasSeat>
| |
− | </Passenger>
| |
− | <Passenger>
| |
− | <nationality>RU</nationality>
| |
− | <middlename>Константинович</middlename>
| |
− | <passenger_type>ADT</passenger_type>
| |
− | <lastname>Сидоров</lastname>
| |
− | <name>Иван</name>
| |
− | <doc_type>C</doc_type>
| |
− | <passport_number>1806326554</passport_number>
| |
− | <passenger_id>2</passenger_id>
| |
− | <gender>M</gender>
| |
− | <date_of_birth>05.04.1984</date_of_birth>
| |
− | <TotalPrice>28752.9</TotalPrice>
| |
− | <FarePrice>2613.9</FarePrice>
| |
− | <Charge>26139</Charge>
| |
− | <TicketNumber />
| |
− | <SeatNumber>034</SeatNumber>
| |
− | <HasSeat>true</HasSeat>
| |
− | </Passenger>
| |
− | </Passengers>
| |
− | <Info>
| |
− | <trainNumber>098ХА</trainNumber>
| |
− | <trainName />
| |
− | <departureStation>МОСКВА КАЗ</departureStation>
| |
− | <arrivalStation>КАЗАНЬ ПАС</arrivalStation>
| |
− | <trainCategory>1</trainCategory>
| |
− | <beginStation>Москва</beginStation>
| |
− | <endStation>Казань</endStation>
| |
− | <startDate>2014-04-26 00:15:00</startDate>
| |
− | <endDate>2014-04-26 13:33:00</endDate>
| |
− | <timeInRoad>47880</timeInRoad>
| |
− | <carNumber>8</carNumber>
| |
− | <carType>4</carType>
| |
− | <choosenSeats>
| |
− | <type>
| |
− | <lower>1</lower>
| |
− | </type>
| |
− | <type>
| |
− | <upper>1</upper>
| |
− | </type>
| |
− | <type>
| |
− | <lower_side>0</lower_side>
| |
− | </type>
| |
− | <type>
| |
− | <upper_side>0</upper_side>
| |
− | </type>
| |
− | <type>
| |
− | <undefined>0</undefined>
| |
− | </type>
| |
− | </choosenSeats>
| |
− | <choosenRange>
| |
− | <start>0</start>
| |
− | <end>0</end>
| |
− | </choosenRange>
| |
− | <serviceClass>В стоимость входит - постельное белье. Наличие установки кондиционирования воздуха не гарантировано.</serviceClass>
| |
− | </Info>
| |
− | </PNR>
| |
− | </syntaxhighlight>
| |
− | | |
− | '''Элемент PNR'''
| |
− | Элемент '''PNR''' — Passenger Name Record — запись, состоящая из группы отдельных элементов (полей), содержащих информацию об одном или более пассажирах, путешествующих вместе, и деталях путешествия.
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Common
| |
− | | Общая информация по заказу.
| |
− | | Элементы id, Type, Service, Locator, BeginDateTime, EndDateTime, TicketingDateTime, TotalPrice, UserId, EEUserId, UserLogin, GroupId, UserStatus, DateCreate.
| |
− | |-
| |
− | | Payment
| |
− | | Информация о стоимости, штрафах, статусе заказа.
| |
− | | Элементы Status, PenaltyDate, Timelimit, Charge, Book, Penalty, Total, PaidValue.
| |
− | |-
| |
− | | Client
| |
− | | Информация о заказчике.
| |
− | | Элементы Name, MiddleName, Number, Birth, Email, Phone.
| |
− | |-
| |
− | | Passengers
| |
− | | Записи о пассажирах.
| |
− | | Элементы Passenger.
| |
− | |-
| |
− | | Info
| |
− | | Типовая информация по заказу в контексте услуги.
| |
− | | Элементы trainNumber, trainName, departureStation, arrivalStation, trainCategory, beginStation, endStation, startDate, endDate, timeInRoad, carNumber, carType, choosenSeats, choosenRange, serviceClass.
| |
− | |}
| |
− | | |
− | '''Элемент Common'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | id
| |
− | | Номер заказа в Немо.
| |
− | | Число. Пример: 268281.
| |
− | |-
| |
− | | Type
| |
− | | Тип услуги.
| |
− | | Строка: Пример: FLIGHTS.<br/>Допустимые значения: <ul><li>FLIGHTS — авиа,</li><li>HOTELS — отели,</li><li>TRAINS — ЖД.</li></ul>
| |
− | |-
| |
− | | Service
| |
− | | Поставщик услуги.
| |
− | | Строка. Пример: UFS.
| |
− | |-
| |
− | | Locator
| |
− | | Идентификатор в системе поставщика.
| |
− | | Число. Пример: 65525140.
| |
− | |-
| |
− | | BeginDateTime
| |
− | | Дата и время отправления первого сегмента.
| |
− | | Дата и время. Пример: 2014.03.06-00:15.
| |
− | |-
| |
− | | EndDateTime
| |
− | | Дата и время прибытия последнего сегмента.
| |
− | | Дата и время. Пример: 2014.03.06-13:33.
| |
− | |-
| |
− | | TicketingDateTime
| |
− | | Дата и время выписки билета.
| |
− | | Дата и время. Пример: 2014.10.17-17:23
| |
− | |-
| |
− | | VoidDateTime
| |
− | | Дата и время возврата билета.
| |
− | | Дата и время. Пример: 2014.10.17-17:23
| |
− | |-
| |
− | | TotalPrice
| |
− | | Общая стоимость заказа.
| |
− | | Элементы Amount — номинал стоимости, CurrencyCode — валюта стоимости.
| |
− | |-
| |
− | | UserId
| |
− | | Идентификатор пользователя в системе Немо, оформившего заказ.
| |
− | | Число. Пример: 123.
| |
− | |-
| |
− | | UserLogin
| |
− | | Логин пользователя в системе Немо, оформившего заказ.
| |
− | | Строка. Пример: userLogin.
| |
− | |-
| |
− | | GroupId
| |
− | | Идентификатор группы пользователя в системе Немо, оформившего заказ.
| |
− | | Число. Пример: 122.
| |
− | |-
| |
− | | UserStatus
| |
− | | Тип пользователя в системе Немо.
| |
− | | Строка. Пример: Менеджер.
| |
− | |-
| |
− | | DateCreate
| |
− | | Дата и время резервирования в системе поставщика.
| |
− | | Дата и время. Пример: 2014.03.05-15:08
| |
− | |}
| |
− | | |
− | '''Элемент TotalPrice'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Amount
| |
− | | Номинал.
| |
− | | Число. Пример: 1884.
| |
− | |-
| |
− | | CurrencyCode
| |
− | | Валюта.
| |
− | | Строка (Код ISO 4217 alfa-3). Пример: RUB.
| |
− | |}
| |
− | | |
− | '''Элемент Payment'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Title
| |
− | | Название платежного шлюза<sup>*</sup>.
| |
− | | Строка. Пример: Testpay.
| |
− | |-
| |
− | | Method
| |
− | | Тип формы оплаты<sup>*</sup>.
| |
− | | Строка. Пример: Testpay.
| |
− | |-
| |
− | | BillingId
| |
− | | Идентификатор транзакции Немо.
| |
− | | Строка. Пример: 117603370.
| |
− | |-
| |
− | | Date
| |
− | | Дата и время оплаты платежной транзакции Немо.
| |
− | | Строка. Пример: 2014-04-24 15:10:12.
| |
− | |-
| |
− | | CreateDate
| |
− | | Дата и время создания платежной транзакции Немо.
| |
− | | Строка. Пример: 2014-06-06 15:10:00.
| |
− | |-
| |
− | | Status
| |
− | | Статус заказа в системе Немо.
| |
− | | Строка. Пример: booked.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>pending — в ожидании,</li>
| |
− | <li>booked — зарезервирован,</li>
| |
− | <li>ticket — выписан,</li>
| |
− | <li>cancelled — отменен.</li>
| |
− | </ul>
| |
− | |-
| |
− | | PenaltyDate
| |
− | | Дата и время наступления штрафных санкций.
| |
− | | Дата и время. Пример: 2014-03-05 15:23:40.
| |
− | |-
| |
− | | Timelimit
| |
− | | Таймлимит на оплату и подтверждение заказа.
| |
− | | Дата и время. Пример: 2014-03-05 15:23:40.
| |
− | |-
| |
− | | Charge
| |
− | | Сбор агентства.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | Book
| |
− | | Тариф.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | Penalty
| |
− | | Штраф.
| |
− | <br/><span style="background-color:#fff0f5;">'''<span style="color:#ff0000;">Внимание!</span>''' На данный момент параметр неактуален и при выгрузке всегда принимает нулевое значение.</span>
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | TotalAgencyChargeForRefund
| |
− | | Общий сбор агентства за возврат.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | Total
| |
− | | Общая стоимость.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | PaidValue
| |
− | | Оплачено.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |}
| |
− | | |
− | <sup>*</sup> — список возможный платежных шлюзов:<br/>
| |
− | Acquiro, Chronopay, Copayco, CourierNew, Deposit, EasyPay, GatelineNew, ITransfer, Invoice, Offices, PayU, Payture, Platron, PrivatBank, Qiwi, Rapida, Receipt, Sberbank, Sirena, Sirena2, UnitellerNew, WebMoney.
| |
− | | |
− | '''Элемент Client'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Name
| |
− | | Фамилия и имя заказчика.
| |
− | | Строка. Пример: Иванов Иван.
| |
− | |-
| |
− | | MiddleName
| |
− | | Отчество заказчика.
| |
− | | Строка. Пример: Иванович.
| |
− | |-
| |
− | | Number
| |
− | | Серия и номер документа.
| |
− | | Строка. Пример: 1806123456.
| |
− | |-
| |
− | | Birth
| |
− | | Дата рождения заказчика.
| |
− | | Дата. Пример: 1984-06-30.
| |
− | |-
| |
− | | Email
| |
− | | Адрес электронной почты заказчика.
| |
− | | Строка. Пример: client@host.com.
| |
− | |-
| |
− | | Phone
| |
− | | Номер телефона заказчика.
| |
− | | Строка. Пример: +74951234567
| |
− | |}
| |
− | | |
− | '''Элемент Passenger'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | lastname
| |
− | | Фамилия пассажира.
| |
− | | Строка. Пример: Сидоров.
| |
− | |-
| |
− | | name
| |
− | | Имя пассажира.
| |
− | | Строка. Пример: Владимир.
| |
− | |-
| |
− | | middlename
| |
− | | Отчество пассажира.
| |
− | | Строка. Пример: Константинович.
| |
− | |-
| |
− | | doc_type
| |
− | | Тип документа.
| |
− | | Строка. Пример: C.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>C — Российский паспорт</li>
| |
− | <li>P — Заграничный паспорт</li>
| |
− | <li>A — Иностранный документ</li>
| |
− | <li>S — Паспорт моряка</li>
| |
− | <li>M — Военный билет</li>
| |
− | <li>B — Свидетельство о рождении</li>
| |
− | </ul>
| |
− | |-
| |
− | | passport_number
| |
− | | Серия и номер документа.
| |
− | | Строка. Пример: 1806123456.
| |
− | |-
| |
− | | gender
| |
− | | Пол пассажира.
| |
− | | Строка. Пример: M.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>M — мужской</li>
| |
− | <li>F — женский</li>
| |
− | </ul>
| |
− | |-
| |
− | | date_of_birth
| |
− | | Дата рождения пассажира.
| |
− | | Дата. Пример: 20.05.1987.
| |
− | |-
| |
− | | nationality
| |
− | | Гражданство пассажира.
| |
− | | Строка (ISO 3166-1 Alpha-2). Пример: RU.
| |
− | |-
| |
− | | passenger_type
| |
− | | Тип пассажира.
| |
− | | Строка. Пример: ADT.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>ADT — взрослый</li>
| |
− | <li>CLD — ребенок до 10 лет<sup>*, **</sup></li>
| |
− | <li>INF — ребенок до 5 лет<sup>*, ***</sup></li>
| |
− | </ul>
| |
− | |-
| |
− | | passenger_id
| |
− | | Порядковый номер пассажира в заказе.
| |
− | | Число. Пример: 2.
| |
− | |-
| |
− | | TotalPrice
| |
− | | Общая стоимость билета со сборами для данного пассажира.
| |
− | | Число. Пример: 1934.
| |
− | |-
| |
− | | FarePrice
| |
− | | Стоимость по тарифу тарифу.
| |
− | | Число. Пример: 1884.
| |
− | |-
| |
− | | Charge
| |
− | | Сбор агентства.
| |
− | | Число. Пример: 50.
| |
− | |-
| |
− | | RefundMoney
| |
− | | Сумма к возврату. Значение, полученное от поставщика, уменьшенное на сумму сбора агентства за возврат.
| |
− | | Число. Пример: 1643.
| |
− | |-
| |
− | | ChargeForRefund
| |
− | | Cбор агентства за возврат.
| |
− | | Число. Пример: 100.
| |
− | |-
| |
− | | TicketNumber
| |
− | | Номер билета.
| |
− | | Число. Пример: 73944708472624.
| |
− | |-
| |
− | | SeatNumber
| |
− | | Номер места.
| |
− | | число. Пример: 21.
| |
− | |-
| |
− | | TariffType
| |
− | | Наименование тарифа.
| |
− | | Строка. Пример: ПОЛНЫЙ.
| |
− | |-
| |
− | | HasSeat
| |
− | | Занимает ли пассажир отдельное место.
| |
− | | Допустимые значения:<ul><li>true — с местом,</li><li>false — без места.</li></ul>
| |
− | |}
| |
− | | |
− | <sup>*</sup> — Не включая верхний предел. Возраст ребенка определяется на день совершения поездки.
| |
− | | |
− | <sup>**</sup> — Нижний и верхний пределы определяются видом сообщения:
| |
− | * от 5 до 10 лет — Внутригосударственное сообщение, а также международное сообщение со странами-участниками СНГ, Литовской, Латвийской, Эстонской Республиками, Республикой Абхазия.
| |
− | * от 6 до 17 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Россия-Финляндия.
| |
− | * от 4 до 12 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Восток-Запад.
| |
− | | |
− | <sup>***</sup> — Верхний предел определяется видом сообщения:
| |
− | * до 5 лет — Внутригосударственное сообщение, а также международное сообщение со странами-участниками СНГ, Литовской, Латвийской, Эстонской Республиками, Республикой Абхазия.
| |
− | * до 6 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Россия-Финляндия.
| |
− | * до 4 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Восток-Запад.
| |
− | | |
− | '''Элемент Passenger'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | trainNumber
| |
− | | Номер поезда.
| |
− | | Строка. Пример: 098ХА.
| |
− | |-
| |
− | | trainName
| |
− | | Имя фирменного поезда. Приходит от поставщика.
| |
− | | Строка. Пример: Россия.
| |
− | |-
| |
− | | departureStation
| |
− | | Станция отправления пассажира.
| |
− | | Строка. Пример: МОСКВА КАЗ.
| |
− | |-
| |
− | | arrivalStation
| |
− | | Станция прибытия пассажира.
| |
− | | Строка. Пример: КАЗАНЬ ПАС.
| |
− | |-
| |
− | | trainCategory
| |
− | | Тип поезда.
| |
− | | Число. Пример: 1.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>0 — неизвестный тип поезда</li>
| |
− | <li>1 — скорый поезд</li>
| |
− | <li>2 — фирменный поезд</li>
| |
− | <li>3 — скоростной поезд</li>
| |
− | <li>4 — фирменный скоростной поезд</li>
| |
− | </ul>
| |
− | |-
| |
− | | beginStation
| |
− | | Начальная станция в маршруте поезда.
| |
− | | Строка. Пример: Казань
| |
− | |-
| |
− | | endStation
| |
− | | Конечная станция в маршруте поезда.
| |
− | | Строка. Пример: Москва
| |
− | |-
| |
− | | startDate
| |
− | | Дата и время отправления со станции отправления пассажира.
| |
− | | Дата и время. Пример: 2014-03-06 00:15:00.
| |
− | |-
| |
− | | endDate
| |
− | | Дата и время прибытия со станции отправления пассажира.
| |
− | | Дата и время. Пример: 2014-03-06 13:33:00.
| |
− | |-
| |
− | | timeInRoad
| |
− | | Время в пути от станции отправления до станции прибытия пассажира.
| |
− | | Число (секунд). Пример: 47880.
| |
− | |-
| |
− | | carNumber
| |
− | | Номер вагона.
| |
− | | Число. Пример: 7.
| |
− | |-
| |
− | | carType
| |
− | | Тип вагона.
| |
− | | Число. Пример: 1.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>1 - общий вагон</li>
| |
− | <li>2 - сидячий вагон</li>
| |
− | <li>3 - плацкарта</li>
| |
− | <li>4 - купе</li>
| |
− | <li>5 - люкс</li>
| |
− | <li>6 - мягкий</li>
| |
− | <li>7 - неизвестный тип</li>
| |
− | </ul>
| |
− | |-
| |
− | | choosenSeats
| |
− | | Элемент описывает количество нижних, нижних боковых, верхних, верхних боковых мест.
| |
− | | Элементы type.
| |
− | |-
| |
− | | choosenRange
| |
− | | Выбранный диапазон мест в вагоне.
| |
− | | Элементы start, end.
| |
− | |-
| |
− | | serviceClass
| |
− | | Описание услуг. Приходит от поставщика.
| |
− | | Текст. Пример: В стоимость входит - постельное белье. Наличие установки кондиционирования воздуха не гарантировано.
| |
− | |}
| |
− | | |
− | '''Элемент type'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | lower
| |
− | | Количество нижних мест.
| |
− | | Число. Пример: 1.
| |
− | |-
| |
− | | upper
| |
− | | Количество верхних мест.
| |
− | | Число. Пример: 0.
| |
− | |-
| |
− | | lower_side
| |
− | | Количество нижних боковых мест.
| |
− | | Число. Пример: 1.
| |
− | |-
| |
− | | upper_side
| |
− | | Количество верхних боковых мест.
| |
− | | Число. Пример: 1.
| |
− | |-
| |
− | | undefined
| |
− | | Количество мест неопределенного типа.
| |
− | | Число. Пример: 0.
| |
− | |}
| |
− | | |
− | '''Элемент choosenRange'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | start
| |
− | | Начало выбранного диапазон мест в вагоне<sup>*</sup>.
| |
− | | Число. Пример: 4.
| |
− | |-
| |
− | | end
| |
− | | Конец выбранного диапазон мест в вагоне<sup>*</sup>.
| |
− | | Число. Пример: 17.
| |
− | |}
| |
− | | |
− | <sup>*</sup> — Если диапазон не был зада пользователем на этапе выбора мест, то поля start и end будут содержать нули.
| |
− | | |
− | </div>
| |
− | </div>
| |
− | | |
− | === Пакетный экспорт заказов по категориям в формате Nemo ===
| |
− | Сервис выгрузки заказов позволяет экспортировать интересующие выборки по заказам в формате XML. Например, можно выбрать все заказы по дате бронирования и получить информацию по ним в XML-виде.
| |
− | | |
− | ==== Экспорт заказов под авторизованным пользователем (в личном кабинете) ====
| |
− | [[Файл:Экспортировать_в_XML_(ЛК).png|400px|thumb|right|Фильтры пакетного экспорта заказов в личном кабинете]] | |
− | Порядок пользования сервисом:
| |
− | # Перейти в личный кабинет
| |
− | # В адресной строке браузера к текущему адресу дописать параметр '''''&exportxml'''''. Должен получиться адрес вида: <syntaxhighlight lang="text" enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0; width: 800px;">
| |
− | http://DOMAIN/index.php?go=poffice/table&exportxml
| |
− | </syntaxhighlight>
| |
− | # После обновления страницы под блоком фильтров должна появиться кнопка '''«Экспортировать в XML»'''. При ее нажатии на странице появляется предложение сохранить в XML-файл выборку отфильтрованных заказов.
| |
− | | |
− | Выгружаются только заказы выбранного пользователя/компании с учетом примененных параметров фильтра.
| |
− | | |
− | Пользователь может произвести выгрузку только своих заказов.
| |
− | | |
− | === Пакетный экспорт заказов по категориям в формате СОФИ ===
| |
− | Для использования выгрузки заказов в формате СОФИ у агентства должен быть включен модуль "Выгрузка заказов Софи" и заданы настройки:
| |
− | * "Тип выгрузки СОФИ" должен иметь значение "Выгрузка заказов СОФИ" или должна быть включена настройка "Выгрузка одновременно и Nemo, и Софи",
| |
− | * Должен быть указан "Url скрипта для выгрузки в формате СОФИ",
| |
− | * Должен быть указан "Код сайта в системе СОФИ".
| |
− | | |
− | Выгрузка конкретного заказа:
| |
− | http://DOMAIN/booking__sofi_export_bookings&booking_id=123456
| |
− | где booking_id — номер заказа в системе Немо.
| |
− | | |
− | Выгрузка заказов забронированных за определенный период:
| |
− | http://DOMAIN/booking__sofi_export_bookings&date_begin=01.01.2014&date_end=01.01.2015
| |
− | где [date_begin; date_end] — период бронирования заказа (забронированные заказы с датой бронирования совпадающей с началом/окончанием периода, заданного в запросе, попадают в экспорт), формат — дд.мм.гггг.
| |
− | | |
− | ==Фиксация оплаты внешним запросом==
| |
− | !!! не нашел, есть просто фиксация оплаты, но это вроде немного не то !!!
| |
− | | |
− | ==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-описание которой располагается по адресу: |
Строка 3367: |
Строка 762: |
| </div></div> | | </div></div> |
| | | |
| + | ==Передача параметров в форму поиска (FastSearch)== |
| | | |
− | ==Передача параметров в форму поиска==
| |
− | {{Contract}}
| |
| В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска. | | В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска. |
| | | |
− | === Применение ===
| + | Примеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch - передача параметров в форму]] |
− | Эта технология может использоватся к примеру для формирования ссылок с баннеров, при клике на которые пользователь попадает на форму, на которой уже могут быть заполнены пункты назначения, даты, количество пассажиров и прочие параметры.
| |
| | | |
− | Также, при указании всех необходимых параметров, пользователя можно перебрасывать сразу на процесс поиска авиабилетов с указанными критериями.
| + | FastSearch так же работает и для отелей, подробности в статье [[Fast Search для отелей]] |
− | | |
− | Для использования заполнения формы из 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
| |
− | |}
| |
− | | |
− | |-
| |
− | | Поиск в окружных датах
| |
− | | 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" |
Строка 4014: |
Строка 920: |
| </pre> | | </pre> |
| </div></div> | | </div></div> |
| + | |
| + | --> |