Docs

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

Before you schedule

  1. Run the importer manually until results are correct (products, variations, images, categories).
  2. Confirm the unique identifier (usually SKU) matches on every re-run — see Update Existing WooCommerce Products
  3. Confirm image download settings will not duplicate media every night.
  4. Then enable the schedule.

Manual works, scheduled fails

This is a frequent support pattern. Usual causes:

CauseCause
What to do
WP-Cron only runs on page trafficHook system cron into WP-Cron — see WordPress docs
Host kills long background requestsIncrease PHP max_execution_time / memory; use real cron; reduce records per batch if available
Remote feed URL blocked for non-browser requestsCheck 403/SSL from the server; allowlist the site IP with the feed provider
Different runtime user / path for cronEnsure FTP/local paths and credentials work in CLI/cron context
Action Scheduler / cron backlogInstall 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