WooCommerce ships with a built-in CSV import/export tool — enough for most UK merchants until catalogue sizes exceed 10,000 products. This guide covers the CSV format, the import workflow, common errors, and when to upgrade to a paid tool.
Built-in CSV import/export • Export to get a template • Product CSV columns • Import step by step • Updating prices and stock at scale • Images in bulk imports • Validation errors • FAQ
Under Products › All Products › Import / Export. No extra plugins needed. Handles simple, variable (with the right column format), virtual, downloadable products. Limitations: batch size, image URL download, meta data handling.
Open the file in Google Sheets or LibreOffice Calc (UTF-8 safe).
| Column | Format |
|---|---|
| ID | Integer (blank for new) |
| Type | simple, variable, grouped, external, virtual, downloadable |
| SKU | Your unique identifier |
| Name | Product title |
| Published | 1 or 0 |
| Is featured? | 1 or 0 |
| Visibility in catalog | visible, catalog, search, hidden |
| Short description / Description | HTML allowed |
| Tax status / Tax class | taxable / standard |
| In stock? | 1 or 0 |
| Stock | Integer |
| Weight (kg) | Decimal |
| Regular price | Decimal, tax-inclusive if set globally |
| Sale price | Decimal (optional) |
| Categories | Comma-separated, hierarchical with > (e.g. Womens > Jumpers) |
| Tags | Comma-separated |
| Images | Comma-separated URLs |
| Attribute 1 name / value(s) / visible / global | For variable products |
Export with minimal columns (ID, SKU, Regular price, Stock). Edit in Sheets. Re-import with “Update existing products”. Untouched columns are preserved.
For routine nightly stock sync (from WMS), WP-CLI scripts can automate via cron.
Images specified as URL are downloaded and attached during import. Ensure URLs are publicly accessible from the SmartXHosting server.
Large batches (100+ images per import): use SFTP upload first, then reference local paths — faster than URL-based import.
WooCommerce hosting for heavy imports
SFTP, WP-CLI and cron available on SmartXHosting WooCommerce plans — automate supplier feeds and stock syncs.
See WooCommerce plansQ: Can I import variable products?
A: Yes. Parent row with Type=variable, then variation rows with Type=variation and parent SKU. Format documented in WooCommerce docs.
Q: Maximum CSV size?
A: WooCommerce imports in batches. Very large CSVs (50,000+ rows) work but may need PHP timeout increase. SmartXHosting can adjust.
Q: Can I roll back an import?
A: Not native. If imports went wrong, restore from the automatic daily backup SmartXHosting provides.
Q: Does import trigger emails or notifications?
A: No — imports are silent. New products appear but don’t trigger customer-facing notifications.
Q: Can I delete products via CSV?
A: Not with the built-in importer. Paid plugins (WP All Import Pro) support deletion via CSV.
Q: Is the built-in import fast enough?
A: For occasional catalogue work, yes. For daily supplier sync of thousands of SKUs, consider WP All Import Pro, Product CSV Import Suite or WP-CLI scripts.
Q: Can I schedule imports?
A: Not native. WP-CLI + cron via SmartXHosting scheduled task, or paid plugins with scheduling built in.