Travelport / travelport-uapi-tutorial

The travelport-uapi-tutorial is a Java project for Universal API that will help you connect and code a standard workflow including Air and Hotel.
45 stars 34 forks source link

Inconsistent results in LowFareSearchRsp #268

Open petr-kirillov opened 7 years ago

petr-kirillov commented 7 years ago

Playing around with LowFareSearchReq I came across inconsistent results in LowFareSearchRsp

Here is the request for cheapest refundable fare between RIX and BLL on 22-Feb-2017:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/>
    <soapenv:Body>
        <LowFareSearchReq TargetBranch="P105342" xmlns="http://www.travelport.com/schema/air_v39_0">
            <BillingPointOfSaleInfo OriginApplication="UAPI" xmlns="http://www.travelport.com/schema/common_v39_0" />
            <SearchAirLeg>
                <SearchOrigin>
                    <CityOrAirport Code="RIX" xmlns="http://www.travelport.com/schema/common_v39_0" />
                </SearchOrigin>
                <SearchDestination>
                    <CityOrAirport Code="BLL" xmlns="http://www.travelport.com/schema/common_v39_0" />
                </SearchDestination>
                <SearchDepTime PreferredTime="2017-02-22" />
            </SearchAirLeg>
            <AirSearchModifiers>
                <PreferredProviders>
                    <Provider Code="1G" xmlns="http://www.travelport.com/schema/common_v39_0" />
                </PreferredProviders>
            </AirSearchModifiers>
            <SearchPassenger Code="ADT" PricePTCOnly="true" BookingTravelerRef="0" xmlns="http://www.travelport.com/schema/common_v39_0" />
            <AirPricingModifiers CurrencyType="EUR">
                <PenaltyFareInformation ProhibitPenaltyFares="true" />
            </AirPricingModifiers>
        </LowFareSearchReq>
    </soapenv:Body>
</soapenv:Envelope>

The cheapest flight options I get:

                <air:AirPricePoint Key="LkR2Cp7Q2BKA3dkEAAAAAA==" TotalPrice="EUR324.92" BasePrice="EUR248.00" ApproximateTotalPrice="EUR324.92" ApproximateBasePrice="EUR248.00" Taxes="EUR76.92" ApproximateTaxes="EUR76.92" CompleteItinerary="true">
                    <air:AirPricingInfo Key="LkR2Cp7Q2BKAcbkEAAAAAA==" TotalPrice="EUR324.92" BasePrice="EUR248.00" ApproximateTotalPrice="EUR324.92" ApproximateBasePrice="EUR248.00" Taxes="EUR76.92" LatestTicketingTime="2017-02-22" PricingMethod="Guaranteed" Refundable="true" ETicketability="Yes" PlatingCarrier="SK" ProviderCode="1G">
                        <air:FareInfoRef Key="LkR2Cp7Q2BKAbbkEAAAAAA=="/>
                        <air:TaxInfo Category="LV" Amount="EUR3.48"/>
                        <air:TaxInfo Category="XM" Amount="EUR6.50"/>
                        <air:TaxInfo Category="YA" Amount="EUR7.94"/>
                        <air:TaxInfo Category="YQ" Amount="EUR59.00"/>
                        <air:FareCalc>RIX SK X/STO SK BLL 265.15PBLOWY NUC265.15END ROE0.935287</air:FareCalc>
                        <air:PassengerType Code="ADT" PricePTCOnly="true"/>
                        <air:FlightOptionsList>
                            <air:FlightOption LegRef="LkR2Cp7Q2BKAkbkEAAAAAA==" Destination="BLL" Origin="RIX">
                                <air:Option Key="LkR2Cp7Q2BKAhbkEAAAAAA==" TravelTime="P0DT4H20M0S">
                                    <air:BookingInfo BookingCode="P" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="LkR2Cp7Q2BKAbbkEAAAAAA==" SegmentRef="LkR2Cp7Q2BKAaakEAAAAAA=="/>
                                    <air:BookingInfo BookingCode="P" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="LkR2Cp7Q2BKAbbkEAAAAAA==" SegmentRef="LkR2Cp7Q2BKAcakEAAAAAA=="/>
                                    <air:Connection SegmentIndex="0"/>
                                </air:Option>
                            </air:FlightOption>
                        </air:FlightOptionsList>
                    </air:AirPricingInfo>
                </air:AirPricePoint>

