WooCommerce Imports Quick Start Guide
Import WooCommerce products through a visual workflow in WordPress: upload your source, review the automatic mapping, preview a draft product and run the import in your browser. You don’t need code for ordinary field mapping. Super Speedy Imports includes variable products, galleries and the advanced transformations covered below.
Table of Contents
- Before You Start
- Understanding Product Data Sections
- Step-by-Step Import Process
- Setting Up Taxonomies
- Working with Images
- Using PHP Functions
Before You Start
Choose CSV, XML, JSON or a saved WP All Import job
CSV, XML, JSON and JSON Lines files all go through New Import. For XML or JSON, confirm the record path it detected, which is the repeating element that holds one product, and the file stays the source. See Importing XML and JSON feeds.
For a saved WP All Import job, use Migration Tools to convert supported mappings and settings before reviewing them. Unsupported expressions and other differences need attention before a run.
Prepare Your CSV File
Your CSV should have column headers in the first row. A file saved by Excel as “CSV UTF-8” works as it is. New Import reads the prices in the file and suggests the matching Decimal Point, so a price list written 12,99 is offered Comma (,). A price written in the other format is refused and reported against its row and column, and that product’s regular, sale and active prices are left as they were. Common columns include:
| Column | Example Value |
|---|---|
| Product Name | “Blue Cotton T-Shirt” |
| Description | “Comfortable cotton t-shirt…” |
| Short Description | “Soft cotton tee” |
| SKU | “TSHIRT-BLU-001” |
| Price | “29.99” |
| Sale Price | “24.99” |
| Stock | “150” |
| Category | “Clothing > T-Shirts” |
| Tags | “summer, cotton, casual” |
| Image URL | “https://example.com/tshirt.jpg” |
Decide how to store product attributes
You don’t have to create global attributes before importing. In the import’s Attributes section, click + Add Attribute, enter a name such as Color, map its source column and select Is Taxonomy. Super Speedy Imports creates a missing global WooCommerce attribute and its terms during the import.
Create an attribute first under Products > Attributes only when you want to configure its WooCommerce slug, ordering or archives yourself. Leave Is Taxonomy clear only when you want a custom attribute stored on that product; custom non-taxonomy attributes require the paid edition.
Product categories and tags are built into WooCommerce. A brand field is available when WooCommerce or another active plugin has registered a product-brand taxonomy.
Understanding Product Data Sections
The Product Data panel is organized into sections. Only the Main section is essential—all other sections are optional, and many fields are auto-calculated.
Main Section (Required Fields)
These are the core fields every product needs:
| Field | Description | Required? |
|---|---|---|
| Product Title | The product name displayed in your store | Yes |
| Full Description | Detailed product description (supports HTML) | Recommended |
| Short Description | Brief summary shown near the price | Recommended |
| SKU | Unique product identifier for inventory tracking | Recommended |
| Regular Price | Standard retail price | Yes |
| Sale Price | Discounted price (leave empty if not on sale) | No |
Stock Management Section (Optional)
Map these fields only if your CSV contains stock information:
| Field | Description | Auto-calculated? |
|---|---|---|
| Stock Qty | Number of items in stock | No |
| Manage Stock | Enable stock tracking | Yes (set to “yes” when Stock Qty is provided) |
| Stock Status | instock/outofstock/onbackorder | Yes (calculated from Stock Qty) |
| Backorders | Allow orders when out of stock | No (defaults to “no”) |
| Low Stock Threshold | Alert level for low stock | No (uses WooCommerce default) |
Tip: If you only map Stock Qty, the other stock fields are automatically calculated. You don’t need to map Manage Stock or Stock Status unless you want to override the defaults.
Variable Products Section (Optional)
For product variations (like different sizes or colors of the same product):
| Field | Description |
|---|---|
| Parent reference (on variation rows) | The value on each variation row that names its parent product (typically the parent’s SKU, held in a parent_sku column) |
When importing variations, Parent reference (on variation rows) links each variation to its parent product. It must match the parent row’s unique item identifier, typically its SKU. Import the parent first, or make sure a variable parent with that identifier is present in the catalogue.
Downloadable Products Section (Optional)
For digital products like ebooks, software, or music:
| Field | Description | Auto-calculated? |
|---|---|---|
| Download URL | Direct link to the downloadable file | No |
| Download Name | Display name shown to customers | No |
| Downloadable | Mark product as downloadable | Yes (set to “yes” when Download URL is provided) |
Tip: You only need to map Download URL and Download Name. The Downloadable flag is automatically set when a download URL is provided.
Other Sections
The remaining sections (Publication Date, Publication Info, Other Post Fields) contain WordPress post fields that are auto-populated with sensible defaults:
- Post Status defaults to “publish”
- Post Author defaults to the current user
- Post Date defaults to the current time. A mapped date must be written so the day and month cannot be confused, such as
2026-01-15; see Dates in the mapping screen tour - Product Slug is auto-generated from the title
You only need to map these if your CSV contains specific values you want to use.
Step-by-Step Import Process
Step 1: Upload and review the suggestions
- Open Super Speedy > Super Speedy Imports in wp-admin.
- In New Import, upload your file, fetch it with Import from URL, or pick a file you uploaded before.
- Check the suggested product import type, separators and matching settings, then create the import.
- Review the mappings suggested from column names and sample data.
- Use the Import Fields panel to inspect sample rows. Accept a suggestion, dismiss it or drag a source field onto the correct destination.
The mapping screen walkthrough explains the field picker, source chips and advanced options. Choose a stable identifier such as SKU before the first run.
Step 2: Map the Main Section
The Product Data section appears first. Focus on the Main subsection:
- Product Title — Select the CSV column containing product names
- Full Description — Select the description column
- Short Description — Select the short description column (if you have one)
- SKU — Select the SKU column
- Regular Price — Select the price column
- Sale Price — Select the sale price column (optional)
Click Show Secondary if you need to see additional fields like the hidden _price field.
Step 3: Map Stock Fields (Optional)
If your CSV has stock quantities:
- Expand the Stock Management subsection
- Map Stock Qty to your stock column
- Leave other stock fields unmapped (they’re auto-calculated)
Step 4: Map Variable Product Fields (Optional)
If importing product variations:
- Expand the Variable Products subsection
- Set Import contains: to Parent & Child rows, then map Parent reference (on variation rows) to the column containing the parent product’s unique item identifier (typically its SKU)
Step 5: Map Downloadable Fields (Optional)
If importing digital products:
- Expand the Downloadable Products subsection
- Map Download URL to your file URL column
- Map Download Name to your file name column
Step 6: Set Up Taxonomies
Use the Taxonomies section for categories, tags and brands. Use the separate Attributes section for global or custom product attributes. See the Setting Up Taxonomies section below for details.
Step 7: Set Up Images
In the Media section:
- Map Featured Image to your main product image URL column
- Map Gallery Images to the field containing your image list (commas or pipes separate multiple URLs). If one field contains all images, map it to both Featured Image and Gallery Images.
Step 8: Preview, run and check the products
- Save your configuration and use Preview first item to create a separate draft of the first complete product.
- Inspect its title, price, stock, images and attributes through the review links, then discard the preview.
- Use Preview & Run to review the settings and start the import in WordPress.
- Keep the browser tab open as instructed by the screen. Watch progress and elapsed time.
- Check the completion result, reported issues and resulting products.
Preview creates draft content and related data. It doesn’t validate every row or show the exact changes an update will make to a live product.
Reuse the saved import for later files with the same structure. Super Speedy Imports includes scheduling; WP-CLI is optional for server-managed runs.
If you need to remove records associated with this import, read the confirmation before using its removal control. It can affect updated records too and doesn’t restore old prices or other overwritten values. See Trashed items and deletes.
Setting Up Taxonomies
Product Categories
Categories use a hierarchical structure. For nested categories, use the > separator:
CSV Example:
Category
Clothing > T-Shirts
Clothing > T-Shirts > V-Neck
Electronics > Phones
In the Taxonomies section, map Product categories to your category column.
Assigning every category level: The Additional Option, “Assign every category level (not just the deepest)”, controls whether a product is assigned to every term in its hierarchy or only the deepest (leaf) term. With it on, a product in Clothing > T-Shirts also appears under the parent category page (/product-category/clothing/), and breadcrumbs/layered-navigation include the parents. Check the saved setting before running the import.
Tags are non-hierarchical. Use commas to separate multiple tags:
CSV Example:
Tags
summer, cotton, casual, bestseller
winter, wool, premium
Map Product tags to your tags column.
Brands
If you have a brands taxonomy (from a plugin like “Perfect Brands for WooCommerce”):
CSV Example:
Brand
Nike
Adidas
Puma
Map Brands to your brand column.
Product Attributes (Color, Material, Size, etc.)
Super Speedy Imports can create missing global WooCommerce attributes during the import. You can still create them first under Products > Attributes when you want to control their WooCommerce settings before importing terms.
CSV Format for Attributes
CSV Example:
Color,Material,Size
Blue,Cotton,Large
Red,Polyester,Medium
Green | Blue,Cotton | Silk,Small | Medium | Large
Use the pipe | separator for products with multiple attribute values.
Mapping Attributes
Use the Attributes section rather than the Taxonomies section:
- Click + Add Attribute.
- Enter the attribute name, such as
Color. - Map the corresponding CSV column.
- Select Is Taxonomy to store it as a global WooCommerce attribute. A missing attribute is created during the run.
Setting variable attributes: If an attribute defines variations, select Used for variations on that attribute row.
Working with Images
Featured Image
The main product image. Provide a full URL:
https://example.com/images/product-photo.jpg
Gallery Images
Additional product photos. Separate multiple URLs with commas or pipes:
https://example.com/img1.jpg|https://example.com/img2.jpg|https://example.com/img3.jpg
If the featured image URL also appears in the gallery column, it stays in the gallery. WooCommerce stores the featured image and gallery independently and allows them to overlap.
Image Handling Options
There is no on/off “upload images” switch. Whenever you map a Featured Image or Gallery Images field, remote image URLs are downloaded into your media library automatically by the upload-remote-images stage.
The image-related setting you can configure in the Additional Options section is:
- Thorough image search — when matching media-library images, search by both post title and filename (the filename in the URL
guid). This is more accurate but slower on large media libraries. Turn it on when your media library may contain the supplied images and you want SSI to reuse them rather than download copies.
Use External Images is not an Additional Option. It is a field mapping: map your image-URL column to the External Images field (in the Media section) to store the URLs for the third-party External Images plugin, which serves them from their remote location instead of downloading them. This requires the External Images plugin to be installed.
Using PHP Functions
Super Speedy Imports supports PHP functions for advanced transformations. Ordinary field mapping, fixed values and text templates use the visual controls without PHP.
When to Use Functions
- Transform values (e.g., convert “Yes”/”No” to “instock”/”outofstock”)
- Combine multiple columns into one field
- Apply conditional logic
- Format prices or dates
- Clean up data inconsistencies
Function Format
Switch a field from “CSV Field” to “PHP Function” using the dropdown, then enter a callable function:
return function($data, $h) {
// $data = array of values from the current CSV row
// $h = array mapping column names to indices
// Return the transformed value
};
Example: Calculate Sale Price
If your CSV has a discount percentage instead of a sale price:
return function($data, $h) {
$price = floatval($data[$h['Price']]);
$discount = floatval($data[$h['Discount Percent']]);
if ($discount > 0) {
return $price * (1 - $discount / 100);
}
return ''; // No sale price if no discount
};
Example: Format Product Title
Combine brand and product name into the title:
return function($data, $h) {
$brand = trim($data[$h['Brand']]);
$name = trim($data[$h['Product Name']]);
if (!empty($brand)) {
return $brand . ' - ' . $name;
}
return $name;
};
Example: Set Stock Status from Boolean
Convert a “1” or “0” value to WooCommerce stock status:
return function($data, $h) {
$available = $data[$h['Available']];
return $available == '1' ? 'instock' : 'outofstock';
};
Example: Clean HTML from Description
Strip unwanted HTML tags while keeping basic formatting:
return function($data, $h) {
$description = $data[$h['Raw Description']];
return strip_tags($description, '<p><br><strong><em><ul><li>');
};
Example: Generate SKU from Multiple Fields
Create a SKU from category code and product ID:
return function($data, $h) {
$category = strtoupper(substr($data[$h['Category Code']], 0, 3));
$id = str_pad($data[$h['Product ID']], 5, '0', STR_PAD_LEFT);
return $category . '-' . $id;
};
Tips for Writing Functions
- Always return a value — Even if empty, return
''rather than nothing - Handle missing data — Check if columns exist before accessing them
- Use correct types — Cast to
floatval()for prices,intval()for quantities - Test with a few rows first — Run a small test import before processing thousands of products
Troubleshooting
Products Not Importing
- Check that required fields (Title, Price) are mapped
- Verify your CSV encoding is UTF-8
- Look for errors in the import log
Categories Not Creating
- Ensure the category hierarchy separator is correct (
>by default) - Check for extra spaces around category names
Attributes Not Appearing
- Check that the source column is mapped in the Attributes section.
- For a global WooCommerce attribute, select Is Taxonomy and check the attribute name. The import creates it when it is missing.
- For variation attributes, select Used for variations and check that the parent/variation structure is configured.
Images Not Loading
- Verify image URLs are publicly accessible
- Check that your server allows external HTTP requests
- For large imports, images are processed in batches
Further reading
Written for Super Speedy Imports 3.40.0.

Comments