VW Reservation Assistant

By | July 25, 2022

I created the “VW Reservation Assistant” extension for Chrome to gather more information about Volkswagen ID.4 reservations and display it on the screen as an overlay, eliminating the need to search for the data manually using the browser’s developer tools. The change log for the extension can be found at the bottom of this page.

How It Works

When you load the VW reservation screen, the page makes several calls to an API (Application Programming Interface) that sends back information about your reservation and vehicle. Unfortunately, most of this data is never displayed on the screen. If you’re interested in finding it, you have to open up the browser’s development tools and scour through the results of the API calls.

VW Reservation Assistant injects code that overrides the browser’s “fetch” function, which is used for making these API calls, and eavesdrops on the results before passing them on for normal processing. This allows the extension to transparently consume and compile the information it needs to populate the reservation information overlay.

Is It Safe?

Yes, it is safe. VW Reservation Assistant simply consumes data already available in the browser and makes it visible to the user. No data changes occur, and no data is shared unless the user specifically requests it through the extension’s settings.

Options

Currently, the extension has two options, “Share anonymous reservation data” and “Show extended information”.

Sharing Reservation Data

If a user chooses to share anonymous reservation data, every time the extension runs, data about the reservation will be sent back to my server. This data is used in two ways. First, it lets the user see a history of reservation changes over time. Second, it allows for the generation of statistics, available here, that provide interesting and/or useful information about patterns in the data.

This data shared is limited to the following:

  • Extension version – This is the version of the extension the user is currently using and helps me debug any problems that might arise, properly classify data, etc.
  • Reservation ID – This is a value that uniquely identifies each reservation. However, this is not the ID the user sees in the portal. Instead, the original ID is run through a one-way hash function before sending it across the network. This one-way hash is like a fingerprint for the data to maintain its uniqueness, but it doesn’t allow someone to derive the original value from the hash. In other words, a user’s actual reservation ID is never shared.
  • Reservation Status – This is the reservation’s current status, “ACTIVE”, “CANCELED”, “REFUNDED”, etc.
  • Creation Time – This is the date and time the user originally reserved the vehicle.
  • Order Status Code – A numeric code that identifies the reservation’s current step in the order process.
  • Order Requested Date – This is the date that an order was “locked”.
  • Model Name – This is the vehicle model, which will be “ID.4” in all cases for now.
  • Model Year – The year of the vehicle.
  • Trim – VW’s name for the vehicle’s trim, such as “Pro”, “Pro S”, etc.
  • Package Name – VW’s name for the vehicle’s package, such as “Pro 1-speed automatic”.
  • Model Code – This is a series of characters that identify the model and looks something like this: “E213TN$MAAUE23”.
  • Drive Train – The vehicle’s drivetrain, all-wheel drive vs rear-wheel drive.
  • Exterior Color Code – A coded value representing the vehicle’s exterior color.
  • Interior Color Code – A coded value representing the vehicle’s interior color.
  • MSRP – The manufacturer’s suggested retail price associated with the vehicle.
  • Destination Charge – The vehicle’s destination charge.
  • Dealer Name – The name of the Volkswagen Dealership that will receive the user’s vehicle.
  • Dealer Zip Code – The zip code of the Volkswagen Dealership that will receive the user’s vehicle.
  • Dealer Code – This is the unique identifier of the Volkswagen Dealership that will receive the user’s vehicle.
  • Estimated Delivery From Date – This is the start date of Volkswagen’s estimated delivery window.
  • Estimated Delivery To Date – This is the end date of Volkswagen’s estimated delivery window.
  • Estimated Production Date – This is apparently the date that Volkswagen estimates that production of the vehicle will begin. I have seen a placeholder in the data structure, but I have never seen it actually populated.

No information about the user (vehicle reservation holder) is sent back to the server. Some data, such as the VIN (if populated), may be visible on the screen but will not be transmitted back to the server, as it is personal and not statistically relevant.

