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.
See posts from October 1st, 2018 for more information.
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
- Chrome: Chrome Web Store
- Firefox (and Firefox for Android): Firefox Add-ons
- Microsoft Edge: Microsoft Edge Addons
- Opera Opera Addons
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
- Chrome: Tampermonkey or Violentmonkey
- Firefox: Greasemonkey, Tampermonkey, or Violentmonkey
- Safari: Tampermonkey
- Microsoft Edge: Tampermonkey
- Opera: Tampermonkey or Violentmonkey
- Maxthon: Violentmonkey
- Dolphin: Tampermonkey
- UC: Tampermonkey
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.
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:
- Open Chrome DevTools: developer.chrome.com
- Switch to the console tab
- Paste the script into the command line: developer.chrome.com
- Run it
- Open the web console: developer.mozilla.org
- Switch to the console tab
- Paste the script into the command line: developer.mozilla.org
- Run it
- Open the web console by pressing F12
- Switch to the console tab
- Paste the script into the command line - at the very bottom
- 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)
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
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.
ITA-Matrix-PowerTools - Userscript for Orbitz/DL/UA/AA/BA/CZ/IB/LA/LH/LX/TK
#182
Join Date: Dec 2014
Posts: 747
Clearly you would not earn MP miles for flying, but would you earn 2 miles per dollar spent due to the purchase through United if you use a MP Chase card? I suspect you would.
#183
Join Date: Aug 2013
Posts: 498
MileagePlus earning (RDM,PQM,PQD) and benefits will be ineligible because the airline is not a partner. But you could always call the OAL and add your number for that alliance there.
As others have mentioned CC bonus will be applicable for the spend.
Usually the biggest reason not to is that airlines are only going to open a few buckets (usually full-fare or similar) to their non-partners (and even alliance partners aren't obliged to open lowest buckets). If you're looking for a full fare anyway it works just fine though.
p.s. this all goes back to the days when all the airlines that had digital reservations sold tickets through the same system (SABRE), a very interesting history (including a case study on antitrust courtesy of American Airlines, creator of SABRE). A very interesting history if you're into that kind of stuff.
As others have mentioned CC bonus will be applicable for the spend.
Usually the biggest reason not to is that airlines are only going to open a few buckets (usually full-fare or similar) to their non-partners (and even alliance partners aren't obliged to open lowest buckets). If you're looking for a full fare anyway it works just fine though.
p.s. this all goes back to the days when all the airlines that had digital reservations sold tickets through the same system (SABRE), a very interesting history (including a case study on antitrust courtesy of American Airlines, creator of SABRE). A very interesting history if you're into that kind of stuff.
Last edited by wto605; Aug 26, 2015 at 6:07 pm Reason: p.s.
#185
FlyerTalk Evangelist
Join Date: Aug 2005
Location: BOS/EAP
Programs: UA 1K, MR LTT, HH Dia, Amex Plat
Posts: 32,048
What tripped me up for a long time was the trailing / you have to make sure not to copy it.
e.g. if your string was:
{"jquery": "var _0=jQuery.redirect;\nvar _1=_0.call(jQuery,\"https://www.united.com/services/flight/avail/PreReview.aspx?VendorSID=B30FEAEDBC0C47B6A699E34DB 0EA1410\")"}
Then just copy https: //www.united.com/services/flight/avail/PreReview.aspx?VendorSID=B30FEAEDBC0C47B6A699E34DB 0EA1410 and make sure you don't have that slash at the end or it will error.
I am using firefox ver 40.0.2 FWIW
e.g. if your string was:
{"jquery": "var _0=jQuery.redirect;\nvar _1=_0.call(jQuery,\"https://www.united.com/services/flight/avail/PreReview.aspx?VendorSID=B30FEAEDBC0C47B6A699E34DB 0EA1410\")"}
Then just copy https: //www.united.com/services/flight/avail/PreReview.aspx?VendorSID=B30FEAEDBC0C47B6A699E34DB 0EA1410 and make sure you don't have that slash at the end or it will error.
I am using firefox ver 40.0.2 FWIW
#186
Join Date: Jan 2015
Posts: 3
Multi-city with many stop overs
Hi, I've managed to install the scripts but unfortunately I can't get the correct rout, flights, stop overs and fares.
Please find my search from ITA Matrix attached. Does anyone know where I can book this trip?
Thanks!
Please find my search from ITA Matrix attached. Does anyone know where I can book this trip?
Thanks!
#187
Join Date: Dec 2014
Posts: 747
Do the power tools in the bottom right not link you to the ota of your choice?
#188
Join Date: Jan 2015
Posts: 3
When trying to enter the correct route on hipmunk.com I just get the Oh, nuts error message.
#189
Join Date: Dec 2009
Programs: DL DM, Bonvoy Titanium
Posts: 233
@atword Unfortunately not, they either choose a different routing (return via SIN), give me higher fare, a route with other airlines or not the correct flights I've selected.
When trying to enter the correct route on hipmunk.com I just get the Oh, nuts error message.
When trying to enter the correct route on hipmunk.com I just get the Oh, nuts error message.
EDIT: Nevermind, sometimes DL.com works, but it's coming up as a more expensive D fare at ~$5,000 for me for these flights... I can get a slightly different itinerary to book with Orbitz though, so maybe play around with it?
Last edited by lamprey; Sep 2, 2015 at 2:20 am
#191
Join Date: Mar 2013
Posts: 506
My question was because I saw that previously that this script had been updating itself perfectly fine, but it did not auto update to 0.13a. Shrug.
#192
Join Date: Jul 2013
Location: BTS
Posts: 611
This is a little annoyance I've found when using United links: if I use a hidden-city US/Canada domestic which is marked as "First" and the previous flights are in business, the generated link makes the previous flights in "First" as well. See an itinerary below:
United prices this in the "First" cabin.
The solution is to manually overwrite the "First" cabin in the JSON data to "Business" and everything works fine.
United prices this in the "First" cabin.
https://www.hipmunk.com/bookjs?booking_info={"post": {"pax": 1, "trips": [{"origin": "SFO", "dest": "EVN", "dep_date": "11/7/2015", "segments": [{"origin": "SFO", "dep_date": "11/7/2015", "dest_date": " ", "dest": "ZRH", "flight_num": 39, "carrier": "LX", "fare_code": "Z28NC1N"},{"origin": "ZRH", "dep_date": "11/8/2015", "dest_date": " ", "dest": "VIE", "flight_num": 1582, "carrier": "LX", "fare_code": "Z28NC1N"},{"origin": "VIE", "dep_date": "11/8/2015", "dest_date": " ", "dest": "EVN", "flight_num": 641, "carrier": "OS", "fare_code": "Z28NC1N"}],"cabin": "Business"},{"origin": "EVN", "dest": "SFO", "dep_date": "11/21/2015", "segments": [{"origin": "EVN", "dep_date": "11/21/2015", "dest_date": " ", "dest": "VIE", "flight_num": 642, "carrier": "OS", "fare_code": "ZWRC28"},{"origin": "VIE", "dep_date": "11/21/2015", "dest_date": " ", "dest": "ZRH", "flight_num": 1575, "carrier": "LX", "fare_code": "ZWRC28"},{"origin": "ZRH", "dep_date": "11/21/2015", "dest_date": " ", "dest": "SFO", "flight_num": 9728, "carrier": "UA", "fare_code": "ZWRC28"}],"cabin": "Business"},{"origin": "SFO", "dest": "YEG", "dep_date": "11/22/2015", "segments": [{"origin": "SFO", "dep_date": "11/22/2015", "dest_date": " ", "dest": "YEG", "flight_num": 5512, "carrier": "UA", "fare_code": "ZWRC28"}],"cabin": "First"}]}, "kind": "flight", "provider_code": "UA" }
https://www.hipmunk.com/bookjs?booking_info={"post": {"pax": 1, "trips": [{"origin": "SFO", "dest": "EVN", "dep_date": "11/7/2015", "segments": [{"origin": "SFO", "dep_date": "11/7/2015", "dest_date": " ", "dest": "ZRH", "flight_num": 39, "carrier": "LX", "fare_code": "Z28NC1N"},{"origin": "ZRH", "dep_date": "11/8/2015", "dest_date": " ", "dest": "VIE", "flight_num": 1582, "carrier": "LX", "fare_code": "Z28NC1N"},{"origin": "VIE", "dep_date": "11/8/2015", "dest_date": " ", "dest": "EVN", "flight_num": 641, "carrier": "OS", "fare_code": "Z28NC1N"}],"cabin": "Business"},{"origin": "EVN", "dest": "SFO", "dep_date": "11/21/2015", "segments": [{"origin": "EVN", "dep_date": "11/21/2015", "dest_date": " ", "dest": "VIE", "flight_num": 642, "carrier": "OS", "fare_code": "ZWRC28"},{"origin": "VIE", "dep_date": "11/21/2015", "dest_date": " ", "dest": "ZRH", "flight_num": 1575, "carrier": "LX", "fare_code": "ZWRC28"},{"origin": "ZRH", "dep_date": "11/21/2015", "dest_date": " ", "dest": "SFO", "flight_num": 9728, "carrier": "UA", "fare_code": "ZWRC28"}],"cabin": "Business"},{"origin": "SFO", "dest": "YEG", "dep_date": "11/22/2015", "segments": [{"origin": "SFO", "dep_date": "11/22/2015", "dest_date": " ", "dest": "YEG", "flight_num": 5512, "carrier": "UA", "fare_code": "ZWRC28"}],"cabin": "Business"}]}, "kind": "flight", "provider_code": "UA" }
#193
Join Date: Jun 2013
Location: Somewhere between if and else
Posts: 142
That's exactly what the script created:
https://www.hipmunk.com/bookjs?booking_info={"post": {"pax": 1, "trips": [{"origin": "SFO", "dest":...}],"cabin": "Business"},{"origin": "EVN", "dest":...}],"cabin": "Business"},{"origin": "SFO", "dest":...}],"cabin": "First"}]}, "kind": "flight", "provider_code": "UA" }
The cabin selection on mixed itineraries is a tough part and I mentioned it already - but not in this case.
Anyway: Thanks for sharing your solution!
#194
Join Date: Jan 2013
Location: FT Premium Fare Deals
Posts: 74
May I kindly ask more experienced folks to help me with booking the following trip?
Both Priceline and Big O links do not work for me, Priceline errors out and Big O shows me only a handful of simplified itineraries.
Many thanks in advance.
Both Priceline and Big O links do not work for me, Priceline errors out and Big O shows me only a handful of simplified itineraries.
Many thanks in advance.
#195
Join Date: Dec 2014
Posts: 747
That's a great itinerary and super low CPM! The only way I can get the exact flights to propagate is to use the UA or AC links but that kicks the price up to $953.