An example of end-to-end scenario based on on operation flow and user story
Operation flowsearchFlightsJourney → book (Flight) → reprice without PNR → reprice with PNR → servicePrice → demandTickets (ETK) User storyS7 Agent wants to buy round trip flight from Moscow (DME) to Novosibsrsk (OVB) for group of travelers (2 adults, 1 children and 1 infants on a lap). He also wants to buy special meals for travellers, for children special meal on rout is free. |
The general process for buying a trip such as this is:
Table of contents:
Before you can send a request to S7 Agent API, you must get an SSL certificate and configure your software. EMD meal is available for cross sell only. EMD meal is saleable per each segment. |
S7 Agent executes a searchFlightsJourney operation with itinerary criteria and passenger types
Itinerary criteria:
Passenger types count:
Received solutions divided by fare family and mostly includes 4 sub solutions (Basic Economy, Flex Economy, Basic Business, Flex Business) for each itinerary solution.
S7 Agent executes a book operation with passenger details and itinerary info of chosen solution from search results.
<DetailedFlightItem> block consists of journey information, where each slice is described by the <OriginDestination> element.
<OriginDestination> block takes from appropriate AirShoppingRS
|
Envelope/Body/AirShoppingRS/DataLists/FlightSegmentList |
and <ClassOfService> (RBD) from
Envelope/Body/AirShoppingRS/OffersGroup/AirlineOffers/AirlineOffer/PricedOffer/OfferPrice/RequestedDate/Associations/ApplicableFlight/FlightSegmentReference/ClassOfService/Code |
S7 Agent executes a reprice operation with itinerary info of chosen solution
All information must be taken from AirShoppingRS:
itinerary details (airport codes and dates for origin and departure, airline code and flight number);
|
S7 Agent executes a reprice operation with itinerary info of chosen solution
All information must be taken from AirShoppingRS:
itinerary details (airport codes and dates for origin and departure, airline code and flight number);
|
S7 Agent executes a servicePrice with itinerary info of chosen solution and PTC type info
All information must be taken from AirShoppingRS:
itinerary details (airport codes and dates for origin and departure, airline code and flight number);
S7 Agent executes a demandTickets operation with reservation reference, pricing details, rout details and ancillaries info:
<Payments> <Payment ObjectKey="ETK"> <Type> <Code>MS</Code> </Type> <Amount Code="RUB">105478</Amount> <Other> <Remarks> <Remark>*A*TEST</Remark> </Remarks> </Other> </Payment> <Payment ObjectKey="EMD"> <Type> <Code>MS</Code> </Type> <Amount Code="RUB">600</Amount> <Other> <Remarks> <Remark>*A*TEST</Remark> </Remarks> </Other> </Payment> </Payments> |
Add information about meal price from ServicePriceRS;
<FareList> <FareGroup refs="EMD" ListKey="FG1"> <Fare> <FareCode> <Code>ANY</Code> </FareCode> <FareDetail> <FareComponent ObjectKey="FC1" refs="SEG1"> <PriceBreakdown> <Price> <BaseAmount Code="RUB">300</BaseAmount> </Price> </PriceBreakdown> </FareComponent> </FareDetail> </Fare> <FareBasisCode> <Code>ANY</Code> </FareBasisCode> </FareGroup> <FareGroup refs="EMD" ListKey="FG2"> <Fare> <FareCode> <Code>ANY</Code> </FareCode> <FareDetail> <FareComponent ObjectKey="FC2" refs="SEG2"> <PriceBreakdown> <Price> <BaseAmount Code="RUB">300</BaseAmount> </Price> </PriceBreakdown> </FareComponent> </FareDetail> </Fare> <FareBasisCode> <Code>ANY</Code> </FareBasisCode> </FareGroup> </FareList> |
Fill ServiceList with information about meal code and description from ServicePriceRS.
<ServiceList> <Service refs="FC1" ObjectKey="ML1"> <ServiceID Owner="S7">0AN</ServiceID> <Name>meal</Name> <Descriptions> <Description> <Text>VEGETARIAN DINNER</Text> </Description> </Descriptions> </Service> <Service refs="FC2" ObjectKey="ML2"> <ServiceID Owner="S7">0AN</ServiceID> <Name>meal</Name> <Descriptions> <Description> <Text>VEGETARIAN DINNER</Text> </Description> </Descriptions> </Service> </ServiceList> |
demandTickets operation executes for each passenger separately |
For child passenger demandTickets operation is executed as per pax request without ancillaries