Go Back  FlyerTalk Forums > Travel&Dining > Travel Tools
Reload this Page >

ITA-Matrix-PowerTools - Userscript for Orbitz/DL/UA/AA/BA/CZ/IB/LA/LH/LX/TK

Community
Wiki Posts
Search
Old Nov 11, 2014, 10:54 am
FlyerTalk Forums Expert How-Tos and Guides
Last edit by: IAkH
Welcome to the ITA-Matrix-PowerTools
*** About ***
The ITA-Matrix-PowerTools are a user script maintained by fellow flyertalk members to enhance the already powerful Matrix of ITA Software by providing new features and booking links.

Features added to the itinerary details page:
  • convert times into 24h format
  • translation support
  • open fare rules in new window by default
  • price breakdown (base fare, taxes & carrier imposed surcharges)
  • editor mode (adjust cabin prior extraction)
  • multiple handy links (Seatguru, Planefinder, WhereToCredit)
  • new on page features like detailed mileage breakdown*, GCM-Map* and earned frequent flyer miles*
  • create links to various providers (OTAs / airlines / other tools) to try direct booking of your itinerary

Originally Posted by Error: Unable to find class IR6M2QD-k-i for itinRow.
If you see this error, currently you'll need to manually edit your installed script.

See posts from October 1st, 2018 for more information.
*requires background requests

The script may have lots of bugs and comes without warranty of any kind! Not all fares will be bookable or will price correctly in the booking engines. You are responsible for the money you spend - so double check your flights before purchasing AND use your sanity! Read this and the next two posts as an example: click

*** How it works ***
Using pure JavaScript we are "creating" some sort of hook that is periodically checking for page changes while working with the Matrix. As soon as you reload or leave the page the script stops (leaving the page or using the console-version) or starts from the beginning (using the userscript and perfoming a reload). Also this script is only running in these tabs/windows in which you are looking at the Matrix.
As soon as the script detects the itinerary page it reads its content - unless you activated the editor mode. It's parsing all the information found and creates - based on this information - several links to OTAs, airlines and other tools. Since we are able to remove, replace and add content to the page - we make them visible and clickable in a way you choose. By default there are no background requests.

*** How to get it running ***
There are three methods to install the script. All three below run exactly the same underlying script but are listed in order of installation complexity:

Method 1: Browser Extensions
Method 2: As a UserScript
It takes a moment to get it running but after that it will start automatically everytime you visit the Matrix and we will be able to store your settings. You will need to install a script manager.

Warning: Using a script manager and installing user scripts is a potential security risk - We need to mention it here.
Step 1: Install a script manager Step 2: Install the script
See the FAQ of your script manager how to install the script.
  • Through GreasyFork
  • Through OpenUserJS
  • Through GitHub: you should be asked whether you want to install it - make sure your script manager is running.
Method 3: iOS Safari Shortcut

Get the "Add ITA Matrix Powertools" Shortcut

Instructions much be run each time
  • Open ITA Matrix in Safari on your iPhone or iPad
  • Tap on the Share button in the bottom navigation
  • Scroll down through all the actions
  • Select Add ITA Matrix Powertools

Method 4: Console/Debug mode
You need to access the command line of your browser to execute the script. You can use either the regular version or the minified version. Just copy the entire text.

Chrome:
  1. Open Chrome DevTools: developer.chrome.com
  2. Switch to the console tab
  3. Paste the script into the command line: developer.chrome.com
  4. Run it
Firefox:
  1. Open the web console: developer.mozilla.org
  2. Switch to the console tab
  3. Paste the script into the command line: developer.mozilla.org
  4. Run it
Internet Explorer:
  1. Open the web console by pressing F12
  2. Switch to the console tab
  3. Paste the script into the command line - at the very bottom
  4. Run it by pressing the green triangle

