Deprecated Features в релизе 1.3.0¶
Изменения в схемах, которые могут затронуть текущий функционал.
Мы стремимся развивать и делать наш продукт удобным и понятным для наших агентов. В связи с этим, информируем, что на вторую половину ноября, запланирован релиз 1.3.0, содержащий изменения, которые нарушают обратную совместимость и вносят существенные изменения в процесс бронирования, выписки билетов и дополнительных услуг.
Просим внимательно ознакомиться с планируемыми изменениями и предусмотреть необходимые доработки на вашей стороне для бесшовного перехода на использование версии 1.3.0.
За получением дополнительной информации, консультацией необходимо обращаться на Support@mixvel.com
Управление коммерческими предложениями¶
Запрос коммерческого предложения¶
Endpoint: /api/Order/AirShopping
Фильтр по отображению max количества вариантов¶
Планируемые изменения:
Удаляется значение элемента Mixvel_AirShoppingRQ/Request/PayloadRestrictions/ObjectName «OFFER», остается единственное значение «Offer» в нижнем регистре.
Пример передачи корректного значения:
<PayloadRestrictions>
<Limit>10</Limit>
<ObjectName>Offer</ObjectName>
</PayloadRestrictions>
Поиск лучшей стоимости по маршруту со стыковками¶
Планируемые изменения:
Убирается элемент Mixvel_AirShoppingRQ/Request/FlightRequest/FlightRequestOriginDestinationsCriteria/OriginDestCriteria/CalendarDateCriteria/AllowConnectionsInd
Изменяется логика поиска лучших цен в запросе, в связи с чем возникла необходимость убрать из CalendarDateCriteriaType индикатор AllowConnectionsInd, который будет заменен на AllowDirectInd.
Пример передачи корректного индикатора:
<CalendarDateCriteria>
<DaysAfterNumber>3</DaysAfterNumber>
<DaysBeforeNumber>3</DaysBeforeNumber>
<AllowDirectInd>true</AllowDirectInd> <!--индикатор выдачи прямых рейсов-->
</CalendarDateCriteria>
Mixvel_AvailabilityRQ¶
Endpoint: /api/Order/Availability
Планируемые изменения:
Удаляется значение элемента Mixvel_AvailabilityRQ/Request/PayloadRestrictions/ObjectName «OFFER», остается единственное значение «Offer» в нижнем регистре.
Пример передачи корректного значения:
<PayloadRestrictions>
<Limit>10</Limit>
<ObjectName>Offer</ObjectName>
</PayloadRestrictions>
Запрос списка дополнительных услуг¶
Endpoint: /api/ServiceList
Планируемые изменения:
- Убираются, не используемые в запросе, элементы:
Mixvel_ServiceListRQ/Request/CoreRequest/OfferRequest/Offer/OfferItem/OfferItemID
и
Mixvel_ServiceListRQ/Request/CoreRequest/OrderRequest/MixOrder/Order/OrderItem/OrderItemID
Пример корректного запроса Mixvel_ServiceListRQ по незабронированному предложению:
<OfferRequest>
<Offer>
<OfferID>token</OfferID>
</Offer>
</OfferRequest>
Пример корректного запроса Mixvel_ServiceListRQ по забронированному предложению:
<OrderRequest>
<MixOrder>
<MixOrderID>96829-230921-MAK8628</MixOrderID>
</MixOrder>
<Order>
<OrderID>token</OrderID>
</Order>
</OrderRequest>
Данные изменения не коснутся результатов выдачи Mixvel_ServiceListRS.
- Вводится ограничение на множественный ввод следующих элементов:
Mixvel_ServiceListRQ/Request/CoreRequest/OfferRequest/Offer max_occur=1
Mixvel_ServiceListRQ/Request/CoreRequest/OrderRequest/MixOrder/Order max_occur=1
(поиск необходимо осуществлять только по одному offer/order)
- Меняется отображение информации по дополнительной услуге, связанной с оформлением багажа.
В ответе Mixvel_ServiceListRS информация в элементе <Name>
в блоке …Response/DataLists/ServiceDefinitionList/ServiceDefinition будет отображаться на запрашиваемом языке в …/PayloadAttributes/PrimaryLangID.
Изменение касается следующих методов: Mixvel_OrderViewRS, Mixvel_ServiceListRS.
Пример отображения при PrimaryLangID=RU
<ServiceDefinition>
<Name>Багаж</Name>
<OwnerCode>TCH</OwnerCode>
<ServiceDefinitionAssociation>
<BaggageAllowanceRef>
<BaggageAllowanceRefID>token</BaggageAllowanceRefID>
</BaggageAllowanceRef>
</ServiceDefinitionAssociation>
<ServiceDefinitionID>token</ServiceDefinitionID>
</ServiceDefinition>
Пример отображения при PrimaryLangID=EN
<ServiceDefinition>
<Name>Baggage</Name>
<OwnerCode>TCH</OwnerCode>
<ServiceDefinitionAssociation>
<BaggageAllowanceRef>
<BaggageAllowanceRefID>token</BaggageAllowanceRefID>
</BaggageAllowanceRef>
</ServiceDefinitionAssociation>
<ServiceDefinitionID>token</ServiceDefinitionID>
</ServiceDefinition>
Управление заказом/бронированием¶
Создание заказа/бронирования¶
Endpoint: /api/Order/Create
Планируемые изменения:
- Меняется процесс передачи контактных данных пассажира.
Не будет возможности осуществить бронирование, если не выполнены условия:
- строгая привязка контактов к пассажирам, например:
...
<DataLists>
<ContactInfoList>
<ContactInfo>
<ContactInfoID>Contact-1</ContactInfoID>
<EmailAddress>
<ContactTypeText>personal</ContactTypeText>
<EmailAddressText>a.sidorov@mixvel.com</EmailAddressText>
</EmailAddress>
<Phone>
<ContactTypeText>personal</ContactTypeText>
<PhoneNumber>+79295774076</PhoneNumber>
</Phone>
</ContactInfo>
</ContactInfoList>
<PaxList>
<Pax>
<AgeMeasure>27</AgeMeasure>
<ContactInfoRefID>Contact-1</ContactInfoRefID>
<IdentityDoc>
<ExpiryDate>2027-04-12</ExpiryDate>
<IdentityDocID>4516105599</IdentityDocID>
<IdentityDocTypeCode>PS</IdentityDocTypeCode>
<IssueDate>2020-04-12</IssueDate>
<IssuingCountryCode>RU</IssuingCountryCode>
<Surname>Sidorov</Surname>
</IdentityDoc>
<Individual>
<Birthdate>1996-01-18</Birthdate>
<GenderCode>M</GenderCode>
<GivenName>Artem</GivenName>
<MiddleName>Nikolaevich</MiddleName>
<Surname>Sidorov</Surname>
</Individual>
<PaxID>Pax-1</PaxID>
<PTC>ADT</PTC>
</Pax>
</PaxList>
</DataLists>
...
- указание признака, что контакты являются агентскими (agency), возможно два варианта, например:
вариант 1 - передача агентских контактов внутри ContactInfo с персональными данными
...
<DataLists>
<ContactInfoList>
<ContactInfo>
<ContactInfoID>Contact-1</ContactInfoID>
<EmailAddress>
<ContactTypeText>personal</ContactTypeText>
<EmailAddressText>a.sidorov@mixvel.com</EmailAddressText>
</EmailAddress>
<Phone>
<ContactTypeText>personal</ContactTypeText>
<PhoneNumber>+79295774076</PhoneNumber>
</Phone>
<Phone>
<ContactTypeCode>mobile</ContactTypeCode>
<ContactTypeText>agency</ContactTypeText>
<PhoneNumber>+74955556677</PhoneNumber>
</Phone>
</ContactInfo>
</ContactInfoList>
<PaxList>
<Pax>
<AgeMeasure>27</AgeMeasure>
<ContactInfoRefID>Contact-1</ContactInfoRefID>
<IdentityDoc>
<ExpiryDate>2027-04-12</ExpiryDate>
<IdentityDocID>4516105599</IdentityDocID>
<IdentityDocTypeCode>PS</IdentityDocTypeCode>
<IssueDate>2020-04-12</IssueDate>
<IssuingCountryCode>RU</IssuingCountryCode>
<Surname>Sidorov</Surname>
</IdentityDoc>
<Individual>
<Birthdate>1996-01-18</Birthdate>
<GenderCode>M</GenderCode>
<GivenName>Artem</GivenName>
<MiddleName>Nikolaevich</MiddleName>
<Surname>Sidorov</Surname>
</Individual>
<PaxID>Pax-1</PaxID>
<PTC>ADT</PTC>
</Pax>
</PaxList>
</DataLists>
...
вариант 2 - передача агентских контактов отдельным ContactInfo без привязки к пассажиру
...
<DataLists>
<ContactInfoList>
<ContactInfo>
<ContactInfoID>Contact-1</ContactInfoID>
<EmailAddress>
<ContactTypeText>personal</ContactTypeText>
<EmailAddressText>a.sidorov@mixvel.com</EmailAddressText>
</EmailAddress>
<Phone>
<ContactTypeText>personal</ContactTypeText>
<PhoneNumber>+79295774076</PhoneNumber>
</Phone>
</ContactInfo>
<ContactInfoID>Contact-2</ContactInfoID>
<EmailAddress>
<ContactTypeText>agency</ContactTypeText>
<EmailAddressText>office@mixvel.com</EmailAddressText>
</EmailAddress>
<Phone>
<ContactTypeText>agency</ContactTypeText>
<PhoneNumber>+74955660930</PhoneNumber>
</Phone>
</ContactInfo>
</ContactInfoList>
<PaxList>
<Pax>
<AgeMeasure>27</AgeMeasure>
<ContactInfoRefID>Contact-1</ContactInfoRefID>
<IdentityDoc>
<ExpiryDate>2027-04-12</ExpiryDate>
<IdentityDocID>4516105599</IdentityDocID>
<IdentityDocTypeCode>PS</IdentityDocTypeCode>
<IssueDate>2020-04-12</IssueDate>
<IssuingCountryCode>RU</IssuingCountryCode>
<Surname>Sidorov</Surname>
</IdentityDoc>
<Individual>
<Birthdate>1996-01-18</Birthdate>
<GenderCode>M</GenderCode>
<GivenName>Artem</GivenName>
<MiddleName>Nikolaevich</MiddleName>
<Surname>Sidorov</Surname>
</Individual>
<PaxID>Pax-1</PaxID>
<PTC>ADT</PTC>
</Pax>
</PaxList>
</DataLists>
...
Сейчас, в случае отсутствия строгой привязки к пассажиру или без указания, что контакты агентские, направляется Warning ("MIX-103005", "Получены контакты пассажира без привязки, что может повлечь некорректную передачу данных").
После планируемых изменений, если указаны контакты без ссылки на пассажира или без типа "агентский", запрос на бронирование будет считаться не валидным и в ответ будет приходить ошибка: «Получены контакты, не привязанные ни к одному пассажиру. Необходимо осуществить привязку к пассажиру или агенту».
- Меняется передача запроса при групповом бронировании. Не будет проходить запрос на бронирование в том случае, если указаны данные пассажиров, но не передана привязка PaxRefID в SelectedOfferItem/PaxRefID.
Пример заполнения привязки пассажира в SelectedOfferItem:
<CreateOrder>
<SelectedOffer>
<OfferRefID>token</OfferRefID>
<SelectedOfferItem>
<OfferItemRefID> token </OfferItemRefID>
<PaxRefID>Pax-1</PaxRefID>
<PaxRefID>Pax-2</PaxRefID>
<PaxRefID>Pax-3</PaxRefID>
<PaxRefID>Pax-4</PaxRefID>
<PaxRefID>Pax-5</PaxRefID>
<PaxRefID>Pax-6</PaxRefID>
<PaxRefID>Pax-7</PaxRefID>
…
</SelectedOfferItem>
- Убирается массив, в котором передаются ремарки типа OSI из Mixvel_OrderCreateRQ/Request/DataLists/PaxList/Pax/Remark, а также ремарки типа SSR из Mixvel_OrderCreateRQ/Request/DataLists/PaxSegmentRemarkList
Все будет перенесено и объединено в общий новый массив Mixvel_OrderCreateRQ/Request/DataLists/RemarkList (изменения по новому массиву будут доступны в следующих релизах), в котором будут передаваться ремарки типа OSI и SSR.
Пример передачи ремарок типа OSI:
<RemarkList><!--Вынесена из PaxList-->
<Remark>
<Type>osi</Type>
<RemarkText>Дополнительная информация по перелету</RemarkText>
<OfferRefID>token</OfferRefID>
</Remark>
</RemarkList>
В ответе Mixvel_OrderViewRS изменения будут отображаться:
<Response>
<DataLists>
...
</PriceClassList>
<RemarkList><!--Вынесена из PaxList-->
<Remark>
<RemarkID>1<RemarkID>
<Type>osi</Type>
<RemarkText>Дополнительная информация по перелету</RemarkText>
<OrderRefID>token</OrderRefID>
<StatusCode>HK</StatusCode>
</Remark>
</RemarkList>
<ServiceDefinitionList>
...
</DataLists>
<MixOrder>
<MixOrderID>96829-230822-MAP0070</MixOrderID>
- Удаляется массив Mixvel_OrderCreateRQ/Request/DataLists/PaxList/Pax/LoyaltyProgramAccount из PaxList и переносится в Mixvel_OrderCreateRQ/Request/DataLists/LoyaltyProgramAccountList (изменения по новому массиву будут доступны в следующих релизах).
Пример внесения информации по карте лояльности:
<DataLists>
…
<LoyaltyProgramAccountList>
<LoyaltyProgramAccount>
<AccountNumber>123456789</AccountNumber>
<LoyaltyProgram>
<Carrier>
<AirlineDesigCode>SU</AirlineDesigCode>
</Carrier>
</LoyaltyProgram>
<OfferRefID>token</OfferRefID>
<PaxRefID>Pax-1</PaxRefID>
</LoyaltyProgramAccount>
</LoyaltyProgramAccountList>
В ответе Mixvel_OrderViewRS изменения будут отображаться:
<LoyaltyProgramAccountList>
<LoyaltyProgramAccount>
<AccountNumber>123456789</AccountNumber>
<LoyaltyProgram>
<Carrier>
<AirlineDesigCode>DP</AirlineDesigCode>
</Carrier>
</LoyaltyProgram>
<LoyaltyProgramID>token</LoyaltyProgramID>
<PaxSegmentRefID>token</PaxSegmentRefID>
<PaxRefID>Pax-1</PaxRefID>
<OrderRefID>96829-230911-OAH5765</OrderRefID>
<StatusCode>HK</StatusCode>
</LoyaltyProgramAccount>
</LoyaltyProgramAccountList>
- Убирается элемент Amount в массиве Mixvel_OrderCreateRQ/Request/PaymentFunctions/PaymentProcessingDetails/Amount, так как он не используется при передаче данных на этапе бронирования.
Импорт заказа/бронирования¶
Endpoint: /api/Order/Import
Планируемые изменения:
- Удаляется неиспользуемый в процессе работы массив RawOrderRequest в Mixvel_OrderImportRQ. Будут удалены нефункциональные элементы:
Mixvel_OrderImportRQ/Request/RawOrderRequest/Order/OrderItemType
Mixvel_OrderImportRQ /Request /RawOrderRequest/TotalAmount
Mixvel_OrderImportRQ /Request /RawOrderRequest/ ReservationGuideline
- Добавляется опциональный элемент AirlineDesigCode в структуре Mixvel_OrderImportRQ/Request/ExternalOrderRequest/AirlineDesigCode.
Пример корректного запроса:
<Request>
<ExternalOrderRequest>
<BookingRefID>1WL2RS</BookingRefID>
<SystemCode>Tch</SystemCode>
<AirlineDesigCode>UT</AirlineDesigCode>
</ExternalOrderRequest>
<DataLists>
<PaxList>
<Pax>
<Individual>
<Surname>PETROV</Surname>
</Individual>
<PaxID>1</PaxID>
</Pax>
</PaxList>
</DataLists>
</Request>
Оплата заказа/бронирования¶
Endpoint: /api/Order/Change
Планируемые изменения:
1) Удаляется элемент, указывающий признак валюты при проведении оплаты Mixvel_OrderChangeRQ/Request/ResponseParamters/CurParameter.
Вместо этого валюту необходимо указывать в атрибуте Mixvel_OrderChangeRQ/Request/PaymentFunctions/PaymentProcessingDetails/Amount.
Пример передачи валюты:
<PaymentProcessingDetails>
<Amount CurCode="EUR">2000</Amount>
<PaymentProcessingDetailsPaymentMethod>
<OtherPaymentMethod/>
</PaymentProcessingDetailsPaymentMethod>
</PaymentProcessingDetails>
2) Переносится массив OrderAssociation из Mixvel_OrderChangeRQ/PaymentFunctionsChangeType/OrderAssociation, в Mixvel_OrderChangeRQ/PaymentFunctionsChangeType/PaymentProcessingDetails/OrderAssociation.
В Mixvel_OrderChangeRQ/PaymentFunctionsChangeType/OrderAssociation массив будет полностью удален.
Пример передачи информации в массиве OrderAssociation:
<PaymentProcessingDetails>
<Amount CurCode="RUB">2000</Amount>
<PaymentProcessingDetailsPaymentMethod>
<OtherPaymentMethod/>
</PaymentProcessingDetailsPaymentMethod>
<OrderAssociation>
<OrderItemRefID>token</OrderItemRefID>
<OrderRefID>96829-230706-OPH4494</OrderRefID>
</OrderAssociation>
</PaymentProcessingDetails>
</PaymentFunctions>
-
Удаляется элемент Order, находящийся в структуре Mixvel_OrderChangeRQ/Request/MixOrder, так как он не несет функциональной нагрузки.
-
Убирается массив, в котором передаются ремарки типа OSI из Mixvel_OrderChangeRQ/Request/DataLists/PaxList/Pax/Remark, а также ремарки типа SSR из Mixvel_OrderChangeRQ/Request/DataLists/PaxSegmentRemarkList
Все будет перенесено и объединено в общий новый массив Mixvel_OrderChangeRQ/Request/DataLists/RemarkList (изменения по новому массиву будут доступны в следующих релизах), в котором будут передаваться ремарки типа OSI и SSR.
Пример передачи ремарок типа OSI:
<Request xmlns="">
<ChangeOrder>
</ChangeOrder>
<DataLists>
<RemarkList>
<Remark>
<Type>osi</Type>
<RemarkText>Дополнительная информация по перелету</RemarkText>
<OrderRefID>token</OrderRefID><!--необходимо будет внести данные Ordera-->
</Remark>
</RemarkList>
</DataLists>
<MixOrder>
<MixOrderID>96829-230822-MAO7808</MixOrderID> <!--если указан только MixOrderID, то ремарка ко всему заказу в целом, если указан еще OrderID, то к конкретному заказу-->
<Order>
<OrderID>token</OrderID>
</Order>
</MixOrder>
</Request>
В ответе Mixvel_OrderViewRS изменения будут отображаться:
<Response>
<DataLists>
...
</PriceClassList>
<RemarkList><!--вынесена их Pax'а-->
<Remark>
<RemarkID>1<RemarkID>
<Type>osi</Type>
<RemarkText>Дополнительная информация по перелету</RemarkText>
<OrderRefID>token</OrderRefID>
<StatusCode>HK</StatusCode>
</Remark>
</RemarkList>
<ServiceDefinitionList>
...
</DataLists>
<MixOrder>
<MixOrderID>96829-230822-MAP0070</MixOrderID>
...
- Удаляется массив Mixvel_OrderChangeRQ/Request/DataLists/PaxList/Pax/LoyaltyProgramAccount из PaxList и переносится в Mixvel_OrderChangeRQ/Request/DataLists/LoyaltyProgramAccountList (изменения по новому массиву будут доступны в следующих релизах).
Пример внесения информации по карте лояльности:
<DataLists>
…
<LoyaltyProgramAccountList>
<LoyaltyProgramAccount>
<AccountNumber>123456789</AccountNumber>
<LoyaltyProgram>
<Carrier>
<AirlineDesigCode> DP </AirlineDesigCode>
</Carrier>
</LoyaltyProgram>
<PaxSegmentRefID>token</PaxSegmentRefID>
<OrderRefID>token</OfferRefID>
<PaxRefID>Pax-1</PaxRefID>
<ActionType>add</ActionType>
</LoyaltyProgramAccount>
<LoyaltyProgramAccountList>
…
</DataLists>
В ответе Mixvel_OrderViewRS изменения будут отображаться:
<LoyaltyProgramAccountList>
<LoyaltyProgramAccount>
<AccountNumber>123456789</AccountNumber>
<LoyaltyProgram>
<Carrier>
<AirlineDesigCode>DP</AirlineDesigCode>
</Carrier>
</LoyaltyProgram>
<LoyaltyProgramID>token</LoyaltyProgramID>
<PaxSegmentRefID>token</PaxSegmentRefID>
<PaxRefID>Pax-1</PaxRefID>
<OrderRefID>96829-230911-OAH5765</OrderRefID>
<StatusCode>HK</StatusCode>
</LoyaltyProgramAccount>
</LoyaltyProgramAccountList>
- Удаляются не используемые в работе элементы:
Mixvel_OderChangeRQ/Request/ChangeOrder/UpdateOrderItem/DeleteOrderItemList/DeleteOrderItem/AllowSplit
Mixvel_OderChangeRQ/Request/ChangeOrder/UpdateOrderItem/DeleteOrderItemList/DeleteOrderItem/OrderID
Mixvel_OderChangeRQ/Request/ChangeOrder/UpdateOrderItem/DeleteOrderItemList/DeleteOrderItem/OfferItemID
Mixvel_OderChangeRQ/Request/ChangeOrder/UpdateOrderItem/DeleteOrderItemList/DeleteALaCarteOrderItem
При проведении процесса автоматического возврата необходимо использовать структуру по примеру ниже:
<Request>
<ChangeOrder>
<UpdateOrderItem>
<DeleteOrderItemList>
<DeleteOrderItem>
<OfferRefID>token</OfferRefID>
</DeleteOrderItem>
</DeleteOrderItemList>
</UpdateOrderItem>
</ChangeOrder>
<MixOrder>
<MixOrderID>00001-210317-MA1234</MixOrderID>
</MixOrder>
</Request>
Если для процесса возврата дополнительных услуг используются вышеназванные элементы, необходимо произвести настройки и перейти на использование метода Mixvel_OrderCancelRQ в массив Mixvel_OrderCancelRQ/Request/MixOrder/Order/OrderID.
Вторичные операции¶
Возврат оплаченного заказа¶
Endpoint: /api/Order/Reshop
Планируемые изменения:
Убирается из схемы массив Mixvel_OrderReshopRQ/Request/UpdateOrder/CancelOrder.
Для возврата заказа необходимо воспользоваться массивом Mixvel_OrderReshopRQ/Request/UpdateOrder/RefundOrder.
<Request>
<MixOrder>
<MixOrderID>09461-220908-MEH0476</MixOrderID>
</MixOrder>
<ResponseParameters>
<PricingParameter>
<AutoExchInd>false</AutoExchInd> <!--признак автоматического или ручного возврата, опционально. дефолт:true-->
</PricingParameter>
<ReasonCode>Involuntary</ReasonCode> <!--признак добровольного или вынужденного возврата, опционально. дефолт:Voluntary-->
</ResponseParameters>
<UpdateOrder>
<RefundOrder>
<OrderRefID>token</OrderRefID>
<PaxSegmentRefID>token</PaxSegmentRefID> <!--опционально, для возврата части полетных сегментов, допускается множество-->
</RefundOrder>
</UpdateOrder>
</Request>