This guide covers the most common use case: updating product stock levels and prices from a CSV file. Super Speedy Imports is optimized for this scenario—20,000 products can be updated in under 1 minute.
Table of Contents
CSV Requirements
Your CSV needs just two things:
- A unique identifier to match existing products (SKU)
- The fields you want to update (stock, price, etc.)
Minimal CSV Example
SKU,Stock,Regular Price,Sale Price
PROD-001,150,29.99,24.99
PROD-002,0,19.99,0
PROD-003,75,49.99,39.99
Setting Up the Import
Step 1: Upload Your CSV
- Go to Super Speedy > Super Speedy Imports in your WordPress admin
- Expand Upload Files and click Browse
- Upload your CSV file and the New Import section will open
- Name your import and choose a Post Type (e.g., Products)
If you already have a CSV file uploaded, expand New Import, choose the CSV file from the dropdown, name your import and choose the post type.
Step 2: Map the SKU Field
In the Main section:
- Map SKU to your SKU column
This is how the importer matches CSV rows to existing products.
Step 3: Map Stock & Price Fields
For stock updates:
- Map Stock Qty to your stock column
For price updates:
- Map Regular Price to your price column
- Map Sale Price to your sale price column (if applicable)
Step 4: Leave Everything Else Unmapped
Don’t map Product Title, Description, or other fields—they won’t be changed if left unmapped. Only mapped fields are updated.
Step 5: Save the Import
Click Save to store your configuration. Note the Import ID shown in the URL (e.g., import_id=5)—you’ll need this for CLI and scheduled imports.
Running the Import
From the Admin Interface
- Click Run Import
- Monitor progress in the log output
- Important: Flush your object cache after completion (see below)
Expected Performance
| Products | Approximate Time |
|---|---|
| 1,000 | ~3 seconds |
| 5,000 | ~15 seconds |
| 20,000 | ~1 minute |
| 100,000 | ~5 minutes |
Times vary based on server performance and number of fields being updated.
Flushing the Object Cache
Critical: After updating stock and prices, you must flush your object cache for changes to appear on the frontend.
Why This Is Necessary
WooCommerce and WordPress cache product data in the object cache (Redis, Memcached, or similar). Without flushing, your site may display old prices and stock levels until the cache naturally expires.
Manual Flush
If using a caching plugin:
- WP Redis: Go to Settings > Redis and click “Flush Cache”
- Object Cache Pro: Dashboard widget or Settings > Object Cache Pro
- W3 Total Cache: Performance > Dashboard > Empty All Caches
- LiteSpeed Cache: LiteSpeed Cache > Toolbox > Purge All
CLI Flush
wp cache flush
Using the CLI
The CLI is the recommended way to run imports, especially for large datasets or automated workflows.
Basic Import Command
wp ssi <import_id>
Example:
wp ssi 5
Import with Cache Flush
Chain the commands to run the import and flush the cache in one go:
wp ssi 5 && wp cache flush
Using an Alternative CSV File
Use the --file parameter to run an import with a different CSV file:
wp ssi 5 --file="latest-stock.csv"
The file path is relative to wp-content/uploads/ssi-imports/ if the filename does not include the path. The CSV must have the same column headers as the original.
wp ssi 5 --file="/var/www/wherever/somepath/latest-stock.csv" && wp cache flush
Troubleshooting
Prices Not Updating on Frontend
- Check that you flushed the object cache
- Clear any page caching (LiteSpeed, Varnish, Cloudflare, etc.)
- Check browser cache (try incognito mode)
Products Not Matching
- Verify SKUs in your CSV match exactly (case-sensitive)
- Check for leading/trailing spaces in the SKU column
FTP Download Failing
- Test the FTP connection manually first
- Check firewall rules allow outbound FTP
- For passive FTP issues, try
wget --passive-ftp
Cron Not Running
- Check cron is running:
systemctl status cron - Verify script permissions:
chmod +x script.sh - Test script manually first
- Check cron logs:
grep CRON /var/log/syslog
