---
title: "Listing a vehicle by hand"
description: "What rooftop staff enter when they add a car without a feed, including VIN decode and the claims the form will not accept"
locale: "en"
---
# Listing a vehicle by hand

Use a feed when you have one. When you do not, a rooftop admin adds the car on the vendor product form. The dealer fields are VIN, stock, condition, year, make, model, trim, miles, colors, drivetrain, and the rooftop id.

  There is no Carfax checkbox and no clean-title checkbox. A missing value used to default "clean title" to on. That control is gone. Do not type a history claim into the description unless you are looking at a report you are licensed to quote.

### For founders

## What to enter

The public card shows year, make, model, miles, your asking price, the rooftop city, and a special price only when you set a real promotion on the product. It does not show a feed "was" price as a discount.

Days on the market can stay in your own notes. They are not printed on the public listing.

Decode VIN on the form when the button is there. The decode fills gaps. It does not replace a price you typed, and it does not prove ownership history.

Condition is new, used, or certified. Status is available, pending, sold, or in transit. A certified badge is your designation of the unit. It is not a manufacturer certificate unless you say so in the description and you mean it.

### For developers

The form section is `components/vendor/niche-product-fields-section.tsx`. Saving goes through `features/store/niche/parse-niche-fields.ts`, which sets `nichePreset` to `dealer-vehicle` and stores the vehicle under `nicheData.vehicle`. History flags are not read from the form. A previous record's flags are left untouched if they were already stored, and the public card does not render them.

`nicheSuppressesCart` in `features/store/niche/niche-commerce.ts` is true for this preset, so the Layer 1 cart button stays hidden.

  
- [features/inventory](/docs/features/inventory.md) — Next-step: loading many units from JSON instead of the form.

  
- [features/store](/docs/features/store.md) — See also: the public card those fields become.
