Switching3 min read · Updated
How to import 30,000 SKUs into a new POS without chaos
A step-by-step plan for moving a big hardware item file into a new POS: cleaning, units, categories, batches, opening stock, and checking it before go-live.
Key takeaways
- Clean the file before you import, not after.
- Create units and categories first; the importer matches by name.
- Import 50 rows, then batches of a few thousand.
- Import opening stock separately per location, then spot-check counts.
Big item files are the reason most hardware stores put off changing POS. Thirty thousand rows feels like a month of typing. It isn’t, if you treat it as a data job with a plan. Here is the order we use.
1. Export everything you can
From the old system, export: products (with SKU, barcode, supplier code, cost, price, tax, unit, category), current stock per location, customers with balances and limits, and suppliers. Save the original files untouched; work on copies.
2. Throw out what you don’t need
Old systems collect dead rows. Before mapping anything, remove:
- items with no sales and no stock in the last 12 months;
- duplicates (same barcode, different SKU);
- test items and “MISC” codes.
It is common to find that a large share of rows can go. Every row you delete is a row you don’t have to fix.
3. Fix the columns Excel breaks
- Format SKU and barcode columns as Text before pasting, or leading zeros disappear and long barcodes turn into 7.29E+12.
- Use one decimal separator for prices.
- Trim spaces from names and codes.
4. Decide units before importing
If you sell screws by the box and the piece, decide the base unit now. Create the units (piece, metre, Box 100, Coil 50 m) in the POS first; the importer matches unit names exactly. See units of measure.
5. Create categories and brands
Same reason: the importer matches names. Keep the category tree shallow: department → sub-category is enough for most stores.
6. Map into the template
Download the import template and paste your columns into it. The ones that matter most for hardware:
| Template column | Note |
|---|---|
| SKU | Your code or the supplier’s; must be unique |
| Barcode type | C128 for your own codes, EAN-13/UPC for manufacturer codes |
| Unit / sub-units | Must already exist |
| Rack / row / position | Optional now; easy to add later aisle by aisle |
| Purchase price / selling price | Inclusive or exclusive of tax, per your setting |
| Tax | The tax group name |
7. Import 50 rows first
Upload a small batch. Errors are reported by row: missing name, duplicate SKU, unknown unit. Fix the sheet, not the database, and re-import. Try the CSV test rig to see the kinds of errors.
8. Import the rest in batches
A few thousand rows per batch keeps errors manageable. Note each batch in a log so you know what’s in.
9. Opening stock, per location
Import opening stock separately, with a location column, so the store and the yard each start with the right count. Do this as close to go-live as possible.
10. Check before you switch
- Search 20 random items by barcode and by name.
- Ring test sales for a box and a single.
- Compare total stock value with the old system’s report; differences point at unit or cost errors.
- Check that contractor balances match your aged-debtors report.
Get help with it
On the Yard and Branches plans we do the mapping with you for free. Send an export and we’ll show you on a demo how it lands. See switching.
Questions readers ask
- How long does it take to import 30,000 SKUs?
- The upload itself takes minutes per batch. Cleaning and mapping the file is the real work: plan one to three days depending on how tidy the old data is.
- Should I import inactive items?
- No. Leave out items with no sales and no stock in the last year; keep them in an archive file instead.
- What if my old system can't export?
- Most can export to CSV, sometimes via a report. If not, ask the vendor; as a last resort a supplier price list is a good starting catalogue.