Guide · Vehicle fitment

A fitment file that imports the first time.

Year / make / model search is only as good as the fitment data behind it. How to structure the file, which columns matter, and the mistakes that cause wrong results.

The data model: one row per product and vehicle

A fitment row links one product to one vehicle line: a year or a year range, a make, a model and, where it matters, a submodel (trim) and an engine. A part that fits ten models has ten rows; a part that fits one model from 2015 to 2020 has one row with a year range.

An empty submodel or engine means "all submodels" or "all engines" of that model. Only fill them in when the fitment really differs.

Columns

A fitment CSV that our WooCommerce plugin and Shopify app both understand in spirit (exact headers in each product’s docs)
ColumnRequiredExampleNotes
Product (SKU, ID or handle)yesKVF-BRAKE-01Variation SKUs map to their parent product
Year or year rangeyes2015-2020Or separate year_from / year_to columns
MakeyesFordSpell makes the same way everywhere
ModelyesF-150
Submodel / trimnoXLTEmpty = all
Engineno3.5L V6Empty = all
NotesnoFront axleShown with the fit badge
UniversalnoyesFits every vehicle; year, make and model can stay empty

For our WooCommerce plugin the header row looks like this (names are case-insensitive, and comma, semicolon, tab or pipe delimiters are detected):

sku,year,make,model,submodel,engine,notes,universal

The Shopify app takes the product handle, SKU or product ID plus year or year range, make and model, with optional submodel, engine, notes and universal columns; its docs include a sample file.

Clean the data before you import

  • One spelling per make and model. "VW", "Volkswagen" and "VOLKSWAGEN" become three makes in the search.
  • Year ranges instead of one row per year. Smaller files, and a range counts as one row on row-limited plans.
  • No merged cells or notes in the year column. Put comments in the notes column.
  • Mark universal parts. Floor mats or phone mounts that fit everything should not need 500 rows.
  • Keep a master file. Export after edits in the admin, so your spreadsheet stays the source of truth.

Import with a preview

Import into a staging copy or use a preview first: you want to see the row count and every error before anything changes. Both of our fitment products show a preview and the errors per row, and both can add to or replace existing fitment.

  1. Export a sample from the product, or start from the sample file in the docs.
  2. Fill in your rows and save as UTF-8 CSV.
  3. Upload, read the preview and fix the reported rows.
  4. Import, then search for two or three vehicles you know and check the fit badge on a few products.

Products mentioned in this guide

WooCommerce · Vehicle Fitment & YMM Search

Vehicle fitment

Year, make and model search, My Garage, a fit badge on every product and CSV import for large fitment files.

$49

Shopify · Vehicle Fitment & YMM Search

Vehicle fitment

YMM search on your own collection pages, a fit badge on every product, My Garage and CSV import.

Free plan

FAQ

Questions and answers

Do I need an ACES or VCdb vehicle database?

Not for our products. You import the vehicles your parts fit, so the search only lists vehicles you sell parts for.

How large can the file be?

The WooCommerce plugin imports hundreds of thousands of rows in the background. The Shopify app allows 300 rows on the free plan, 25,000 on Basic and 250,000 on Pro.

How do I handle a part that fits every car?

Mark it as universal instead of listing every vehicle; it then appears in every vehicle search with a universal fit badge.

Pick your platform

Every product has its own page with screenshots, documentation and the changelog on the store for your platform.