*** How to use it ***
Once the script is running you should see a new line above the ITA logo:
Code:
Passengers (1a) Settings (v0.18) (Cabin: Auto)
As long as you see this line, there is no need to reexecute the script. Make sure to get used to the "Settings"-feature -> just click on Settings. Within the settings menu you can configure the script towards your needs/preferences. Enabling/disabling features and/or setting standard editions of providers on the fly. When using a script manager these settings should be stored and automatically load as soon as you visit matrix.itasoftware.com - but the passengers as well as the cabin detection will not be stored!
Your settings are "reloaded" everytime the itinerary details show up! If you want to use other settings, just get back to the flight selection and reselect your flights - the new settings will be used. This belongs to the passengers and cabin detection as well

Passengers:
The passenger count will not be taken from your search results! Use the passenger config on the upper left and make sure they are set before you get to the itinerary details. We had to do it this way because some providers require the age of children. But always make sure to search for the equivalent passenger count. There might be seat availability for one passenger but not for two!

Cabin detection:
You should set the cabin on the upper right to the appropriate main cabin you are looking for. Sometimes you will have economy/business class segments in mainly business/first class itineraries. These mixed itineraries make it hard to autodetect the main cabin - so you can set it manually.

*** Background requests - Privacy issues ***
Some features require to contact other servers. As long as you do not activate any of the autoload features within the settings there won't be any automatic background requests. You will have to initiate them manually. The following list will tell which features are contacting what server and what information will be transferred. All websites will know you are using this script und you are currently using the Matrix - what by the way applies to the link targets you click as well.
  • GCM-Map in inline mode - contacting gcmap.com (non SSL) providing full route data
  • WhereToCredit.com mileage accrual breakdown - contacting wheretocredit.com (non SSL or SSL - depending on whether you use the Matrix with or without SSL) providing full itinerary
  • Skimlinks affiliate links - loads a js script to adds affiliate ids to some links if and only if the "Support this tool" setting is enabled. If it is disabled, no external scripts are loaded
*** FT-Posts you should read ***
General statement regarding this script: click
How to fix class names yourself: click
Problems and limitations regarding pricing itins: click

*** Contributors ***
paul21, Steppo, IAkH, 18sas, Benchmarc and others!

I'd like to give special thanks to paul21 for starting this idea.

*** Latest Version ***
GitHub Repo

OR install directly: Executable Version minified

FYI
Steppo & IAkH (Adam Hwang) have full access to this repository.

Discussion - written by paul21:
The original posting can be found here, related to building links on delta's booking engine. The script scrapes the flight info from the itinerary (flight numbers, dates, class of service, price) and builds a link string to two booking engines (Orbitz/Delta). These links are the same links used by Google Flights (owns ITA) , Kayak, et. al. to drive purchases. I used the Google referrer codes in the scripts, so they should get the commission. It's beyond me why ITA doesn't have some form of purchase link. This a userscript, and like an ad-blocker, it modifies the way a page is viewed by editing DOM objects in the browser. Keep in mind that this tool is meant to do something you already do yourself, but to save time in the process. Any tickets issued by Orbitz/DL via these links could be issued via phone or web search. If the links work, you are avoiding a phone booking fee potentially.







Print Wikipost

ITA-Matrix-PowerTools - Userscript for Orbitz/DL/UA/AA/BA/CZ/IB/LA/LH/LX/TK

Thread Tools
 
Search this Thread
 
Old May 4, 2016, 8:01 am
  #286  
 
Join Date: Jan 2016
Posts: 610
My bad as well; I never clicked the "confirm" button. No wonder it didn't work
klanfa is offline  
Old May 4, 2016, 4:02 pm
  #287  
 
