Schedule WooCommerce Product Imports
Import WP Pro can run WooCommerce product imports automatically on a schedule — ideal for supplier price, stock, and catalogue feeds.
This article covers WooCommerce-specific scheduling tips. For the general scheduling UI, see How to Schedule an Importer
Table of Contents
Before you schedule
- Run the importer manually until results are correct (products, variations, images, categories).
- Confirm the unique identifier (usually SKU) matches on every re-run — see Update Existing WooCommerce Products
- Confirm image download settings will not duplicate media every night.
- Then enable the schedule.
Manual works, scheduled fails
This is a frequent support pattern. Usual causes:
| Cause | Cause What to do |
|---|---|
| WP-Cron only runs on page traffic | Hook system cron into WP-Cron — see WordPress docs |
| Host kills long background requests | Increase PHP max_execution_time / memory; use real cron; reduce records per batch if available |
| Remote feed URL blocked for non-browser requests | Check 403/SSL from the server; allowlist the site IP with the feed provider |
| Different runtime user / path for cron | Ensure FTP/local paths and credentials work in CLI/cron context |
| Action Scheduler / cron backlog | Install WP Crontrol or similar to inspect scheduled events |
Remote feeds and “download new file before import”
For URL / FTP / Google Sheets sources, each scheduled run should fetch a fresh file. If the importer appears to reuse stale data:
- Confirm the file source is remote (not a one-off upload)
- Confirm the remote URL returns updated content when requested from the server
- Check import history / logs for download errors before mapping starts
Timeouts, memory, and large catalogues
WooCommerce imports are heavier than plain posts (attributes, variations, image sideloads).
Tips:
- Prefer updating by SKU with field restrictions instead of rewriting every field
- Avoid “always download new images” on nightly syncs
- Import parents and variations in separate scheduled jobs if needed
- Raise PHP memory limit for large XML/CSV feeds
- Watch for HTTP 524 / gateway timeouts on proxied hosts (Cloudflare, etc.)
Permissions for scheduled syncs
Recommended baseline for a supplier sync:
- Unique identifier: Product SKU (or GTIN)
- Update enabled
- Create enabled only if new products should appear automatically
- Restrict update fields to what the feed is allowed to change (e.g. price + stock only)
- Be cautious enabling delete-missing-records on production
Monitoring
- Check Import History after scheduled runs
- Watch for rows skipped due to permissions or missing unique fields
- After infrastructure changes (hosting, PHP version, Cloudflare), re-test a manual run and the next scheduled run