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

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

Old Apr 10, 2015, 8:29 pm
  #91  
 
Join Date: May 2006
Location: SAN
Programs: Lots of faux metal
Posts: 6,416
Originally Posted by paranoiatx
Such as some nice DXB-AUS ones? Add me too the list! Even just sending the Orbitz deep link off to a friend is pure gold. Here, book this link. Done.
Yes, I posted the script in that thread and have received several PMs from others who were able to use it.
skunker is offline  
Old Apr 14, 2015, 1:02 pm
  #92  
Hilton Contributor Badge
 
Join Date: Feb 2014
Location: ±38,000 feet
Programs: LH HON, BA GGL, AF Plat, EK Plat
Posts: 6,426
This is absolutely brilliant! Going to save me so many hours on the phone trying to push through an itinerary. Thanks so much to all of you!
nufnuf77 is offline  
Old Apr 16, 2015, 5:47 am
  #93  
 
Join Date: Oct 2012
Location: Tćt pĺ Dyrehaven
Programs: SK Gold
Posts: 301
Originally Posted by Steppo
  1. Open ita-matrix-powertools on github:
    https://github.com/paul21ft/ita-matrix-powertools
  2. Choose: ita-matrix-powertools.user.js
  3. Click on RAW (seems to work now even with special-chars)
  4. You should be asked whether you want to install this script
  5. Install and you are done
This looks totally awesome and I would love to try it out. However, I haven't been successful installing the script yet. I have tried to follow the steps above (using Firefox). But when I follow ste 3 and click on RAW, I don't get asked whether I want to install the script. All I get is this: https://raw.githubusercontent.com/St...rtools.user.js

Any suggestions how to make this work would be much appreciated.

Last edited by TWA884; Apr 16, 2015 at 9:11 am Reason: Fix quotation code
Travel4Love is online now  
Old Apr 16, 2015, 6:17 am
  #94  
 
Join Date: Mar 2014
Location: IAD
Posts: 72
You'll love it! I'm basically a complete newb to scripts and I ran into a problem (probably self-inflicted) trying to install it and fussed with it before finding a workaround which was to simply copy the code from line 115 on down. Then I opened Greasemonkey's "New User Script" dialog box, created a name for the script, saved it and then pasted the code into the box that appears. I use a Mac, btw, so this may not be helpful for a PC. You do have to install Greasemonkey...
jpauls123 is offline  
Old Apr 16, 2015, 9:32 am
  #95  
 
Join Date: Aug 2013
Posts: 498
Originally Posted by Travel4Love
This looks totally awesome and I would love to try it out. However, I haven't been successful installing the script yet. I have tried to follow the steps above (using Firefox). But when I follow ste 3 and click on RAW, I don't get asked whether I want to install the script. All I get is this: https://raw.githubusercontent.com/St...rtools.user.js

Any suggestions how to make this work would be much appreciated.
Did you set up greasemonkey? See here for more.
wto605 is offline  
Old Apr 17, 2015, 4:12 am
  #96  
 
Join Date: Oct 2012
Location: Tćt pĺ Dyrehaven
Programs: SK Gold
Posts: 301
Originally Posted by jpauls123
You'll love it! I'm basically a complete newb to scripts and I ran into a problem (probably self-inflicted) trying to install it and fussed with it before finding a workaround which was to simply copy the code from line 115 on down. Then I opened Greasemonkey's "New User Script" dialog box, created a name for the script, saved it and then pasted the code into the box that appears. I use a Mac, btw, so this may not be helpful for a PC. You do have to install Greasemonkey...
Originally Posted by wto605
Did you set up greasemonkey? See here for more.
I finally figured out my problem. My Firefox version didn't support the Greasemonkey version I downloaded. Problem fixed. This tool is totally awesome! Big thanks to everyone contributing to the script!^^
Travel4Love is online now  
Old Apr 18, 2015, 12:54 am
  #97  
 
Join Date: Apr 2015
Programs: BAEC Silver
Posts: 123
Thanks very much for creating this fantastic script! Saved me having to try to book over the phone. ^
FallOfTheWall is offline  
Old Apr 19, 2015, 7:56 am
  #98  
 
Join Date: Jun 2013
Location: Somewhere between if and else
Posts: 142
First of all:
Thanks for all the positive feedback!
Special thanks to RizwanK! We finally got rid of the seperate files!

Have done an update introducing SeatGuru (click on the plane type) and Planefinder (click on the flight number).

