Import Data (CSV)

Bulk import listings from a CSV file to quickly populate your marketplace. Perfect for launching with many listings at once.

Quick answer

Store Settings → Import Data (Business plan) lets you bulk create up to 500 listings per CSV file. Upload, preview which rows will be created or skipped, assign all listings to yourself or a managed seller, then apply - nothing is created until you click Apply. Listings import as drafts unless you check "Publish all listings immediately", and image URLs in the CSV are automatically downloaded and stored on our servers.

Business Plan Feature

CSV import is available on the Business plan ($249/month). Import up to 500 listings per file.

Overview

The CSV import feature lets you create many listings at once by uploading a spreadsheet file. This is ideal for:

  • Marketplace launch: Populate your marketplace with hundreds of listings from day one
  • Provider onboarding: Create listings on behalf of sellers before they join
  • Content migration: Move listings from another platform via CSV export/import
  • Batch updates: Prepare listings offline in a spreadsheet and upload them all at once

Before You Start

For best results, set up these things first:

Configure Listing Types in Listing Form settings. Define your types (e.g., "Experiences", "Products"), categories, and custom fields. The import will use these to validate and organize your listings.

Create Managed Sellers in Managed Sellers settings (optional). If you want to assign imported listings to specific sellers, create their accounts first. Otherwise, listings are assigned to you (the store owner).

What the panel looks like

A simplified view of the Preview step: upload your CSV, verify the rows parsed correctly, see what will be created versus skipped, then apply. You can cancel at any point - nothing is created until you click Apply.

Import Listings
Sample CSV
Upload→2Preview→3Apply→4Results
my-listings.csv248 rows·12 columns
Preview (first 3 of 248 rows)
titlepricestockcategory
Mountain backpack25.0012gear
Reusable bottle18.9950accessories
Yoga mat39.008wellness
245 ready to create
All required fields present
3 will be skipped
Missing price (lines 12, 47, 89)
Assign to sellerMe / Store Owner
Publish all listings immediately (uncheck for drafts)
Cancel Apply import

Simplified illustration. The real panel sits inside Store Settings → Import Data and shows full progress feedback during the Apply step plus a per-row results table afterwards.

How to Import

1

Go to Store Settings → Import Data

2

Upload your CSV file (or download the sample CSV to get started)

3

Preview the first rows to verify your data looks correct

4

Choose a seller to assign all listings to (or keep as "Me / Store Owner")

5

Choose a default listing type (if you have multiple types configured)

6

Optionally check "Publish all listings immediately" (otherwise they're created as drafts)

7

Click "Import" and review the results showing which listings were created or skipped

CSV Format

Your CSV file needs a header row with column names, followed by one row per listing.

Required Columns

ColumnDescriptionExample
titleListing titleHelicopter Tour - 30 Minutes
descriptionListing description (no character limit)Experience KC from above...
pricePrice in your store currency, decimals allowed (19.99, not cents)199

Optional Columns

ColumnDescriptionExample
categoryCategory nameExperiences
tagsComma-separated tagshelicopter,tour,aerial
stockInventory count10
minquantityMinimum order quantity (whole number, not above stock). Only for listing types with Minimum Order Quantity turned on; a row with a value on another type is skipped. Pro+.12
variantsPrice options, all in one cell as name:price:stock separated by semicolons. Leave the price out (Red::3) to use the row's price. Put a stock number on every option (0 for sold out) and each option keeps its own stock, with the listing's stock becoming their total; put it on none and the options share the stock column. Stock on only some options skips the row. Only for listing types with Price Variants turned on.Red:19.99:3; Blue:19.99:0
skuSKU identifierHELI-30
imagesComma-separated image URLs (automatically downloaded and stored on our servers)https://example.com/photo.jpg
listingTypeListing type ID, slug, or nameexperiences
compareAtPriceOriginal price (for sale display)249
publishedtrue/false (overrides publish all setting)false

Custom Fields

If you've added custom fields in your Listing Form settings, you can include them as CSV columns. Use the field's label as the column header (its internal name also works). The sample CSV on the import page already has a column for every custom field in your store and one example row per listing type. A row only needs values for the fields of its own listing type.

Field TypeCSV Value FormatExample
Text / TextareaPlain textDowntown Helipad
NumberNumeric value30
Checkboxtrue, false, yes, no, 1, 0true
SelectOne of the defined optionsPremium
Multi-selectSemicolon-separated valuesWiFi;Parking;Photos
Date / TimeDate or time string2026-04-15

Multi-select: Use Semicolons, Not Commas

Since commas are the CSV column separator, use semicolons (;) or pipes (|) to separate multiple values within a multi-select field. For example: WiFi;Parking;Pool

Image Handling

When you include image URLs in your CSV, they are automatically downloaded and re-uploaded to our servers during import. This means your listing images are safely stored even if the original source goes offline later.

Supported formats: JPEG, PNG, GIF, WebP, AVIF
Maximum 10 MB per image
Multiple images per listing: separate URLs with commas
Images that fail to download are skipped (listing is still created without them)
Images are fetched one at a time, so an import has up to 5 minutes to finish. Importing hundreds of rows with several image URLs each? Split the file into batches of 100-150 rows.
Images are deleted automatically if you later delete the store

Example CSV

Here's an example for a local experience marketplace with a custom "duration" field:

title,description,price,category,duration,amenities,published
"Helicopter Tour - 30 Min","See KC from above!",199,Experiences,30,Parking;Photos,false
"Downtown Limo Ride","Luxury limo with champagne",149,Nightlife,120,Champagne;Music,false
"Full Spa Day","Massage, facial & aromatherapy",249,Spa & Wellness,360,Towels;Robes;Parking,false

Seller Assignment

Store Owner (Default)

If no seller is selected, all imported listings belong to you. You can reassign them later.

Managed Seller

Pick a managed seller from the dropdown to assign all imported listings to them. Create sellers first in Managed Sellers.

Typical workflow: Create the listings assigned to yourself first, then reassign to the correct seller once they've been onboarded. Or, if you've already created managed seller accounts, pick them directly during import.

Limits

LimitValue
Max rows per import500
Max file size10 MB
File formatCSV only (.csv)

Imported listings skip the approval queue

An import never lands in Pending Review, even with Require Listing Approval switched on: you are the one importing, so there is nobody to approve it to. A row with published set to true goes straight onto the storefront, and anything else arrives as a draft. Drafts wait for you on the Listings tab, where you can select them all and publish them in one go once the photos and prices are right.

Tips

  • Download the sample CSV from the import page to see the exact format
  • Import as drafts first, review them, then publish
  • Set up your listing types and custom fields before importing so validation works correctly
  • For large imports, split into multiple CSV files of 500 rows each
  • Use semicolons (not commas) to separate multi-select values
Import Data (CSV) | Prometora Docs