Skip to content
Clinton Jay Ramonida

05myGarage

A saved-vehicle list that has to survive the vehicle changing under it

Saved vehicles, viewed history and price-drop alerts, stored so a shopper’s list stays valid across dealer sites even after the vehicle sells.

The MyGarage page on the AutoSync demo: two viewed vehicles with price alerts, and the garage drawer open beside them
Fig. 01autosyncmotors.com/garage/viewed
Period
2019 · Convertus — Tadvantage platform
Role
Full-stack engineer
Reading
1 min
01

The constraint

A shopper saves a handful of vehicles, comes back a week later, and expects the list to still make sense — even though the inventory underneath it has not stood still. Vehicles sell. Prices change. A saved list that stores a snapshot of the vehicle is wrong within days.

02

A reference, not a copy

myGarage stores an advertisement ID against a user, not the vehicle’s own details. A price alert holds the price at the moment the alert was set alongside the current one, so the comparison stays live rather than being baked in at save time. Sold or withdrawn stock is handled the same way a normal browse session would handle it, because nothing about the record depended on the vehicle still existing.

03

Why it lives outside any one dealer site

Tadvantage runs one WordPress multisite per dealer, but a shopper’s garage has to survive them moving between dealer sites on the same platform. So the garage tables — saved vehicles, viewed history, price alerts, and a user record keyed to the platform’s VMS identity — live in their own AWS RDS database, reached through a singleton connection, rather than in any one dealer site’s own WordPress tables. That is the one decision that makes the rest of the feature possible: without it, a garage would be trapped on whichever site the shopper first landed on.

  1. Dealer site A
  2. Shared AWS RDS — garage database
  3. Dealer site B
04

Closing the loop: price alerts

A Node.js service reads the alerts table, compares the stored price against current pricing from the platform’s vehicle-management service, and sends a bilingual HTML email when a watched vehicle drops — with unsubscribe handling and monitoring on failure. Front end in Vue inside Tadvantage, back end in Node, one database between them, because the alternative was two sources of truth for the same price. Co-built with a colleague.

  1. garage.alerts_vehicle
  2. Node price-check service
  3. Bilingual email + unsubscribe
05

What I would do differently

Save, remove and viewed events were never instrumented, so this case study cannot tell you how many shoppers used it — the same gap Tadvantage’s main case study names. The mechanism is sound; the adoption evidence was never collected, and I would collect it now before shipping a feature like this again.

06

Stack

  1. PHP01
  2. MySQL02
  3. AWS RDS03
  4. Node.js04
  5. Vue.js05