Did a lot of changes in the background adding capability to add translations. Added the possibilty to print notifications. Also introduced a new function to select the itin-cells. Might be usefull for new functions.

Tested on FF 37 and IE 11
--------------------
Update to v0.11 using https://github.com/SteppoFF/ita-matrix-powertools/ or install/open directly

Installable/Executable Version
Executable Version minified

Happy searching
--------------------
Steppo is offline  
Old Apr 20, 2015, 4:00 am
  #99  
 
Join Date: Oct 2013
Posts: 639
Thanks Steppo, your work is highly appreaciated!!!
I saw you also made the following change: set timeout of resultpage to 10s
Could you elaborate on that? Does it mean if we do a more complex ita search it will timeout after 10s now instead of the default timeout?

Thanks
fuyao is offline  
Old Apr 20, 2015, 4:52 am
  #100  
 
Join Date: Jun 2013
Location: Somewhere between if and else
Posts: 142
Originally Posted by fuyao
Thanks Steppo, your work is highly appreaciated!!!
I saw you also made the following change: set timeout of resultpage to 10s
Could you elaborate on that? Does it mean if we do a more complex ita search it will timeout after 10s now instead of the default timeout?

Thanks
No. When getting to the itinerary page your itinerary needs some time to load. We are starting a loop function to wait for the itinerary to show up. Since we do not want an inifinit loop we need to define a timeout. When the itinerary has not been loaded at that point, we stop the extraction function. As far as i know IAkH is working on hooking the request itself, but anyhow. While testing the changes i faced the timeout a couple of times. It's no big deal though and nothing to worry about. Otherwise i would have mentioned it here.
Once again: we are not manipulating any requests regarding matrix.itasoftware.com
What you mean is hardcoded within the serverside software and i think there is, will and should be no way or attempt to bypass that.
Steppo is offline  
Old Apr 20, 2015, 6:24 am
  #101  
 
Join Date: Jun 2013
Location: Somewhere between if and else
Posts: 142
Sorry for double posting... but I think it's worth it.
Well.. I have to correct myself.
Found a little bug in the findItinTarget-function. Fixed it and added a small CSS-fix for the start page. Caused by the length of the changelog of ITA, the container is not always bound to the top of the page. This results in "hopping around" of the input-container while switching between return/one-way/multi-city.

In the end:
Thinking about what you want to do: 10-30min
Actual coding time: 1-2h
Testing your stuff: 2h
Finding bugs after release: Priceless!!

Sorry for any inconvenience caused.

Special request: If somebody out there knows how to interact with the inputs on the start-page.. please drop me a PM.. i really want my quicklinks back.
--------------------
Update to v0.11a using https://github.com/SteppoFF/ita-matrix-powertools/ or install/open directly

Installable/Executable Version
Executable Version minified

Happy searching
--------------------
Steppo is offline  
Old Apr 24, 2015, 7:05 am
  #102  
 
Join Date: Jan 2015
Location: Central Europe
Programs: DL GM, TK Elite+, ITA Executive, HHonors Diamond, Marriott Silver, Accor Plat
Posts: 196
Hey there...

first of all: THANKS to Steppo for creating this marvelous script! I've been wanting that ever since I discovered ITA Matrix.

Now for my little problem:
Maybe I am just a bit stupid - i tried to copy/save links to Delta/Orbitz for "later use" (as in looking the itineraties up again on Delta/Orbitz a few days later without having to re-build them in ITA). Did not work though - Delta's website only takes me to this page here: http://www.delta.com/air-shopping/se...rorCode=101696

Orbitz doesnt do anything at all. Not knowing anything about this - could this be related to the referrer and is there a way to get around this?

Thanks again

Nightliner
NightlinerVIE is offline  
Old Apr 26, 2015, 8:24 am
  #103  
 
Join Date: Jul 2011
Programs: BA Bronze
Posts: 1,026
Many thanks to paul21, Steppo and 18sas for this brilliant script! I'm rookier than rookie with scripts, but managed to get this up and running.

Just on the point about booking classes - I searched a CX/AC itinerary in specific (semi-flexible economy) buckets, something you of course can't do on (most/all?) OTAs. Although it brought up cheaper buckets on Orbitz and Cheaptickets, it actually brought up the exact fare buckets on AC's site. Beautiful!

Didn't get any results at all on the links via the Farefreaks links - have only tested my above itinerary which had been problematic on almost all OTAs I tried anyway. e.g. it would appear on Kayak as bookable on Expedia, but when clicking through to Expedia it would always return an error message, regardless of the Kayak/Expedia country site used. So may well just be an issue with this itinerary, will play around.