Join Date: Mar 2014
Location: MUC
Programs: Compulsory Traveller
Posts: 305
Originally Posted by Steppo
Hey there...
Spent a lot of time improving this script and released a massive update introducing new features and adding new airlines.
  • renamed UserScript
  • added cabin override
  • added pax management -> use with caution!
  • redesigned settings - added font size for links
  • added editor mode
  • reworked/adapted linking functions - added edition support
  • tweaked extraction function - bugs removed/shortened/added plane type & fare carrier/improved currency detection
  • added Amadeus related functions
  • added AAc1, BA, CZ, IB, LA, LH, LX, TK
  • added advanced routing codes using FareFreaks
  • added flight manager support of FareFreaks
In detail:
I finally renamed the script to ITA-Matrix-Powertools. But this results in a problem: If you are using a script manager and are trying to update, it may happen that you will install a new version leaving you with multiple versions of this script. This is by the way reason I refused to rename it until now. So I recommend to remove/uninstall the previous versions of this script before installing/updating the new one.

I added a "cabin" override. It is hard to "guess" the main cabin of an itinerary with mixed cabins. Now you are able to set it manually.

Added a "pax management". We talked about the passenger problem several times. Now you are able to define multiple passengers and the script should take care about how to pass it to the providers. Please note: the passenger count is not taken from the result page any longer. Please report problems you might face! eTravli is not adapted and working "the old way".

I introduced an "editor mode". Sometimes the Matrix is applying the wrong cabin/booking class. This results in an unbookable or misspriced fares. The editor mode allows to adjust these before creating links.

I added new airlines. Some of these (BA IB LH LX for example) have limited support and are added for testing purposes. Pricing complex itineraries using these airlines will fail most of the time. But Lan is pretty good in pricing Itins.

FYI: Updated the Wiki - I suggest you read it as well.

That's all for now. ^

--------------------
Update (please remove old version first!) to v0.18 using https://github.com/SteppoFF/ita-matrix-powertools/ or install/open directly

Installable/Executable Version
Executable Version minified

Happy searching
--------------------
Great update - thanks!

With the Lufthansa link, it's possible to ticket mixed itineraries (e.g. eco/biz), which is pretty cool.
ritesa is offline  
Old May 6, 2016, 12:48 pm
  #288  
 
Join Date: Feb 2001
Location: SEA once more (previously CDG and NRT)
Programs: Former DL DM and UA 1k, now a J class free agent (UA Gold, AS MVP Gold)
Posts: 2,450
+1 on Passenger count not working correctly. But it was simple enough to fix by manually tweaking the link generated for booking on Delta.com

Thank you much! Used this to book some flights that I wouldn't have been able to book otherwise (AS flights on DL ticket stock).
SEA-Flyer is offline  
Old May 6, 2016, 5:37 pm
  #289  
 
Join Date: Apr 2016
Location: USA
Programs: AA Exec Plat, Hilton Gold, Marriott/SPG Gold
Posts: 221
I constructed an itinerary on ITA from US to Asia in Y, with the US legs on AA, and international legs on BA with a connection in LHR. ITA builds the itinerary correctly, but both AA (C1) and BA websites say that the itinerary is not available. Am I doing something wrong, is the tool not working correctly, or the tool is working correctly but the airline websites are not pricing the itinerary? Priceline is pricing it correctly though.
nort is offline  
Old May 7, 2016, 2:51 am
  #290  
 
Join Date: May 2007
Location: ORD, DEL
Programs: AA (Plt Pro; 1.5 MM)
Posts: 6,185
For those who installed long ago, could the wiki include guidance on how to uninstall older versions? Could this process be automated, ie, old versions automatically removed when new ones are installed?
aktchi is offline  
Old May 7, 2016, 8:02 am
  #291  
 
Join Date: Jan 2016
Posts: 610
Originally Posted by aktchi
For those who installed long ago, could the wiki include guidance on how to uninstall older versions? Could this process be automated, ie, old versions automatically removed when new ones are installed?
If you're using Greasemonkey it should be quite straight forward through the script manager.
klanfa is offline  
Old May 9, 2016, 8:51 pm
  #292  
Moderator, Air Canada; FlyerTalk Evangelist
 