Keep in mind that the information provided in the overlay contains your actual VW public reservation ID, not the hashed version that is sent to my server. Therefore, the user should be careful when sharing screen shots, for example, if they wish for this data to remain private.

Showing Extended Information

By default, minimal information is shown about a vehicle reservation, focusing mainly on the current status and dates. The “Show extended information” option will show all data fields, including color, drive train, dealer, etc.

VW Reservation Assistant Change Log

v1.2.9 – August 10th, 2022

  • I discovered that the drivetrain value wasn’t coming through anymore. There was apparently a change to the URL where this is retrieved once the 2023s came online, so I had to account for it.

v1.2.8 – August 10th, 2022

  • Added code to potentially get the order status code out of a different block if it’s available. I’ve seen a couple of reservations without order status codes, so I’m hoping this will alleviate that issue.
  • Corrected an error I introduced last version while I was correcting something else, which would have let the branch of code I was trying to isolate in v1.2.5 run even with the reservation ID.

v1.2.7 – August 8th, 2022

  • Added a description for status code “50”, and changed description for unknown status codes to “Unknown”. I’m feeling like an update to make these value lists downloadable would minimize the number of changes I need to make.

v1.2.6 – August 7th, 2022

  • Corrected error in VIN data consumption that I was crafty enough to introduce when I made changes to support multiple reservations. I’m not sure the VIN data is still populated, but I’m accounting for the possibility.

v1.2.5 – August 5th, 2022

  • Added code to determine reservation ID of configuration view so that it can be attached to the response. I’ve seen some MSRP and delivery values changing, and this should eliminate the possibility of multi-reservation crosstalk.

v1.2.4 – August 5th, 2022

  • Added “Nutmeg” interior color
  • Corrected the name of “Stone” color

v1.2.3 – August 4th, 2022

  • Add a couple more colors that I missed the first time around.

v1.2.2 – August 4th, 2022

  • Added new interior/exterior color codes for 2023 models.

v1.2.1 – August 2nd, 2022

  • Added another validation when assigning drivetrain value after seeing some oddities. The value is passed back with the reservation ID, but maybe after a configuration change there is something going on. It’s all a mystery if I can’t witness it firsthand.

v1.2.0 – August 1st, 2022

  • Added better support for multiple reservations, including a screen update that shows all reservations in a scrollable box.
  • Added “Statistics” button that will take users to a page with some statistics about reservations being tracked. Button will prompt user to share data if they haven’t already.

v1.1.4 – July 29th, 2022

  • Added extension version number to information when data sharing is turned on. This is for debugging issues.

v1.1.3 – July 29th, 2022

  • Added some error checks in a few places.
  • Added code to capture drivetrain (AWD vs RWD).
  • Added “Black Cloth” to list of interior colors.

v1.1.2 – July 28th, 2022

  • Added some more checks for multiple reservations to avoid data contamination.
  • Fixed CRC method that protects user reservation IDs. This is borrowed code, and I didn’t realize that it wasn’t calculating fresh on each call. This was a non-issue before adding the checks in the first bullet point, as I was only calling it once.
  • Added code to remove certain attributes, such as the VIN, from data sent to server. I have never seen this value populated, but there’s a field for it in the raw data.

v1.1.1 – July 25th, 2022

  • Fixed code to account for canceled reservations, which were periodically getting data mixed in with the current active reservation.

v1.1.0 – July 25th, 2022

  • Made the extension’s options pane available from the information overlay for easier access. You will now see a “Settings” link.
  • Added an “extended information” setting that shows additional information about the reservation.
  • Completed the data sharing functionality that was already in the options. It will now send anonymous data back to this website. The purpose behind this is two-fold. First, it will keep a history of changes to the reservation, so that crucial dates, etc. can be tracked. Second, the data may prove useful in determining vehicle fulfillment patterns from Volkswagen.
  • Added a “My History” link to the information overlay that will open a new tab with current/historical information about a reservation.

v1.0.0 – July 16th 2022

  • Initial release

Leave a Reply

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.