WooCommerce product uploadsfrom your supplier’s spreadsheet
Send the spreadsheet exactly as your supplier sent it. We hand back a file laid out for WooCommerce’s own product importer, with every product matched, the gaps filled from sources you can check, and the formats fixed. You check it, then run the import.
- Nothing goes live without your sign-off
- Every value keeps its source
- Your data is never shared
| WooCommerce column | BeforeSupplier sent | AfterReady for WooCommerce |
|---|---|---|
| Type | blank | simple |
| SKU | FP-28, with a space in front | FP-28 |
| Name | FRYING PAN 28CM NON STICK | 28 cm non-stick frying pan |
| Published | Yes | 1 |
| Regular price | £24.99 | 24.99 |
| Weight (kg) | 1200 g | 1.2 |
| Categories | Kitchen/ | Kitchen > |
| Stock | Plenty | No number given: yours to set |
| Images | fp28.jpg | https link to the full-size image |
| Attribute 1 name | Colour: Black | Colour |
| Attribute 1 value(s) | Colour: Black | Black |
How it works
Send the file as it arrived
Any columns, any names, no template to fill in. A SKU or barcode on each row is enough to start.
We get it ready for WooCommerce
Every product is matched to the real thing and checked against a source. We fill the gaps, fix the formats, and lay the rows out in the columns WooCommerce’s importer reads, with a parent row for each product that comes in sizes or colours.1
You check it, then import it
Nothing goes live without your sign-off. When you are happy, you run the importer that comes with WooCommerce, from Products, All Products, then Import.1
Where supplier spreadsheets break a WooCommerce import
Supplier files are made for a buyer or a warehouse, not for WooCommerce’s importer. These are the things in them that trip it up, each with WooCommerce’s own documentation linked.
Categories written the supplier’s way
BeforeKitchen/
Cookware/ Frying PansCookware; Frying pans AfterKitchen >
Cookware > Frying pans The importer wants a > between the levels of a category and a comma between separate ones, and a comma inside a category’s own name needs a backslash in front of it.1 Each product is filed into your own categories first, then the path is written the way the importer reads it.
Units typed into the weight
Before1200 g1.2 kg1.2kg
After1.2
Words where the importer wants numbers
BeforeYesYESLive
After1
Published takes 1 for published, not Yes, and WooCommerce’s advice for a supplier’s file is to strip out “formulas, currency symbols, extra whitespace, and unsupported formatting” before importing it.1
A supplier’s ID column
BeforeID: 1482, the supplier’s code
AfterFP-28, in the SKU column
WooCommerce matches products already in your shop by ID or SKU, and its own schema warns that an ID “will overwrite data for that ID on import”.13 A supplier’s code that happens to match one of your product IDs would overwrite that product, so it goes in SKU, never in ID, with a SKU on every row that stays the same from one delivery to the next.1
Variations that will not join up
BeforeColour: Blackcolour: blackBlk
AfterBlack
A product in sizes or colours is a parent row and a row for each variation, and WooCommerce asks for attribute names and values to be spelt identically on every row; its own example of what to tidy is L, l and Large.1 Every spelling is folded onto one value, so the variations join their parent and your filters show one Black, not three.
Image links that will not load
Beforefp28.jpg
Afterhttps link to the full-size image
WooCommerce copies each image into your Media Library while it imports, so a link has to be directly reachable at that moment, links behind redirect scripts are not supported, and a bare file name only works for an image already in the library.1 We open every link before the file is built and swap thumbnails for the full-size original.
What you get back
A Google Sheet or Excel file laid out for WooCommerce’s importer, one tab per category, and the same products before and after so you can see exactly what changed.
Every product matched and checked
Each SKU or barcode is matched to the real product, and every source page is checked to make sure it really shows that product.
The gaps filled, with sources
Missing specifications, descriptions and images are found on manufacturer and retailer pages, and every value keeps a link to where it came from, so anyone on your team can check it.
One spelling for every value
Freestanding, Free-standing and freestanding become the one word you choose, so your shop’s filters offer one option instead of three, and every future file lands on the same word.
Titles and descriptions written from the facts
Product titles, descriptions, page titles and search snippets are written from the values already in the data, to length limits that are enforced.
Images that will import
The full-size original behind every thumbnail, with logos, badges and duplicates taken out, and any format your shop will not take converted, at a link we host for 30 days.
A score before anything goes live
One quality score for the file and a grade for each product, worst first, so you know what to look at. It warns; it never blocks.
Recent jobs
Our own account of work we have done. The customers are unnamed here, and every figure comes from our own records of the job.
- 15 to 1categories, one range
Bathroom retailer · wall panel range
Read the job in full - 12 to 8spellings, eight real types
Bathroom retailer · 329 baths
Read the job in full - 3,566dead links caught before export
Musical instrument retailer · 12,015 image links
Read the job in full
Questions WooCommerce sellers ask
What WooCommerce sellers ask before they send us a file. Anything else, ask us and a person answers.
Is this a WooCommerce product data entry service?
Yes, in all but the typing. WooCommerce warns that supplier files “often use different column names, identifiers, and attribute formats than WooCommerce expects”, and asks for them to be normalised before import. We do that work: each row is matched to the real product, its gaps are filled from sources you can check, and every column is named as WooCommerce’s import schema names it.
Do you upload the products to my WooCommerce shop?
No, you run the import, from Products, All Products, then Import. WooCommerce first shows a Column mapping screen, matching each column to a product field and leaving unrecognised ones out; ours carry the schema’s own names, so they map themselves. Nothing reaches your shop until you select Run the importer, and WooCommerce asks you to stay on the page while it works.
Do you need my WordPress login, or a plugin?
Neither. WooCommerce “includes a built-in CSV tool for importing, exporting, and bulk-updating products”, and the file comes back laid out for that tool, so there is no plugin to buy and no WordPress account to share. WooCommerce points to its premium Product CSV Import Suite only for extensive imports or custom product data from extensions.
My supplier only sends product codes. Is that enough?
Yes, and in WooCommerce the code does a second job. We match each SKU or barcode to the real product and fill in the rest from checked sources. The supplier’s SKU then goes in the SKU column, which the importer uses to recognise products it already has, so a later file can update them. WooCommerce’s advice for repeat imports is to “keep stable IDs or SKUs”.
Can you handle products in sizes and colours?
Yes. WooCommerce wants a row of Type variable listing every size or colour, then a row of Type variation for each one, with its own SKU and the parent’s SKU in the Parent column. A variation row takes one value per attribute; give it more and WooCommerce “uses the first”. We fold spellings onto one value, so every variation finds its parent.
Will it overwrite products I already have?
Only if you choose Update existing products, and then only rows whose ID or SKU matches a product already in your shop. Without that option, those rows are skipped.
Can the products go in as drafts?
Yes. WooCommerce’s Published column sets each product’s status: 1 for published, 0 for private, -1 for draft and 2 for pending review, and it also takes true for published and false for draft. With every row at -1, the range comes in as drafts, and nothing is published until you choose to publish it.
Why does the importer skip some rows?
Start with the import log. The common causes WooCommerce names are a SKU or ID already in your shop when Update existing products was not selected, columns or values that do not match its import schema, an unexpected Published value, a plugin or theme conflict, or a file too big for your server at once. Ours follows the schema; for size, WooCommerce advises smaller batches.
Doing it yourself?
Everything on this page is written up in full on the blog, with WooCommerce’s own pages cited, and every word of the trade is in the glossary in plain English.
Sources
- WooCommerce documentation. Product CSV Importer and Exporter.
- WooCommerce documentation. Products Settings.
- WooCommerce on GitHub. Product CSV Import Schema.
WooCommerce is a trademark of its owner. RefynData is an independent service, not affiliated with or endorsed by WooCommerce.
Send the fileas it arrived
Send one supplier spreadsheet, exactly as it came. We will show you the same products before and after, ready for the platform you sell on, with a source on every value we add.
One email with the upload link. Nothing else lands in your inbox.