Join Date: Feb 2015
Location: YYC
Programs: AC SE MM, FB Plat, WS Plat, BA Silver, DL GM, Marriott Plat, Hilton Gold, Accor Silver
Posts: 16,767
Hello FT developer community,

Thanks for building this excellent tool! I was able to book a complex itinerary that otherwise would have taken me a long time to book on the phone with AC.

I've also encountered an issue with the tool, which appears to have been first mentioned by AUA772 in the post quoted below. By looking at the detailed links that the script generates, I've identified the problem.

Unfortunately, I'm a finance guy and don't have the first clue how to fix the script, so I thought I would post it here and perhaps one of you fine people who knows what they're doing could correct it

The problem here is that the script, when generating the dates, is entering the day of the month twice, one of which is incorrect. For example, for a flight departing September 9, 2016 at 18:25, it generates "B_DATE_1_1=20160910091825", when it should be "B_DATE_1_1=201609091825".

After deleting these duplicate/incorrect bits of text, the script works perfectly. Hopefully someone here knows how to get this sorted out. I'll even buy that person a beer or two if I meet them in person!

In case it's not clear from my summary above, I've made a Word doc, accessible through Google Drive, with more details and a clear example.

Originally Posted by AUA772
Thanks a lot for the upgraded tool; love it a lot!!!

There are two bugs I've found so far:

Firstly, take a look at the discrepancy between what ITA shows me and AC.

Name:  bsp1b5s4c.png
Views: 1178
Size:  21.6 KB

Name:  bsp2erssk.png
Views: 1182
Size:  19.3 KB

Adding the real flight time to the one shown on AC (German edition btw, but also happens on Canadian one) followed by subtracting it from the arrival and departure times on the AC site gives you the ITA data - eg 14:10-(1:25+6:35)=6:10. However, what surprises me is that on FRA-VIE the aircraft doesn't match up (321 on ITA vs 32A on AC). On Monday LH1238 indeed is a 32A, so obviously the date is passed incorrectly to AC. LH and AA work fine.

Secondly, I'm not able to change the number of passengers. Using one pax on ITA, changing it to two at the top of the script (pax management) or using two on ITA and changing it to two in the script will still be shown as one passenger on either LH, AC, AA or FareFreaks.
Adam Smith is offline  
Old May 10, 2016, 8:46 am
  #293  
 
Join Date: May 2007
Location: ORD, DEL
Programs: AA (Plt Pro; 1.5 MM)
Posts: 6,185
I would like to add my own Kudos for this excellent tool.

One problem I am running into is actually ITA's fault, not this scripts. On many flights I am checking, the ITA data appears to be stale and remains so for a long time. As a result, the links provided by the script bring up higher fares than what ITA showed.

I guess we can't do much if we rely on ITA and their data is no up to date.
aktchi is offline  
Old May 10, 2016, 12:11 pm
  #294  
 
Join Date: Jan 2015
Location: SFO
Programs: PetCo Pals Rewards
Posts: 531
Originally Posted by aktchi
I would like to add my own Kudos for this excellent tool.

One problem I am running into is actually ITA's fault, not this scripts. On many flights I am checking, the ITA data appears to be stale and remains so for a long time. As a result, the links provided by the script bring up higher fares than what ITA showed.

I guess we can't do much if we rely on ITA and their data is no up to date.
I don't think I've ever seen ITA data out of date. A more common occurrence is the fare that it show has restrictions on whose ticket stock the itinerary can be ticketed on, so when you price it out on another carrier, it finds a higher fare without the restriction.
aza72 is offline  
Old May 10, 2016, 1:59 pm
  #295  
 
Join Date: Jun 2013
Location: Somewhere between if and else
Posts: 142
Originally Posted by aza72
I don't think I've ever seen ITA data out of date. A more common occurrence is the fare that it show has restrictions on whose ticket stock the itinerary can be ticketed on, so when you price it out on another carrier, it finds a higher fare without the restriction.
Exactly... The main problem are the "must be issued on" restrictions - especially when using airlines for pricing itins. It's always worth having a quick look on the fare rules before trying to use airlines for pricing. Another issue could be the "point of sale".. but forbidden or required POSs should be stated within the fare rules as well.

