Product Import Format (CSV & Excel)
Everything you need to prepare a CSV or Excel file for the product importer—required columns, pricing, images, materials, dimensions, and how re-imports update existing products.

You can bring your whole catalog into Furniture Connect from a single spreadsheet. Upload a CSV or Excel file in the Import Products dialog on the Products page, map each column to a product field, and the importer does the rest. This page is the reference for what columns are supported and how each one is read.
The fastest way to start is to download the template and replace the example rows with your own. Every column below is optional unless marked Required—map only the ones you have.
How column mapping works
When you upload a file, the importer previews your headers and tries to match each one to a product field automatically. You can override any mapping before you start the import, and anything it can't match is simply skipped (you'll see those columns in the dialog so you can map them by hand).
Multi-value cells—gallery images, key features, keywords, material codes—can be separated by a comma, semicolon, or a new line within the cell.
If you are starting from a supplier's spreadsheet rather than your own, furniture supplier catalog onboarding walks through the clean-up that comes before this step, and the furniture product data model explains which of the fields below matter for each product type.
A note on units. Dimension columns currently use imperial slugs (
width_in,height_in,depth_in, and so on) because the importer predates our move to millimetres elsewhere in the product. Keep using the imperial columns below for now—millimetre aliases are on the way.
Top-level columns
| Column | Type | Notes |
|---|---|---|
| Product Name | text | Required. Falls back to Title or Item Description. |
| SKU | text | Used to match existing products on re-import. Aliases: Variant SKU, Item SKU. |
| UPC / Barcode | text | Aliases: UPC Code, Barcode. |
| Description | text | Aliases: Body, Body HTML. |
| Short Description | text | |
| Long Description | text | Alias: Romance. |
| Product Type | text | Aliases: Type, Category, Categories, Item Subclass. |
| Status | enum | One of active, draft, or archived. Anything else is ignored. |
| Country of Origin | ISO-2 code | For example US, VN, MX. |
| Care Instructions | text | |
| Key Features | list | Comma / semicolon / newline-separated bullets. |
| SEO Keywords | list | Alias: Keywords. |
Pricing
| Column | Type | Notes |
|---|---|---|
| Primary Price | number | Aliases: Price, Regular Price, Variant Price. |
| Primary Price Currency | ISO-4217 | Defaults to USD. |
| MSRP | number | |
| IMAP | number | |
| Pricing Currency | ISO-4217 | Applies to MSRP and IMAP. |
Images
Every image is stored with an optional role, which is what tells fabric and finish swatches apart from hero and lifestyle shots in the product view. Image URLs must be absolute (start with http:// or https://) and publicly reachable. Furniture asset metadata covers why the role matters once the images are in.
| Column | Stored as | Notes |
|---|---|---|
| Primary Image URL | Hero image | A single image. Aliases: Image, Image Src, Main Image. |
| Gallery Images | Gallery | Comma-separated URLs. No role applied. |
| Fabric Images | Fabric swatches | Comma-separated URLs tagged as fabric. |
| Finish Images | Finish swatches | Comma-separated URLs tagged as finish. |
If the same URL appears in more than one image column, the first role wins.
Linking to your material library (recommended)
If you already maintain a material library on the Materials page, reference existing entries by their material code instead of re-uploading swatch images. The importer matches codes case-insensitively.
| Column | Links to | Notes |
|---|---|---|
| Fabric Materials | Fabric materials | Comma-separated material codes. |
| Finish Materials | Finish materials | Comma-separated material codes. |
Unknown codes are listed in the import summary—the product still imports, just without that material link. You can use the image columns and the material columns on the same row; they populate different fields.
Dimensions and packaging
| Column | Type |
|---|---|
| Width (in) | number |
| Height (in) | number |
| Depth (in) | number |
| Weight (lbs) | number |
| Package Width (in) | number |
| Package Height (in) | number |
| Package Depth (in) | number |
| Package Weight (lbs) | number |
| Package Type | text |
| Seat Height (in) | number |
| Arm Height (in) | number |
| Clearance (in) | number |
| Piece Count | number |
| Small Parcel | boolean |
| LTL Freight | boolean |
Boolean cells accept yes / no, true / false, 1 / 0, or y / n.
If you are comparing import capabilities across systems, use the furniture PIM buyer's guide to test how each handles dimensions, variants and supplier files.
Lighting attributes
| Column | Type |
|---|---|
| Bulb Quantity | number |
| Socket | text |
| Max Watt | number |
| Connection Type | text |
| Chain Length (ft) | number |
| Chain Type | text |
| Canopy Size | text |
| Canopy Finish | text |
| Cable Length | text |
| Cable Type | text |
| Switch | text |
| Plug | text |
| Shade | text |
| Shade Type | text |
| Glass | text |
| Glass Type | text |
| Amp | number |
Material text columns (legacy)
Use these only when you don't have a structured material library—they store free text and don't link to the Materials page. Prefer the Fabric Materials / Finish Materials columns above whenever you can.
| Column | Notes |
|---|---|
| Fabric | Free text. |
| Finish | Free text. Alias: Canopy Finish. |
| Material | Free text. |
Regulatory
| Column | Type |
|---|---|
| UL Certified US/Canada | boolean |
| Anti-tip Kit | boolean |
| Prop 65 Warning | boolean |
| Prop 65 Substance | text |
| Prop 65 Harm | text |
Custom attributes
Any column you map to a custom attribute is stored on the product's attributes. If the attribute doesn't exist yet, you can create it on the fly from the import dialog when you map the column—pick the data type and you're done. For multi-select attributes, provide a comma-separated value.
How re-imports update products
Rows whose SKU already exists in your catalog update the existing product instead of creating a duplicate. Rows without a SKU always create a new product. Variant auto-detection groups products that share a base name but differ by finish, color, size, or material into a single set of variants—you can turn this off in the dialog before importing.
Common issues
- Row skipped: "missing required field name" — the row didn't map a column to Product Name. Check the column mapping in the dialog.
- Unknown material code — the code doesn't exist in your material library. Add the material on the Materials page and re-import, or remove the code from the cell.
- Image URL not stored — the URL isn't a valid
http(s)address. Make sure it's absolute and publicly reachable.
Frequently asked questions
Which columns are required in the product import file?
Only Product Name is required; the importer falls back to a Title or Item Description column if that header is missing. Every other column is optional, so map only the fields you have. SKU isn't mandatory, but it's what the importer uses to match existing products on a re-import, so include it if you plan to update the catalog later. The quickest start is to download the template and replace the example rows.
How do re-imports treat existing products?
Rows whose SKU already exists in your catalog update that product rather than creating a duplicate. Rows without a SKU always create a new product. During import, variant auto-detection groups products that share a base name but differ by finish, color, size or material into one set of variants; you can switch that off in the dialog before you run the import.
How should I format images, multi-value cells and booleans in the spreadsheet?
Image URLs must be absolute, starting with http:// or https://, and publicly reachable. Primary Image URL takes a single hero image; Gallery Images, Fabric Images and Finish Images take comma-separated URLs, and if a URL appears in more than one image column the first role wins. Multi-value cells such as key features, keywords and material codes can be separated by commas, semicolons or new lines. Boolean cells accept yes or no, true or false, 1 or 0, and y or n.
How do I link imported products to my existing material library?
Use the Fabric Materials and Finish Materials columns with comma-separated material codes from the Materials page; matching is case-insensitive. Unknown codes are listed in the import summary and the product still imports, just without that link, so add the material and re-import or remove the code. The legacy Fabric, Finish and Material columns store free text only and don't link to the library, so prefer the code columns whenever you can.
What units do the dimension columns use?
The dimension and packaging columns currently use imperial slugs such as width_in, height_in and depth_in, with weights in pounds, because the importer predates the move to millimeters elsewhere in the product. Keep using those imperial columns for now; millimeter aliases are on the way.
Still stuck on a file? Reach out to support with your spreadsheet and we'll help you map it.



