CSV import
Overview
CSV list of products bulk-imports your team catalog from a spreadsheet export β one row per product. You upload a single .csv file, map columns to Tendersight fields, assign categories per row, then create products with optional AI enrichment and duplicate-SKU handling.
Ideal for ERP, PIM, or Excel catalog exports with dozens or hundreds of SKUs. It is Path D on the new product hub for structured tabular data.
Tip: Before you import, confirm you have:
Header row as the first line of the CSV
UTF-8 encoding to avoid garbled product names
Product name and Description columns ready to map (required)
Product categories if you categorize during import
Decision on overwrite duplicate SKUs β append vs full catalog refresh
Test file with 5β10 rows before importing thousands
Important: Unmapped CSV columns are not discarded β each becomes an additional specification on every product, using the column header as the spec name. Map only core fields; leave attribute columns unmapped intentionally.
CSV import vs other catalog paths

When to use
How to open
Page heading: Upload CSV list of products
Four-step wizard
Same non-linear stepper behavior as datasheet upload β cannot advance without a CSV selected.
Step 1 β Upload file (numbered)
Click Select CSV file or drag
.csvonto dropzone.Review inline card: CSV badge, filename, size, Remove.
Click Next: Map columns.
Only one CSV file per import session.
Step 2 β Map columns (numbered)
1. Read blue Technical specifications alert:
- "Each value from the Description column will be added as a specification named Attribute."
- "Any column you leave unmapped becomes its own specification automatically."
Map dropdowns (searchable Search columns):
Preview Your file looks like this β scrollable table with color-matched headers.
Footer: "and another {n} rows" when more rows exist beyond preview.
Next: Assign categories β disabled until required fields mapped.
Step 3 β Assign categories (numbered)
Same category assignment UI as datasheet upload β items are CSV rows (product name + snippet) instead of files.
Drag rows from Uncategorized to category drop targets.
Multiselect + Assign to category for bulk moves.
Create category inline if needed.
Continue with {N} items β N = total CSV rows. Assignment optional.
Step 4 β Review & process (numbered)
1. Choose Price type for all imported prices:
- Selling price (default)
- Acquisition price
Helper: "This applies to the price column for all imported products in this file."
2. Toggle Enable AI processing:
- On β Start processing + credit badge
- Off β Create products
Set Overwrite duplicate or existing SKUs:
Use checked for full catalog refresh; unchecked for append-only imports.
Click Start processing or Create products.
After submission
Source badge: Uploaded products list. Track Processing tasks when AI enabled.
Column mapping reference
Caution: Accidentally mapping an attribute column to Product name collapses distinct products β preview the table before continuing.
Permissions
Best practices
Include header row β required for mapping dropdowns.
Map Product name + Description minimum.
Leave attribute columns unmapped β they import as individual specifications.
UTF-8 encoding β re-export from Excel if characters break.
Test small file first β validate mapping before thousands of rows.
Enable overwrite only when refreshing full catalog from source of truth.
Assign categories for families that share business knowledge text.
What you can and cannot do
You can
Import prices in multiple currencies when Currency column mapped
Import without SKU column (no duplicate detection)
Leave all rows uncategorized
Re-import same file with overwrite for refresh
You cannot
Import
.xlsxdirectly β export to CSV firstMap one CSV column to two Tendersight fields
Undo import in one click β delete products or use overwrite strategically
FAQ
Can I import non-CSV Excel files?
This module accepts .csv only. Export Excel to CSV or use datasheet upload for .xlsx.
What delimiter does Tendersight expect?
Standard comma-separated CSV. Semicolon exports β re-export or convert.
What happens to unmapped columns?
Each becomes a specification: header = spec name, cell = spec value.
Are empty rows imported?
Rows without required mapped fields fail during processing.
Can I import prices in multiple currencies?
Yes β map Currency column. Step-4 Price type still applies uniformly.
How do duplicates interact with synced products?
SKU overwrite affects team products in your catalog. Synced external products follow integration rules separately.
Fewer products than rows β why?
Duplicate SKUs skipped when overwrite unchecked.
Troubleshooting
Related articles
New product hub
Products list
Datasheet upload
Product categories
Manual product create
Team product entity