Originally Posted by adam.smith
[...]
After deleting these duplicate/incorrect bits of text, the script works perfectly. Hopefully someone here knows how to get this sorted out.
[...]
Thanks! This is (was ) indeed a critical bug. Fixed it... ^

--------------------
Update (please remove old version if coming from v0.17 or earlier) to v0.18a using https://github.com/SteppoFF/ita-matrix-powertools/ or install/open directly

Installable/Executable Version
Executable Version minified

Happy searching
--------------------
Steppo is offline  
Old May 13, 2016, 8:35 am
  #296  
 
Join Date: Jan 2013
Location: NYC
Posts: 538
Originally Posted by Steppo
--------------------
Update (please remove old version if coming from v0.17 or earlier) to v0.18a using https://github.com/SteppoFF/ita-matrix-powertools/ or install/open directly

Installable/Executable Version
Executable Version minified

Happy searching
--------------------
Is anyone else seeing issues with updates from 0.18 to 0.18a?

Both GreaseMonkey and TamperMonkey say that no automatic updates are available and when I try to install the newer version via the above link, the latter displays a "Downgrade" button and these messages:

"Attention! Userscript downgrade"
"The downgraded script might have problems to read its stored data!"

I did some checking and it appears that *Monkey userscripts follow the Toolkit version format standard. This means that 0.18a is seen as the alpha (i.e., a pre-release) version of 0.18 instead of an update to it.

Perhaps the appropriate version for the current script is 0.18.1 (or even 0.19)?
st1575 is offline  
Old May 13, 2016, 11:45 am
  #297  
Marriott 5+ BadgeHyatt Contributor Badge
 
Join Date: Jan 2011
Location: HKG • Ex SFO, NYC
Programs: UA 1K, AA EXP; Marriott Amb; Hyatt Globalist; Shangri-la Diamond; IHG SpireAmb; Hilton D; Accor G
Posts: 3,319
The Swiss links lead to a 404 for me each time when trying to price out a ticket. Is this a problem for everyone?
helvetic is offline  
Old May 13, 2016, 4:03 pm
  #298  
 
Join Date: Dec 2014
Posts: 747
Now if only the UA link could be restored...
atword is offline  
Old May 13, 2016, 4:13 pm
  #299  
FlyerTalk Evangelist
 
Join Date: Nov 2004
Location: Melbourne
Programs: ►QFWP/LTG►VA WP►HyattExpl.►HiltonGold►ALL Silver
Posts: 21,993
I was looking at DL C+ (W) fares with underlying V fare basis.

Clicking through to DL had the same price but was only for main cabin (V).

It was a simple routing and was able to book directly on DL.com.
serfty is offline  
Old May 13, 2016, 5:42 pm
  #300  
 
Join Date: Jan 2013
Location: NYC
Posts: 538
Originally Posted by serfty
I was looking at DL C+ (W) fares with underlying V fare basis.

Clicking through to DL had the same price but was only for main cabin (V).

It was a simple routing and was able to book directly on DL.com.
It looks like the script is using the wrong value for the cabin on C+/W bookings in the generated link.

When I change the "cabin" parameter in the DL booking URL from:

cabin=B5-Coach

to:

cabin=COMFORT-PLUS-PREMIUM-ECONOMY

I get the proper booking class and fare as shown on ITA.
st1575 is offline  


Contact Us - Manage Preferences - Archive - Advertising - Cookie Policy - Privacy Statement - Terms of Service -

This site is owned, operated, and maintained by MH Sub I, LLC dba Internet Brands. Copyright © 2024 MH Sub I, LLC dba Internet Brands. All rights reserved. Designated trademarks are the property of their respective owners.