Direct Flight Search (SOAR agent web Integration)

This page is a work in progress and the corresponding functionality has not yet been implemented. It is intended to capture what we may develop in the near future as part of a project for Edgard.

Some clients choose to operate and manage a corporate agent site themselves. When taking this approach, they often want to permit agents to do some of their work within the corporate agent site but then transition to the SOAR agent web when a flight option has been selected. In the case of SOAR agent web, this is facilitated by a page (/agent/direct-flight-search) which accepts the travel criteria and a selected flight option via querystring parameters. The table below provides the required information for a client to transfer a travel search request to SOAR agent web. Note that these parameters are a subset of parameters to the TravelOptions RESTful API (linked to from amelia API Documentation).

Field NameDescriptionRequired or
Optional
Format / ExampleAdditional Information
cityPairThe origin and destination airport city pair.required

origin-destination
e.g. YUL-YYZ


departureThe date of departure. This is relative to the origin airport.requiredyyyy-mm-dd
e.g. 2017-12-15

returnThe date of return. This is relative to the destination airport.optional

yyyy-mm-dd
e.g. 2017-12-15

If not specified (or blank), the trip is assumed to be one-way; otherwise, the trip is assumed to be round trip.
cabinClass

The cabin class code being requested. Also known as class of service or level of service.

Multiple-cabin class support: If airline wants to search with more than 1 cabin class, then the comma-list array should be passed. For example: Y,C

optional

e.g. Y

e.g. Y,C

If not provided (or blank), the default cabin class is assumed. All available cabin classes can be retrieved using the CabinClasses RESTful API. This parameter is ignored if the client is using the combined classes of service feature (i.e. multiple classes of service are searched for available fare options at the same time).
currencyThe currency code for the currency amounts returned.optional

e.g. CAD

If not provided (or blank), the default currency is assumed. All available currencies can be retrieved using the Currencies RESTful API.
promoCodePromotion code to be validated and applied during fare retrieval.optional

languageLanguage code to indicate what language the IBE should be initially displayed in.optionale.g. en

If not provided (or blank), the default language is assumed. All available languages can be retrieved using the Languages RESTful API.

All supported language code by SOAR are: ar,da,de,en,es,fr,it,nl,pt,lo,zh,tw,ms,th,ko,ja,vi . New language code should be discussed with SOAR team

saleAffiliateId

Sale Affiliate Id to indicate where that booking comes from. (e.g. Google Flights, ...)

Rules:
+ Max length: 50
+ Accept: numeric, alphabet characters and split by '-' (regex:  "^[a-zA-Z0-9]+([-_]?[a-zA-Z0-9]+)*$")

optionale.g. abc-123-abcNOTE:  This is a new capability that should be available in early 2022.
expandInterlineSearch

This is new flag to tell SOAR web to look up possible fare options outside of the ameliaRES system. A special SOAR web CMS configuration should be enabled to be able to use this flag.

If the setup is in place and you provide the city pair that outside of the ameliaRES system, SOAR web will automatically set value to true and do the expanded search

optionalexpected value: true or falseAvailable with SOAR web version #3454

With Passenger Type Codes Enabled

The following fields are involved when passenger type codes are in use by the given airline.

Field NameDescriptionRequired or
Optional
Format / ExampleAdditional Information
passengerCountsThe number of passengers to be booked, by passenger type code.requiredADT:1,CHD:0,INF:0In this example, we are requesting one Adult (ADT), 0 Child (CHD), and 0 Infant (INF) passengers.





As an example, suppose we have a fictional airline, Fiction Airlines with an ameliaSOAR base URL of https://m.fictionair.com. A valid direct flight search request to that ameliaSOAR could be https://m.fictionair.com/direct-flight-search?cityPair=XTF-XEG&departure=2018-10-23&passengerCounts=ADT:1.

With Passenger Type Codes Disabled

The following fields are involved when passenger type codes are not in use by the given airline.

Field NameDescriptionRequired or
Optional
Format / ExampleAdditional Information
adultCountThe number of adult passengers expected to reserve. 0 or above.requirede.g. 1Required
childCountThe number of child passengers expected to reserve. 0 or above.optional
If not provided (or blank), 0 is assumed.
infantCountThe number of infant passengers expected to reserve. 0 or above.optional
If not provided (or blank), 0 is assumed.

As an example, suppose we have a fictional airline, Fiction Airlines with an ameliaSOAR base URL of https://m.fictionair.com. A valid direct flight search request to that ameliaSOAR could be https://m.fictionair.com/direct-flight-search?cityPair=XTF-XEG&departure=2018-10-23&adultCount=1.

Example UML Sequence Diagram

https://www.planttext.com/

 PlantText

@startuml

skin rose

"External Site FE" -> "External Site BE": Authentication Request
"External Site BE" -> "ameliaRES API": POST /RESTv1/userSessions
"External Site BE" -> "External Site BE": Store access & refresh tokens
"External Site FE" -> "External Site FE": Build up flight search context
"External Site FE" -> "External Site BE": Request transition to\nSOAR agent web\nSpecifically, agent flight search
"External Site BE" -> "SOAR API": Request SSO token\naccess & refresh tokens are sent
"SOAR API" --> "External Site BE": SSO token
"External Site BE" --> "External Site FE": SSO token
"External Site FE" -> "SOAR API": SSO navigation\nPOST to SSO endpoint with token and destination URL
"SOAR API" -> "SOAR API": Establish user session using SSO token
"SOAR API" -> "External Site FE": HTTP 303 to destination URL
"External Site FE" -> "SOAR agent web": Navigate to agent flight search

@enduml

Related Articles