However, if I limit the search to SK carrier only I get a better fare with 4 flight options:

Request:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/>
    <soapenv:Body>
        <LowFareSearchReq TargetBranch="P105342" xmlns="http://www.travelport.com/schema/air_v39_0">
            <BillingPointOfSaleInfo OriginApplication="UAPI" xmlns="http://www.travelport.com/schema/common_v39_0" />
            <SearchAirLeg>
                <SearchOrigin>
                    <CityOrAirport Code="RIX" xmlns="http://www.travelport.com/schema/common_v39_0" />
                </SearchOrigin>
                <SearchDestination>
                    <CityOrAirport Code="BLL" xmlns="http://www.travelport.com/schema/common_v39_0" />
                </SearchDestination>
                <SearchDepTime PreferredTime="2017-02-22" />
            </SearchAirLeg>
            <AirSearchModifiers>
                <PreferredProviders>
                    <Provider Code="1G" xmlns="http://www.travelport.com/schema/common_v39_0" />
                </PreferredProviders>
                <PermittedCarriers>
                    <Carrier Code="SK" xmlns="http://www.travelport.com/schema/common_v39_0" />
                </PermittedCarriers>
            </AirSearchModifiers>
            <SearchPassenger Code="ADT" PricePTCOnly="true" BookingTravelerRef="0" xmlns="http://www.travelport.com/schema/common_v39_0" />
            <AirPricingModifiers CurrencyType="EUR">
                <PenaltyFareInformation ProhibitPenaltyFares="true" />
            </AirPricingModifiers>
        </LowFareSearchReq>
    </soapenv:Body>
</soapenv:Envelope>

Part of the response:

                <air:AirPricePoint Key="7D29Cp4R2BKADYaDAAAAAA==" TotalPrice="EUR245.92" BasePrice="EUR169.00" ApproximateTotalPrice="EUR245.92" ApproximateBasePrice="EUR169.00" Taxes="EUR76.92" ApproximateTaxes="EUR76.92" CompleteItinerary="true">
                    <air:AirPricingInfo Key="7D29Cp4R2BKAuWaDAAAAAA==" TotalPrice="EUR245.92" BasePrice="EUR169.00" ApproximateTotalPrice="EUR245.92" ApproximateBasePrice="EUR169.00" Taxes="EUR76.92" LatestTicketingTime="2017-02-22" PricingMethod="Guaranteed" Refundable="true" ETicketability="Yes" PlatingCarrier="SK" ProviderCode="1G">
                        <air:FareInfoRef Key="7D29Cp4R2BKAtWaDAAAAAA=="/>
                        <air:TaxInfo Category="LV" Amount="EUR3.48"/>
                        <air:TaxInfo Category="XM" Amount="EUR6.50"/>
                        <air:TaxInfo Category="YA" Amount="EUR7.94"/>
                        <air:TaxInfo Category="YQ" Amount="EUR59.00"/>
                        <air:FareCalc>RIX SK X/STO SK BLL 180.69ABLOWY NUC180.69END ROE0.935287</air:FareCalc>
                        <air:PassengerType Code="ADT" PricePTCOnly="true"/>
                        <air:FlightOptionsList>
                            <air:FlightOption LegRef="7D29Cp4R2BKA/WaDAAAAAA==" Destination="BLL" Origin="RIX">
                                <air:Option Key="7D29Cp4R2BKAzWaDAAAAAA==" TravelTime="P0DT11H55M0S">
                                    <air:BookingInfo BookingCode="A" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="7D29Cp4R2BKAtWaDAAAAAA==" SegmentRef="7D29Cp4R2BKABWaDAAAAAA=="/>
                                    <air:BookingInfo BookingCode="A" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="7D29Cp4R2BKAtWaDAAAAAA==" SegmentRef="7D29Cp4R2BKADWaDAAAAAA=="/>
                                    <air:Connection SegmentIndex="0"/>
                                </air:Option>
                                <air:Option Key="7D29Cp4R2BKA2WaDAAAAAA==" TravelTime="P0DT12H15M0S">
                                    <air:BookingInfo BookingCode="A" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="7D29Cp4R2BKAtWaDAAAAAA==" SegmentRef="7D29Cp4R2BKAFWaDAAAAAA=="/>
                                    <air:BookingInfo BookingCode="A" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="7D29Cp4R2BKAtWaDAAAAAA==" SegmentRef="7D29Cp4R2BKAHWaDAAAAAA=="/>
                                    <air:Connection SegmentIndex="0"/>
                                </air:Option>
                                <air:Option Key="7D29Cp4R2BKA5WaDAAAAAA==" TravelTime="P0DT16H5M0S">
                                    <air:BookingInfo BookingCode="A" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="7D29Cp4R2BKAtWaDAAAAAA==" SegmentRef="7D29Cp4R2BKAFWaDAAAAAA=="/>
                                    <air:BookingInfo BookingCode="A" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="7D29Cp4R2BKAtWaDAAAAAA==" SegmentRef="7D29Cp4R2BKADWaDAAAAAA=="/>
                                    <air:Connection SegmentIndex="0"/>
                                </air:Option>
                                <air:Option Key="7D29Cp4R2BKA8WaDAAAAAA==" TravelTime="P0DT23H10M0S">
                                    <air:BookingInfo BookingCode="A" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="7D29Cp4R2BKAtWaDAAAAAA==" SegmentRef="7D29Cp4R2BKABWaDAAAAAA=="/>
                                    <air:BookingInfo BookingCode="A" BookingCount="9" CabinClass="PremiumEconomy" FareInfoRef="7D29Cp4R2BKAtWaDAAAAAA==" SegmentRef="7D29Cp4R2BKAJWaDAAAAAA=="/>
                                    <air:Connection SegmentIndex="0"/>
                                </air:Option>
                            </air:FlightOption>
                        </air:FlightOptionsList>
                    </air:AirPricingInfo>

