Free & open-source · GPL-2.0

Product imports for WooCommerce, minus the headache.

wpezimport turns Excel, CSV and XML feeds into WooCommerce products — with drag-and-drop field mapping, automatic image importing and hands-free scheduled updates.

Requires WordPress + WooCommerce · PHP 8.1+

Imports CSV XLS XLSX XML from file upload remote URL

Everything a product import needs

Built for real-world supplier feeds — messy XML, big catalogs, recurring updates.

⇄

Drag-and-drop mapping

Drag file columns or XML elements onto WooCommerce fields. No code, no config files — the mapping screen shows real data while you work.

</>

Smart XML support

Pick the repeating item element from a visual XML tree, browse real product samples, and build values with XPath patterns like {price}/@{currency}.

▣

Full WooCommerce fields

Title, description, brand, SKU, GTIN/EAN, regular & sale price, stock, weight, dimensions, categories and product images — all covered.

↻

Update existing products

A unique identifier matches feed items to existing products. Per-field “Update?” toggles let you refresh only what changed — e.g. just price and stock.

🖻

Automatic image import

Download up to 4 images per product. The first becomes the featured image; the rest go to the gallery. Downloaded images are deduplicated across runs.

⏱

Scheduled imports

Cron-ready trigger, process and cancel URLs with a secret key. Change detection via ETag / Last-Modified / content hash — re-imports only when the feed actually changed.

⚡

Batch processing

Large catalogs import in resumable batches sized to your server’s time limit. Posts first, images second — progress is never lost.

☰

Profiles & statistics

Save import configurations, re-run or edit them any time, and review per-run history: created, updated and error counts for every import.

Four steps to a full catalog

1

Add a source

Upload a CSV, XLS, XLSX or XML file — or paste a URL to a remote feed. wpezimport previews the file before anything is imported.

2

Pick the data

For XML feeds, choose the repeating element that represents one product using the interactive tree. For spreadsheets, columns are detected automatically.

3

Map the fields

Drag columns or XML elements onto product fields. Set a unique identifier, choose which fields to update on re-import, pick units and defaults.

4

Run it — or schedule it

Run the import immediately with live progress, or save it and wire the cron URLs into your server’s crontab for automatic recurring updates.

A look inside

The whole workflow happens in a clean admin UI inside wp-admin.

New Import screen with file upload, URL import and XML preview
New Import — upload a file or import from a URL
Field mapping screen with product fields and XML structure
Field mapping — map XML elements to product fields
Completed import showing progress and item results
Import processing — follow progress and results
Scheduling options with current import status and progress
Scheduling — check status and progress

Set it and forget it

URL-based imports can run themselves. Point your server’s crontab at three URLs — wpezimport does the rest.

Trigger

0 2 * * * wget -q -O /dev/null "https://yoursite.com/?wpezimport_action=trigger&import_id=1&import_key=…"

Runs once a day. Downloads the feed and checks whether it changed (ETag, Last-Modified, content hash). If it did, the import restarts from scratch — otherwise nothing happens.

Process

*/2 * * * * wget -q -O /dev/null "https://yoursite.com/?wpezimport_action=process&import_id=1&import_key=…"

Runs every couple of minutes. Each call processes as many items as fits in the time limit, then stops — resuming exactly where it left off on the next call.

Cancel

wget -q -O /dev/null "https://yoursite.com/?wpezimport_action=cancel&import_id=1&import_key=…"

Stops a running import at any time. Progress is preserved, so the next trigger continues instead of starting over.

Install in two minutes

  1. Download or clone the plugin and copy the wpezimport folder into wp-content/plugins/.
  2. Install dependencies — in the plugin folder run:
    composer install
    This pulls in PhpSpreadsheet, which reads Excel files.
  3. Activate the plugin under Plugins → Installed Plugins.
  4. Open “EzImport” in the admin menu and create your first import.

Tip: keep the plugin folder name as wpezimport — that’s the slug WordPress will use.