The seatguru and planefinder functionality is a cool touch too.

Thanks for your generosity!
go_around is offline  
Old Apr 26, 2015, 10:16 am
  #104  
 
Join Date: Oct 2013
Posts: 639
@steppo thanks for the explanation
1 small request, could you add an enable/disable option for the planefinder tool in the settings box? I like to copy flight numbers and now everytime i click on it to actually mark it, it opens the plane finder website...

Found another OTA that allows deeplinking to exact flightnumbers:
Code:
http://googleflights.flightnetwork.com/flights/matchflight?ref=googleflights&adt=1&tot=1517.86&ob1=LH495W!201506261745!YYZMUC!201506270745&ob2=LH1842W!201506270905!MUCFCO!201506271035&ib1=LH9445S!201507100955!BGYMUC!201507101100&ib2=LH494S!201507101155!MUCYYZ!201507101459
I don't persoanlly like flightnetwork that much, lots of wrongly priced itineraries that don't get ticketed in the end but hey, maybe it helps some people
fuyao is offline  
Old Apr 26, 2015, 1:05 pm
  #105  
 
Join Date: Jun 2013
Location: Somewhere between if and else
Posts: 142
Originally Posted by NightlinerVIE
Now for my little problem:
Maybe I am just a bit stupid - i tried to copy/save links to Delta/Orbitz for "later use" (as in looking the itineraties up again on Delta/Orbitz a few days later without having to re-build them in ITA). Did not work though -
How does you saved link look like?
Something like this (?):
Code:
orbitz.com/book/bookingpath?execution=e2s1
You cannot save this kind of links. You should be able to copy and save the links created by this script using a right-click and "copy".

Originally Posted by go_around
Just on the point about booking classes - I searched a CX/AC itinerary in specific (semi-flexible economy) buckets, something you of course can't do on (most/all?) OTAs. Although it brought up cheaper buckets on Orbitz and Cheaptickets, it actually brought up the exact fare buckets on AC's site. Beautiful!

Didn't get any results at all on the links via the Farefreaks links - have only tested my above itinerary which had been problematic on almost all OTAs I tried anyway. e.g. it would appear on Kayak as bookable on Expedia, but when clicking through to Expedia it would always return an error message, regardless of the Kayak/Expedia country site used. So may well just be an issue with this itinerary, will play around.
Well it's allways easier to go into a shop saying: "Hey, i want that.. this.. that and this. How much is it?" That's what this script is doing. It's a pitty that there are just a few OTAs out there supporting this way of placing bookings.
What FareFreaks is doing, due to limitations of the OTAs: "Hey, i want something that looks like this.. and a little bit like that. Show me what you have." FareFreaks is trying to form your request as precisely as possible. But for some awkward reasons most OTAs are somewhat of stupid. So you have to try in which combination of describing what you want the OTA is showing up your desired flight. Most flights will show up.. but you have to find out how (remove one leg in the middle, remove the times for certain flights... etc). Personally, I like this kind of puzzle but I hate the UIs of OTAs. But in the end: OTAs are not made to find special booking classes since they only print the cheapest.

Originally Posted by fuyao
@steppo thanks for the explanation
1 small request, could you add an enable/disable option for the planefinder tool in the settings box? I like to copy flight numbers and now everytime i click on it to actually mark it, it opens the plane finder website...

Found another OTA that allows deeplinking to exact flightnumbers:
Code:
http://googleflights.flightnetwork.com/flights/matchflight?ref=googleflights&adt=1&tot=1517.86&ob1=LH495W!201506261745!YYZMUC!201506270745&ob2=LH1842W!201506270905!MUCFCO!201506271035&ib1=LH9445S!201507100955!BGYMUC!201507101100&ib2=LH494S!201507101155!MUCYYZ!201507101459
I don't persoanlly like flightnetwork that much, lots of wrongly priced itineraries that don't get ticketed in the end but hey, maybe it helps some people
Thanks for the feedback. Should have done it from the beginning.. Did a quick update just4you ^
Will have a look on flightnetwork asap but sounds good! I you find something like that, just post it here or via PM.. we will have a look whether we can use it.

--------------------
Update to v0.11b using https://github.com/SteppoFF/ita-matrix-powertools/ or install/open directly

Installable/Executable Version
Executable Version minified

Happy searching
--------------------

Last edited by Steppo; Apr 26, 2015 at 2:07 pm
Steppo is offline  

Thread Tools
Search this Thread

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.