---
title: How bulk import works
Metadescription: How to import customers and products into Wholesale Handler from a spreadsheet - pasting, CSV and Excel files, the row checks, and what lands.
author: Dan Edwards
author_role: Founder
author_url: https://danedwardsdeveloper.com
author_linkedin: https://www.linkedin.com/in/dan-edwards-developer
published: 2026-08-26
---

Token estimate: ~1,200

# How bulk import works

Bring your customer list and your product catalogue in from a spreadsheet. Paste a block of rows or drop a file, fix whatever the grid flags, and import only what is clean.

By **[Dan Edwards](https://wholesalehandler.com/about)**, Founder.

## Getting the rows in

There are three ways in, and they all end up in the same grid.

-   **Paste.** Select a block of rows in Excel or Google Sheets, copy, and paste into the box at the top of the import page.
-   **Choose a file.** A **.csv**, **.tsv** or **.xlsx**.
-   **Drop a file.** Anywhere on the page, not onto a particular target.

Columns are matched by their heading, so **Business name**, **Email** and **Price list** land in the right fields whatever order they are in. Headings that are not recognised are taken in the order they appear. If you have no sheet to start from, download the template - it comes with or without example rows, and you can fill it in and hand the same file straight back.

Nothing is uploaded. The sheet is read in your browser, and only the rows reach Wholesale Handler.

## Fixing what the grid flags

Every cell is checked and ringed red or green. Problems arrive in two waves.

Format problems show instantly - a required cell left empty, an email address that is not one, a number that cannot be read. Everything else needs checking against your account, so a moment after you stop typing the grid also marks duplicates and any price list name it cannot find.

Edit the cells in place and the rings update. Nothing here stops you importing: a row still flagged when you commit is skipped, the rest are written, and you are told the import was partial. Forty-eight rows out of fifty landing is the intended outcome, not a failure.

Fixing the rest in your spreadsheet and importing the whole file again is safe. Rows already in your account are recognised and skipped, so you get the two you were missing rather than fifty duplicates.

## Imported customers are not invited

An import puts customers in your book, and no email reaches any of them.

Every imported customer reads **Not invited** until you invite them from their own record. That is deliberate - it lets you get your whole list in and check it before any of your customers hear from Wholesale Handler. It also means you can start [placing orders](https://wholesalehandler.com/articles/how-customers-and-invitations-work-on-wholesale-handler) for them straight away without them signing in at all.

A customer is treated as already known if their email address is in your contacts, in an invitation you have outstanding, or signed in anywhere on Wholesale Handler. Leave the price list cell empty and they go onto your Default list; name a list that does not exist and the cell is flagged so you can correct it.

## What an imported product is set to

Products match on two things. A name already in your catalogue counts as a duplicate whatever its capitalisation, while a SKU has to match exactly, so **ab-100** and **AB-100** are two different SKUs.

Give one price per product and the rest are worked out for you - every other [price list](https://wholesalehandler.com/articles/how-price-lists-work-on-wholesale-handler) derives from that Default price using your own rounding and charm-pricing settings, so there is no column per list.

Imported products arrive priced per unit and off your [storefront](https://wholesalehandler.com/articles/how-storefronts-work-on-wholesale-handler). Publishing one, or pricing it by weight, is done on its own product page afterwards.

## Q&A

**Q: My sheet opens with a title row and a blank line. Do I need to tidy it first?**
A: No. The heading row is looked for over the first few rows of a file, so a title and a spacer above it are fine. A paste is different - copy the headings and the rows you want, and leave the rest behind.

**Q: Why has a price come in wrong?**
A: Most likely a decimal comma. Write prices with a decimal point, because a comma is refused rather than guessed at - guessing would turn 1,50 into either one-fifty or a hundred and fifty depending on where you are.

**Q: Can I import anything other than customers and products?**
A: No. Those are the two lists worth moving in bulk. Price lists, order profiles and orders are all created in Wholesale Handler itself.
