Create multiple listings from a CSV, Excel file, Google Sheet or ZIP of product photos on Listings → Create. For individual items, see Create a listing from photos or manually.
Watch it end to end:
When to Use Bulk Import:
- Migrating from another platform
- Importing wholesale inventory
- Creating 100+ listings at once
- When you already have product data in spreadsheets
Import Methods
1. CSV or Excel File Upload
Upload a CSV (.csv) or Excel (.xlsx / .xls) file directly from your computer. Excel files are read natively — no need to "Save As CSV" first. The first sheet/tab is used, and the first row must be your column headers.
Leading zeros are preserved — SKUs like 00123 keep their zeros when you upload Excel, because cells are read as displayed.
Filtered your Excel sheet? A filter only changes what you see — every row is still in the file. FLUF spots this and asks before importing: you can bring in only the rows you can see, or the whole file. If you'd rather be certain, delete the filtered-out rows and save before uploading.
Ended up with fewer listings than rows? Some rows can't be imported — most often because the photo link is empty or won't open, since FLUF won't create a listing with no photo. When your import finishes you'll be told how many rows were skipped, why, and which row numbers in your file, so you can fix just those and upload them again.
2. Google Sheets Import
Import directly from a public Google Sheets URL - no file download needed!
- Open your Google Sheet
- Click Share → Anyone with the link → Viewer
- Copy the sheet URL
- Paste in the Google Sheets input field
- Click Import
Note: The sheet must be publicly viewable. Private sheets are not supported.
3. ZIP of Images (matched to your spreadsheet)
Already uploaded a CSV/Excel/Sheet? Add a ZIP of photos and FLUF attaches them to the matching rows.
Folder Structure:
products.zip
├── SKU-001/
│ ├── front.jpg
│ ├── back.jpg
│ └── detail.jpg
├── SKU-002/
│ ├── img1.png
│ └── img2.png
└── "Blue Vintage Jacket"/
├── photo1.jpg
└── photo2.jpg
How to Use:
- Upload your CSV / Excel / Sheet first
- In the mapping interface, click Upload ZIP
- Choose how to match folders:
- By SKU: Folder names match SKU values in your spreadsheet
- By Title: Folder names match product titles
- Images are automatically attached to matching products
You don't need an images column for this. If your photos come from the ZIP, the spreadsheet only needs a SKU (or title) to match folders against. Leave the images column out entirely — FLUF uses the ZIP photos.
4. All-in-One ZIP (spreadsheet + photos in one file)
The simplest option for sending one bundle: put your CSV or Excel file in the root of the ZIP, alongside folders of images named by SKU (or title). Drop the single ZIP onto the Create page and FLUF reads the spreadsheet and attaches the matching photos in one step — this is what the video above demonstrates.
Folder Structure:
my-import.zip
├── inventory.xlsx ← (or inventory.csv) in the ZIP root
├── SKU-001/
│ ├── front.jpg
│ └── back.jpg
└── SKU-002/
├── img1.png
└── img2.png
How to Use:
- Drag the ZIP onto the Create Listings page (or click to browse)
- FLUF detects the spreadsheet inside and shows the column-mapping screen
- Review the mapping (SKU is matched to the image folders automatically)
- Click Process — listings are built with their photos attached
5. Images-Only ZIP (No spreadsheet required)
Don't have a spreadsheet? Just organize your product photos into folders and let AI do the rest.
Folder Structure:
my-products.zip
├── Nike Air Max 90/
│ ├── front.jpg
│ ├── back.jpg
│ └── sole.jpg
├── Vintage Levi's 501/
│ ├── photo1.png
│ └── photo2.png
└── Adidas Hoodie/
├── img1.jpg
├── img2.jpg
└── img3.jpg
How to Use:
- Drag your ZIP onto the Create Listings page (or click to browse)
- In the modal, select Images only (no CSV)
- Review the mapping interface — each folder becomes one product row
- Click Process — AI generates titles, prices, descriptions from your photos
Notes:
- Each folder = one product listing
- Folder names are used as initial title hints for AI
- Root-level images (not in any folder) are skipped
- Empty folders are ignored
- Maximum 5,000 folders per ZIP
- Nested subfolders group images under their immediate parent folder
Spreadsheet Format Requirements (CSV / Excel)
- Headers: First row must be column headers
- CSV encoding: UTF-8 (BOM-free preferred); Excel files don't need any encoding care
- CSV delimiter: Comma-separated
- Max Rows: 5,000 rows per file. A CSV longer than that is trimmed to the first 5,000 rows, so split bigger files into batches.
- Excel filters: hidden/filtered-out rows are still part of the file — FLUF asks whether to import just the visible rows or all of them
The only columns FLUF truly needs:
| Column | Description | Example |
|---|---|---|
| title | Product title | Blue Vintage Jacket |
| price | Numeric price (no currency symbol) | 29.99 |
Photos are not a required column. Provide images either as an images column of URLs or via a ZIP matched by SKU/title — you never need both. And if AI is enabled, even a missing title or price will be generated for you; the import won't be blocked just because a field is empty.
Optional But Recommended:
sku- Your product code (and what ZIP folders match against)images- Image URLs (pipe/comma/semicolon separated) — only if you're not using a ZIPdescription- Product descriptionbrand- Brand namecategory- Product categorycondition- new, like-new, good, fair, poorsize- Size informationcolor/colours- Color(s)department- womens, mens, kids, unisexmaterial- Fabric/material typequantity- Inventory count (default: 1)
Image URL Support
If you use an images column instead of a ZIP, FLUF automatically downloads images from the URLs. Supported sources:
- Depop - Full support for Depop CDN URLs
- eBay - eBay image hosting URLs
- Vinted - Vinted image URLs
- Any public URL - Imgur, Cloudinary, AWS S3, etc.
Multiple Images: Separate with pipe |, comma ,, or semicolon ;:
https://example.com/img1.jpg|https://example.com/img2.jpg|https://example.com/img3.jpg
Automatic Retry: Failed downloads are automatically retried up to 3 times with increasing delays.
AI Fix CSV Mode
Having issues with your CSV? Let AI fix it automatically!
What It Fixes:
- Encoding issues - Windows-1252, ISO-8859-1 → UTF-8
- Wrong delimiters - Semicolons, tabs → commas
- Unquoted fields - Fields containing commas
- Missing headers - Adds generic headers
- Merged cells - Fixes Excel export issues
- Inconsistent formatting - Standardizes data
How to Use:
- Upload your problematic CSV
- If issues are detected, click Fix with AI
- Review the suggested fixes
- Download the corrected CSV
Tip: Uploading the file as Excel (.xlsx) sidesteps most of these problems (encoding, delimiters, quoting) automatically.
Step-by-Step Import
1. Upload Your File
- Go to Listings → Create
- Drag & drop your CSV / Excel file (or ZIP), or click to browse
- First 10 rows are shown as a preview
2. Map Columns
- FLUF AI suggests column mappings automatically
- Review and adjust as needed
- Use — to skip a field (AI will generate it)
- Multi-value fields (images, colors) support multiple column selection
- Any extra columns you don't map can be kept as your own custom fields, visible on each product
- Map a column to Pricing Strategy (ID) to auto-enrol items into a Smart Pricing strategy — put the strategy's ID (shown on each strategy in Smart Pricing, e.g.
steady-markdown) in that column. The item joins the strategy automatically when you crosslist it. A column named "Pricing Strategy" is detected for you.
Pro Tip: Channel-specific columns use prefixes like depop_description, ebay_title.
3. Add Images via ZIP (Optional)
- Click Upload ZIP in the mapping interface
- Choose matching method (SKU or Title)
- Images are attached to matching rows
- (Or skip this step if you used an all-in-one ZIP or an
imagescolumn)
4. Configure Settings
- Email Notification: Get notified when import completes (default: on)
- AI Processing: Toggle to disable AI generation
- Per-Marketplace Descriptions: Use different descriptions per channel
5. Start Processing
- Click Process CSV
- A spinner shows while listings are being built
- For large imports, processing continues in the background — you can navigate away
- Check the results table for status
- Imported items are created live and ready to crosslist — no separate "publish" step needed
Email Notifications
For large imports (100+ items), you'll receive an email when processing completes with:
- Total items created
- Success/error counts
- Link to review your listings
Toggle this in Settings (on by default).
Undo Last Import
Made a mistake? You can undo your last import within 24 hours.
- Look for the Undo Last Import button in the header
- Click to see how many products will be affected
- Confirm to move products to trash
- Products can be recovered from WooCommerce trash for 30 days
Best Practices
- Test first: Try with 10-20 rows before full import
- Consistent formatting: Use the same format throughout
- Clean data: Remove special characters, fix encoding issues
- Backup: Keep a copy of your original spreadsheet
- Use SKUs: Helps avoid duplicates, lets a ZIP match photos, and enables future updates
Processing Time
| Products | Estimated Time |
|---|---|
| 100 | 5-10 minutes |
| 500 | 30-45 minutes |
| 1,000 | 1-2 hours |
| 5,000 | 4-6 hours |
Monitoring Progress
- Results Table: Shows status of each row (pending, success, error)
- Row Count Badge: See total items being processed
- Error Details: Click on errors to see specific issues
- Email: Receive notification when complete
Common Issues
| Issue | Solution |
|---|---|
| Listings look "blank" right after upload | That's usually the preview table, not your real products — process the import, then check your Listings |
| Photos didn't attach | Folder names must exactly match the SKU/title column; check for extra spaces. You don't need an images column when using a ZIP |
| Excel file "did nothing" | Make sure your data is on the first sheet/tab with headers in row 1 |
| Encoding errors (CSV) | Re-save as UTF-8, upload as .xlsx instead, or use AI Fix |
| Image URLs 404 | Verify URLs are public and accessible |
| Category mismatches | Use FLUF category names exactly |
| Price formatting | Use plain numbers only (19.99, not $19.99) |
| ZIP folders not matching | Verify folder names exactly match SKU/title values |
Troubleshooting
File won't upload:
- Check file size (max 10MB)
- For CSV, ensure UTF-8 encoding (or upload as .xlsx)
- Try the AI Fix feature
Images not downloading (URL column):
- Verify URLs are publicly accessible
- Check for authentication requirements
- Try opening URLs in an incognito browser window
Google Sheets import fails:
- Ensure sheet is set to "Anyone with the link can view"
- Check the URL format is correct
- Try exporting as CSV/Excel instead
ZIP images not matching:
- Folder names must exactly match SKU or title values
- Check for extra spaces or special characters
- Try the title matching option if SKU isn't working