The search within all carriers is preferable, but how to make sure that it returns the best fare?

petr-kirillov commented 7 years ago

Attaching full LowFareSearchRsp with no limit to one carrier. There is no price point of EUR245.92:

RIX-BLL.txt

vivekjyotipramanik commented 7 years ago

Hi petr-kirillov,

Thank you for your interest in Travelport Universal API. We have tried to replicate the issue but unable to do so. Could you please check with your credentials in demosite. Please confirm if you are getting the same issue in demosite. Please find below the demosite link. Please let me know how it goes. Thanks.

http://demo.travelportuniversalapi.com/

Thanks & Regards Vivekjyoti Pramanik

petr-kirillov commented 7 years ago

Hi Vivekjyoti,

Thanks for quick response. I cannot reproduce it 100% on demo site because it does no allow to set ProhibitPenaltyFares option.

But I've got the following results on demo site using my trial credentials. The results are also confusing.

With filter by SK carrier I get 9 options with TotalPrice="EUR161.35". And when I remove the filter by SK carrier I get only 2 options with TotalPrice="EUR161.35".

AirLowFareSearch_Request-31899.txt AirLowFareSearch_Request-31903.txt AirLowFareSearch_Response-31900.txt AirLowFareSearch_Response-31904.txt

petr-kirillov commented 7 years ago

The similar issue I see with Production credentials on Demo website.

With filter by SK carrier the best option I get is 282.29 euro. Without filter by carrier the best option of SK operator is 334.91 euro.

AirLowFareSearch_Response-31924.txt AirLowFareSearch_Request-31923.txt AirLowFareSearch_Response-31922.txt AirLowFareSearch_Request-31921.txt

vivekjyotipramanik commented 7 years ago

Hi petr-kirillov,

As this is happening in Production as well, I would recommend to create an ORS ticket in the below link. Please contact your Travelport Account manager regarding the login of the support link. An API Support Analyst will look into the issue once the ORS ticket is created. Please let me know how it goes. Thanks.

https://support.travelport.com/tdssupport/main.asp

Thanks & Regards Vivekjyoti Pramanik