Products

Bulk Import Products

Import multiple products at once using a CSV file.

Overview

You can import up to 5,000 products at once by uploading a CSV file. The import wizard walks you through four steps: upload, column mapping, preview, and results.


Starting an Import

Navigate to Products and click the Import button next to the Create Product button.

Import button on products page

Step 1: Upload CSV

Upload your CSV file or download a template to get started.

  • Click Download Template to get a pre-formatted CSV with the correct headers
  • Drag and drop your CSV file or click to browse
  • The file must be a valid .csv file with headers in the first row
  • Maximum 5,000 rows per import
Upload step of the import dialog

CSV Template

The template includes these columns:

ColumnRequiredExample
NameYes*Widget Pro
ModelNoWP-100
PriceYes*29.99
DescriptionNoA premium widget
ActiveNotrue

Sample CSV:

Name,Model,Price,Description,Active
Widget Pro,WP-100,29.99,A premium widget,true
Basic Widget,BW-200,9.99,Standard widget,true
Custom Service,,150.00,Hourly consulting,false

Step 2: Map Columns

Map your CSV columns to product fields. The wizard auto-detects common column names (e.g., "product name", "sku", "unit price"), but you can adjust the mapping manually.

  • Required fields (Name, Price) must be mapped before proceeding
  • Unmapped optional fields will be skipped
  • Click Reset to restore auto-detected mappings
Column mapping step

Step 3: Preview

Review parsed data before importing. The preview shows:

  • Total rows parsed
  • Valid rows (will be imported)
  • Invalid rows with specific error details per field

Only valid rows are imported. Fix any issues in your CSV and re-upload if needed.

Preview step showing valid and invalid rows

Step 4: Results

After clicking Import, the wizard processes your data in batches of 100 rows and shows a progress indicator. Once complete, you'll see:

  • Number of products created
  • Number of rows skipped (duplicates or errors)
  • Specific error messages for failed rows
Import results summary

Field Details

Active Column

The Active column accepts multiple formats:

ValueInterpreted As
true, 1, yes, y, activeActive
false, 0, no, n, inactiveInactive
Empty or missingActive (default)

Price Column

Prices are parsed as numbers. Currency symbols and commas are stripped automatically (e.g., $1,299.99 becomes 1299.99). Must be a positive number.


Bulk Import Products | PineBill Documentation