Vehicle Inventory Pro: Car Dealership Inventory Module for HubSpot CMS

<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >Vehicle Inventory Pro: Car Dealership Inventory Module for HubSpot CMS</span>

Your car dealership runs on HubSpot and the inventory page is a static PDF flyer pinned to a button at the top of the page. Or it is hardcoded HTML your last developer left behind, so every Price Drop is a support ticket. Or it is a third-party iframe that does not match your brand, does not index for Google Vehicle Listings, and does not expose any structured data to AI assistants. Your inventory page is your highest-intent conversion page and it is the least editable thing on your site.

Vehicle Inventory Pro is a vehicle inventory module for HubSpot CMS built for car dealerships, RV lots, motorcycle shops, boat sellers, and auto brokers. Nested categories edited directly from the page editor, four switchable layouts, live search across title, make, model, year, and trim, three independent filter groups for body type, fuel type, and condition, seven sale badges, and built-in Schema.org Car JSON-LD for Google Search, Google Business Profile, and AI Overviews. 80+ style controls. No HubDB. Works on CMS Starter.

Why HubSpot Dealership Inventory Pages Are Usually Broken

A real dealership inventory page needs categorized stock with photos, specs, prices, mileage, and condition. It needs filters that buyers actually use (SUV vs Sedan, Gas vs Hybrid vs EV, New vs Used vs Certified). It needs sale merchandising (Price Drop, Hot Deal, Just Arrived, One Owner). It needs structured data so Google Vehicle Listings, AI Overviews, and the dealer knowledge panel can read every car. And it needs to be editable by the dealership marketing manager, not the developer. On HubSpot CMS, that combination has always meant either HubDB tables with custom templates, an AutoTrader iframe, or a PDF. Until now.

Four Layouts From One Module

Vehicle Inventory Pro ships four layouts you switch between from a single dropdown. Grid (1 to 4 columns with photos, specs, price, and CTA, the default for most franchise dealership inventory pages). List (280px side photo plus horizontal spec rows, the workhorse layout for used car lots with 40+ vehicles). Classic (text-only with inline spec chips and right-aligned prices, optimized for wholesale, fleet, and broker use cases). Magazine (large alternating hero photos for featured stock, built for luxury, exotic, and boutique dealerships). Each layout has tuned mobile behavior: cards collapse cleanly, CTAs become full-width tap targets, and specs wrap inline.

Live Search and Three Filter Groups

120ms debounced keyword search across title, make, model, year, and trim. Three independent filter groups (body type, fuel type, condition) auto-generate from your data and combine for multi-criteria matching. A buyer typing "electric SUV under 30k miles" can narrow stock down with the search bar plus two filter pills in three taps. Place the toolbar in a horizontal top bar with category scroll, or in a sticky vertical sidebar with checkbox filters and category navigation. Sticky category navigation with scroll spy makes long inventory pages navigable without endless scrolling.

Three Condition Badges and Seven Sale Badges

Condition badges in green (new), gray (used), and blue (certified) appear on every card. Seven sale badges merchandise stock without code: Hot Deal, Just Arrived, Low Miles, Price Drop, Manager's Special, One Owner, and Certified. Featured vehicles get a gold accent border to push managers' picks to the top of a category. Custom price text supports "Call for price", "Sold", "POA", "Auction", "Reserved", or any other status, in case the actual number is not what you want public.

Schema.org Car and AutoDealer JSON-LD

Vehicle Inventory Pro outputs a full Schema.org @graph: AutoDealer with name, telephone, and full address; Car with brand, model, year, mileage, VIN, exterior and interior color, engine, fuel type, transmission, drivetrain, vehicle condition, and offer price; and WebPage with Speakable specification for ChatGPT, Perplexity, Claude, and Google AI Overviews. Google Vehicle Listings reads it. The dealer knowledge panel reads it. AI search assistants read it. All optional fields skip when empty so partial vehicle data still validates. One toggle disables the entire structured data block.

Built for Cars, RVs, Motorcycles, Boats, and Trailers

The field set covers every wheeled or motorized inventory category: cars, trucks, SUVs, vans, RVs, motorcycles, ATVs, boats, jet skis, and trailers. Body type, fuel type, transmission, drivetrain, mileage unit (mi or km), and price are all configurable per vehicle. Condition and sale badges work the same way regardless of category. The dealer info block carries currency symbol and ISO code so a UK car dealer, a Romanian RV lot, and a US motorcycle shop can all run the same module without any developer changes.

80+ Style Controls and Full Accessibility

Card styling (background, border, radius, shadow, hover effects), three condition badge colors, seven sale badge colors, toolbar placement and styling, category navigation, filter pill styling, CTA button design, dual font pickers with theme inheritance, and responsive breakpoints. Pure vanilla JavaScript, no jQuery, no build step, no external CDN calls. Full keyboard navigation, ARIA attributes, screen reader labels, focus-visible outlines, and reduced-motion support out of the box. Clean Core Web Vitals scores.

Get Vehicle Inventory Pro

Vehicle Inventory Pro is available on the HubSpot Marketplace for $9.99 as a one-time purchase. Live demo and full documentation on the product page. See all Studio Nope modules.

If your HubSpot dealership inventory page is still a PDF flyer, a hardcoded table, or a third-party iframe, Vehicle Inventory Pro is the car dealership inventory module with layouts, filters, sale badges, and Schema.org Car structured data your test drive bookings have been missing.