Automating a 6,000+ variation WooCommerce product import

A custom import workflow for a furniture retailer, combining product-data conversion, SKU-based mapping, All WP Import Pro customisation, and background image processing.

Intention / Goal
Automate large WooCommerce catalogue updates
Technologies used
All WP Import, PHP, WooCommerce, WordPress, WP-Cron
People involved
Senior WordPress Developer (myself)
Timeframe
3 months + 2 years of ongoing support

The project at a glance

The situation

Product data had to be transferred into WooCommerce manually. The catalogue contained more than 6,000 variations plus parent products, while stock and selling status needed frequent updates.

What I did

I built a conversion tool for the inventory-system export, added custom logic around All WP Import Pro, mapped products and variations through SKU and Parent SKU, and moved image processing into logged WP-Cron batches.

The result

Non-technical staff received a repeatable import workflow. The core WooCommerce import completed in about one hour, while images continued processing safely in the background.

A large catalogue that could not stay manual

The retailer managed product and stock data in an internal inventory system, while customers browsed the catalogue in WooCommerce. There was no reliable workflow connecting the two. Staff had to create and update catalogue information manually, even though stock and selling status changed regularly.

Scale turned that inconvenience into an operational problem. The production catalogue contained more than 6,000 variations in addition to parent products. Each record could include pricing, availability, attributes, dimensions, materials, care information, certifications, selling points, downloadable documents, and several types of imagery.

The goal was to make recurring updates practical for the store team. They needed a workflow they could operate without editing code or manually rebuilding thousands of WooCommerce records.

The converted data structure: 80 mapped fields covering parent and variation relationships, stock, pricing, attributes, specifications, product content, supporting documents, and imagery.

My role

I worked as the sole senior WordPress developer on the integration. I was responsible for the workflow architecture, CSV conversion, WooCommerce field mapping, custom All WP Import Pro logic, background image processing, logging, automated tests, staging imports, production rollout, and the recovery tools used during ongoing support.

The initial development took three months. I then supported the workflow for another two years as the catalogue and operational requirements evolved.

Designing the import around the real bottleneck

A single heavy import would have made failures slow to diagnose and expensive to repeat. I separated data conversion, WooCommerce updates, and image processing so that each stage could be controlled and recovered independently.

Converting the inventory export

The store team exported the current CSV from its inventory management system and uploaded it to a custom conversion tool. The tool transformed the source data into the structure expected by the saved All WP Import Pro template.

The converted structure contained 80 fields covering product identity, stock, pricing, collections, materials, variation attributes, dimensions, care information, certifications, marketing copy, documents, and several image groups. The store team did not need to rearrange those fields by hand.

Reconstructing parent and variation relationships

Each record had its own SKU. Variation rows also carried a Parent SKU, which identified the variable product they belonged to. I used those keys to distinguish parent products from variations, update existing records, and preserve the correct WooCommerce product hierarchy without creating duplicates.

Extending All WP Import Pro

All WP Import Pro provided the base import engine, but the catalogue rules went beyond a standard field-to-field mapping. I added custom PHP scripts to interpret the converted data and apply the required WooCommerce logic for parent products, variations, attributes, stock, selling status, and the other mapped fields.

Staff could then upload the converted file, select the prepared import template, and run the core catalogue update without changing code.

Removing images from the critical path

Product data was not the slowest part. Image downloading and attachment processing created the main bottleneck, especially across thousands of variations and products with several associated images.

Instead of forcing image work to finish inside the main import, I queued it for separate WP-Cron jobs. Those jobs processed images gradually in smaller batches after the core product import had completed. This kept the main workflow to about one hour while avoiding one long, fragile image request.

Making failed image jobs recoverable

Background processing needs a recovery path, not just a scheduler. I added logging so failed variation-image jobs could be identified. I also added a regeneration action to the WooCommerce product admin, allowing a failed variation image to be processed again without rerunning the entire catalogue import.

A workflow the store team could run

  1. The team exports the current CSV from the inventory system.
  2. They upload the file to the custom conversion tool.
  3. The tool produces a file structured for the WooCommerce import.
  4. The team uploads that file to All WP Import Pro.
  5. They select the prepared import template and start the import.
  6. The core product-data import completes in about one hour.
  7. WP-Cron continues processing product and variation images in batches.
  8. Failed image jobs can be reviewed and regenerated from the admin area.

Testing the import before production

I developed and tested the workflow against staging imports before using it on the live catalogue. That made it possible to refine the mapping, parent–variation handling, and batch-processing behaviour without treating production as the test environment.

Automated tests covered the custom processing logic, while repeated test imports confirmed that the workflow produced an acceptable result at the required scale. Once the process was stable, it was moved to production and supported as part of the retailer’s ongoing catalogue operations.

From manual catalogue work to a repeatable import

The retailer received a structured way to move current product data from its inventory system into WooCommerce. Staff no longer had to create and update thousands of catalogue records manually, and they could run the workflow without programming knowledge.

The core import completed in approximately one hour. Product images then continued processing in the background, with logging and a targeted retry action available when a variation image failed.

The integration remained in active use and support for two years after the initial three-month development phase.

  • 6,000+ variations plus parent products supported
  • 80 product and merchandising fields mapped
  • Core catalogue import completed in about one hour
  • Images processed asynchronously through WP-Cron batches
  • Failed variation images logged and regenerated individually
  • Workflow operated by staff without programming experience
  • Two years of follow-up support

Stack and implementation

  • Commerce platform: WooCommerce
  • Import engine: All WP Import Pro with custom PHP scripts
  • Source format: CSV export from an inventory management system
  • Custom tooling: CSV conversion and field-normalisation workflow
  • Record matching: SKU and Parent SKU
  • Background processing: WP-Cron image batches with logging and targeted regeneration
  • Delivery: Staging imports, automated testing, production rollout, and ongoing support

Related WooCommerce development

Large product catalogues rarely fit a perfect one-click import. I build WooCommerce integrations around the real product structure, source data, operational workflow, and failure cases.

Have a similar project in mind?

Tell me what you want to build, fix or improve. I’ll review the context and help you identify a sensible next step.

No polished brief required.

Prefer email? hello@xenbel.com · Replies within one business day.