SShopframe

Free inventory CSV checker for car dealers.

Drop in the inventory export from your DMS and see, before you import it anywhere, which columns get read, which rows get skipped, which stock numbers repeat and which VINs fail their check digit. No signup, and the file never leaves your browser.

VIN rules read from 49 CFR § 565.13 and § 565.15 on 16 September 2026 · Published by Shopframe, a dealer website platform — see the disclosure below the tool.

The short answer

A dealer inventory CSV needs one header row and one row per unit. Four columns are the minimum any website import can build a listing from: stock number, year, make and model. Price, mileage and VIN come next; everything else (trim, colors, engine, equipment, description) makes the listing better but is optional.

Most failed imports are not a broken file. They are a price column called something the importer does not recognize, a mileage written as 45K, a stock number used twice, or a VIN with one character typed wrong. The checker below finds all four.

1 · The checker

Choose a CSV file, drop one on the box, or paste the text. The file is read by this page in your browser: no request is made and nothing is stored.

Drop your inventory CSV here

Export it from your DMS as CSV (comma separated). An Excel .xlsx file needs “Save as → CSV” first.
Disclosure, up front: Shopframe sells dealer websites, and this checker runs the same code as the CSV import inside our Site Manager — the column matching, the four required fields, the duplicate and VIN checks. So “will import” below means what it says for Shopframe. Other website providers read columns their own way; the problems it finds (a repeated stock number, a mistyped VIN, an unreadable price) are problems for any of them.

2 · What a DMS inventory export contains, column by column

Every DMS names its columns a little differently. These are the spellings the checker recognizes; case, spaces and punctuation do not matter, so Stock #, STOCK_NO and stock no. all read as the stock number.

FieldSpellings recognizedWhat to watch
Stock number requiredStock #, Stock Number, StockNo, StkThe key every later import matches on. If two rows share one, only one unit survives. Excel drops leading zeros (00412 becomes 412) — format the column as text before saving.
Year requiredYear, Model Year, YrFour digits. A two-digit 19 reads as the year 19.
Make, model requiredMake, ModelSome exports put year, make and model in one “Vehicle” column. Split it before importing; no importer can guess where the model ends and the trim begins.
PricePrice, Internet Price, Retail Price, List Price, Asking Price, Selling PriceDollar signs and commas are fine. “Call” is not a number and imports as no price. If the export has two price columns, only one is used — the checker tells you which.
MileageMileage, Odometer, Miles, Odometer ReadingWrite the whole number. 45K is read as 45,000, but 45.2 meaning 45,200 cannot be told apart from 45 miles.
VINVIN, VIN Number17 characters, never I, O or Q. See section 3 for the check digit.
Trim, bodyTrim, Body Style, BodyTrim is what separates two cars at the same price, so keep it even though it is optional.
ColorsExterior Color, Color, Interior ColorA plain “Color” column is read as the exterior color.
PowertrainEngine, Transmission, Drivetrain, Fuel TypeOptional. Leave a cell blank rather than guessing.
EquipmentFeatures, Options, EquipmentSeparate items with semicolons or a vertical bar (Heated seats; Backup camera). A comma inside a quoted cell stays part of one item’s name.
DescriptionDescription, Comments, NotesCheck what is in a “Notes” column before it goes on a public page: some DMSs keep internal notes there.
Boats, RVs, powersportsEngine Hours, LOA, Sleeps, Slideouts, Dry WeightPick your lot type above the checker so boats are not held to car rules.
Your costCostImported as your private cost for the pricing tool and never shown on the website. Other importers may not treat it that way — check before uploading a file with your cost in it.
Photosnot importedA column of photo links is ignored. Photos are uploaded to each unit from a phone or computer in the Site Manager.

3 · The five problems that break an inventory import

  1. A row without its four basics. No stock number, year, make or model, and there is nothing to build a listing from, so the row is skipped. The checker lists each skipped row by its line number in the file.
  2. A stock number used twice. Imports match on the stock number, so the second row replaces the first and one unit silently disappears. It usually means a unit was re-stocked, or two exports were pasted together.
  3. A mistyped VIN. Federal rules give every VIN a check digit. From 49 CFR § 565.13: each VIN “shall consist of seventeen (17) characters”, uses no I, O or Q, and carries a check digit in position 9. § 565.15 gives the arithmetic: each character is converted to a number, multiplied by a weight for its position, and the remainder after dividing the total by 11 is the check digit (10 is written X). One wrong character fails the check about ten times in eleven, so a failing VIN is almost always a typo — and a typo decodes to a different vehicle. The checker skips shorter, older VINs, and a boat’s 12-character hull identification number has no check digit at all.
  4. A price or mileage the importer cannot read. “Call for price”, “TBD” or a blank cell imports as no price. A price in a column called something unrecognized imports as no price for every unit, which is the most common reason a whole lot shows up unpriced.
  5. Excel got to it first. Opening a CSV in Excel and saving it again can drop leading zeros from stock numbers, reformat long numbers, and change the file’s encoding. If you must edit it in Excel, format the stock number column as Text first. The checker’s “Download a cleaned CSV” writes standard column names and plain numbers, with a byte-order mark so Excel opens accented characters correctly.

Your inventory, on a website, from this same file

Shopframe imports this CSV in the Site Manager, or pulls it on a schedule if your DMS can publish it to a web address, and builds a page for every unit with its own window sticker and ad copy — on every plan, from $29 a month. Tell us about your lot and we will send you a preview of your site.

No card, no account, no sales call, and your CSV is not sent with this form. See our Privacy policy. Prefer to look first? Build your site in the configurator or open a live demo lot.

4 · Questions dealers ask about inventory CSV files

What columns does a car dealer inventory CSV need?
At minimum a stock number, year, make and model for every unit, under one header row. Price, mileage and VIN should come next, then trim, colors, engine, transmission, drivetrain, equipment and a description. Photos are uploaded separately rather than imported from a column of links.
Why did some rows not import?
A row is skipped when it is missing its stock number, year, make or model, because there is nothing to build a listing from. A row can also vanish when it repeats a stock number already in the file, since the later row replaces the earlier one. The checker lists both kinds by line number.
How do I know if a VIN is typed wrong?
A 17-character VIN carries a check digit in position 9, calculated from the other 16 characters under 49 CFR 565.15. If the calculation does not match position 9, at least one character is wrong. One wrong character fails the check about ten times in eleven, so compare a failing VIN with the plate or the door-jamb label before publishing it.
Is my file uploaded when I use the checker?
No. The file is read by this page in your browser, and no request is made with its contents. Reloading the page clears it. The only thing that reaches Shopframe is the preview form, and only if you fill it in.
Can I import an Excel file instead of a CSV?
Save it as CSV first: in Excel, File, Save As, then choose CSV. Before saving, format the stock number column as Text so Excel does not drop leading zeros.
Does Shopframe import inventory from my DMS automatically?
Yes, if your DMS can publish its export to an HTTPS web address: paste the address into the Site Manager's feed card, pick how often it runs, and Shopframe pulls and imports it on that schedule, on every plan. It is a general CSV feed reader rather than a certified integration with a named DMS, and an FTP-only feed is not supported; a CSV file can always be imported by hand.
Sources: 49 CFR § 565.13, General requirements and 49 CFR § 565.15, Content requirements, via Cornell LII (both read 16 September 2026). If something here is out of date, tell us and we will correct it.