Title: Beziworld &#8211; Dropshipping XML for WooCommerce
Author: beziworld
Published: <strong>November 14, 2026</strong>
Last modified: November 14, 2026

---

Search plugins

![](https://ps.w.org/beziworld-dropshipping-xml-for-woocommerce/assets/banner-772x250.
png?rev=3801553)

![](https://ps.w.org/beziworld-dropshipping-xml-for-woocommerce/assets/icon.svg?
rev=3801553)

# Beziworld – Dropshipping XML for WooCommerce

 By [beziworld](https://profiles.wordpress.org/beziworld/)

[Download](https://downloads.wordpress.org/plugin/beziworld-dropshipping-xml-for-woocommerce.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/beziworld-dropshipping-xml-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/beziworld-dropshipping-xml-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/beziworld-dropshipping-xml-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/beziworld-dropshipping-xml-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/beziworld-dropshipping-xml-for-woocommerce/)

## Description

Beziworld – Dropshipping XML imports products from your suppliers and keeps prices,
stock and descriptions in sync. It reads XML and CSV feeds of any size, shows a 
live preview of the product while you map the fields, and runs the imports in the
background in short, resumable batches.

#### A wizard with a live preview

 * Source: an address (http or https, with optional user name and password or custom
   headers such as API keys) or an uploaded file. GZIP and ZIP archives are unpacked
   automatically.
 * Structure: the plugin reads the feed, shows its element tree with counts and 
   sample values and suggests the element that holds one product.
 * Mapping: write expressions that combine feed fields with text, for example `{
   brand} {name}` or `{attrs/a[@name=EAN]}`. Click a feed field in the preview panel
   to insert it. “Suggest mapping” fills the usual fields for you.
 * The preview shows the mapped product, the price after every price rule, the filter
   decision and what an import would change in the store product already matched
   to the record, field by field.

#### Everything a supplier feed needs

 * Name, descriptions (HTML is sanitised), SKU, EAN/GTIN, regular and sale price,
   stock quantity and status, backorders, weight and dimensions, shipping class,
   tax status and class, featured flag, menu order, purchase note.
 * Categories with automatic tree creation (“Electronics > Phones”), a category 
   map (feed value to store category, loaded from the feed with one click) or one
   category for all products. The separator between categories is optional, so names
   containing commas stay whole.
 * Tags, global and local attributes, and all attributes from repeated elements 
   such as `<param name="Color">Red</param>` in one step.
 * Images: the main image and the gallery. Every image is downloaded once: the source
   address is remembered, so a picture shared by many products or imported again
   is reused instead of duplicated.
 * Custom fields (meta) from any feed value.
 * Modifiers in expressions: number parsing for any format (“1 299,99 zł”), upper
   and lower case, strip tags, replace, truncate, default values, value maps ({availability
   |map:yes=instock;*=outofstock}) and more.

#### Variable products

 * Records grouped by a parent field, even when they are spread over the whole file.
 * Variations nested inside the product element; variation values override the product
   values.
 * Single variations can be imported as simple products. Prices, stock, SKU, EAN,
   weight and image are set per variation.

#### Prices and filters

 * Price rules in order: markup in percent or as an amount, margin on the selling
   price, currency rate, price tiers, minimum price and rounding to endings such
   as ,99. Each rule can apply only when a condition is met.
 * Filters: skip records without a key, name, price, stock or images, a price range,
   and any number of conditions (equals, contains, greater than, between, one of
   and more) on feed fields or final product values.

#### Safe synchronisation

 * Match products by SKU, EAN, name or a feed key. Feed keys are scoped to the feed,
   so two suppliers never overwrite each other.
 * Choose which fields existing products receive, for example only prices and stock.
   Unchanged products are not saved at all.
 * Products that disappear from the feed can be set out of stock, set to zero stock,
   moved to drafts, made private or moved to the trash, and are restored when they
   come back. A safety threshold skips this step when a feed suddenly shrinks, for
   example after a broken download.
 * Dry run: process the whole feed without changing anything and get a report of
   what would be created, updated (old and new value of every field), skipped or
   hidden.

#### Background imports that do not stall

 * Imports run through Action Scheduler (part of WooCommerce) in short time-limited
   slices. Each slice saves its position, so imports never hit PHP or proxy time
   limits and continue after an interruption.
 * The feed is downloaded once per run and streamed record by record, so memory 
   use stays flat for feeds of any size.
 * A lock prevents two imports of the same feed from running at once; different 
   feeds can run in parallel.
 * A watchdog resumes imports that stopped responding.
 * Schedules per feed: every few minutes or hours, daily or on chosen days at a 
   time, or a cron expression.
 * With the run screen open, the browser speeds the import up by asking for the 
   next slice right away.

#### History, logs and diagnostics

 * Every run keeps a log of what happened to each record, with the changed fields.
   Filter, search and download it as CSV.
 * E-mail reports after failed runs or after every run.
 * Diagnostics of the server and the background queue, and a feed check that counts
   records without a key, name, price or image and finds duplicated keys before 
   you import.

#### Security

 * Feed and image addresses on private, loopback, link-local and reserved networks
   are blocked (protection against server-side request forgery), with a filter for
   intranet feeds.
 * XML documents with DTDs or entities are refused (XXE and entity expansion), network
   access of the XML parser is disabled.
 * Downloaded and uploaded feeds are stored in a private folder with a random name
   and deny rules.
 * Feed passwords and headers are stored encrypted. Exported configurations never
   contain them.
 * All screens and REST routes require the manage_woocommerce capability.

#### For developers and add-ons

Every part can be extended: feed formats and transports (for example JSON, FTP, 
a wholesaler API), mapping fields, price modifiers, condition operators, admin tabs,
settings sections and wizard steps are registries filled through filters. There 
are actions before and after a run and before and after a product is saved, and 
filters for every record and every mapped value. All admin views and e-mails are
templates a theme can override. See docs/developers.md in the plugin folder.

WP-CLI: `wp bwdx list`, `wp bwdx run <feed> [--dry-run] [--background]`, `wp bwdx
preview <feed> --index=<n>`, `wp bwdx status <run>`, `wp bwdx cancel <run>`, `wp
bwdx resume <run>`, `wp bwdx diagnose <feed>`, `wp bwdx export <feed>`, `wp bwdx
import <file>`.

Documentation and support: https://beziworld.eu/projekty/dropshipping-xml

### External services

The plugin downloads the feed files and product images from the addresses you configure,
using the WordPress HTTP API. Those requests are sent to your suppliers’ servers
and reveal the address of your server to them; they are made only when a feed is
analysed, previewed or imported. No data is sent to the plugin author or any other
service.

## Screenshots

[⌊Feeds with their status, products, schedule and the result of the last import.⌉⌊
Feeds with their status, products, schedule and the result of the last import.⌉[

Feeds with their status, products, schedule and the result of the last import.

[⌊The wizard: reading the feed and choosing the product element from its structure.⌉⌊
The wizard: reading the feed and choosing the product element from its structure
.⌉[

The wizard: reading the feed and choosing the product element from its structure.

[⌊Mapping with the live preview of the product and the feed fields to insert.⌉⌊Mapping
with the live preview of the product and the feed fields to insert.⌉[

Mapping with the live preview of the product and the feed fields to insert.

[⌊Price rules, filters and the price explained step by step.⌉⌊Price rules, filters
and the price explained step by step.⌉[

Price rules, filters and the price explained step by step.

[⌊Synchronisation, missing products and the schedule.⌉⌊Synchronisation, missing 
products and the schedule.⌉[

Synchronisation, missing products and the schedule.

[⌊Dry run report with old and new values of every changed field.⌉⌊Dry run report
with old and new values of every changed field.⌉[

Dry run report with old and new values of every changed field.

[⌊Settings with the section menu.⌉⌊Settings with the section menu.⌉[

Settings with the section menu.

[⌊Diagnostics of the server and the background queue.⌉⌊Diagnostics of the server
and the background queue.⌉[

Diagnostics of the server and the background queue.

## Installation

 1. Install and activate WooCommerce.
 2. Upload the plugin folder to /wp-content/plugins/ or install it from the Plugins
    screen, then activate it.
 3. Go to Products > Dropshipping XML and click “Add feed”.
 4. Enter the feed address, read the feed, check the suggested product element, map
    the fields and save.
 5. Start a dry run, check the report, then run the import or set a schedule.

## FAQ

### Which feed formats are supported?

XML (including feeds with namespaces such as Google Merchant) and CSV or TSV with
any separator, in UTF-8, UTF-16, Windows-1250, ISO-8859-2 and other single-byte 
encodings. Files can be packed as GZIP or ZIP. Other formats can be added by an 
add-on.

### How large can a feed be?

Feeds are streamed, so the size is limited only by the setting “Maximum feed size”(
512 MB by default) and the disk space. Memory use does not grow with the file size.

### Do I need a long PHP time limit or a cron job?

No. Imports run in slices of about 20 seconds through Action Scheduler. On sites
with little traffic, a system cron job calling wp-cron.php keeps schedules punctual,
or run imports with WP-CLI.

### Will the same image be downloaded many times?

No. Each image is downloaded once and reused by every product and every later import
that uses the same address.

### Can I test the import before it changes my store?

Yes. The dry run processes the whole feed and lists every product that would be 
created, updated (with old and new values), skipped or hidden, without changing 
anything.

### What happens to products that the supplier removes?

You choose: nothing, out of stock, zero stock, draft, private or trash. Only products
imported by that feed are affected, and a product that comes back is restored. A
safety threshold protects your catalogue when a feed suddenly shrinks.

### Can two feeds update the same product?

When products are matched by SKU or EAN, the last import wins. When products are
matched by a feed key, every feed manages only its own products.

### Is the plugin compatible with HPOS?

Yes. It works with products only and declares compatibility with High-Performance
Order Storage and the cart and checkout blocks.

### Can I change the screens or the e-mails?

Yes. Copy a file from the templates folder of the plugin to yourtheme/beziworld-
dropshipping-xml-for-woocommerce/ and edit the copy.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Beziworld – Dropshipping XML for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ beziworld ](https://profiles.wordpress.org/beziworld/)

[Translate “Beziworld – Dropshipping XML for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/beziworld-dropshipping-xml-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/beziworld-dropshipping-xml-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/beziworld-dropshipping-xml-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/beziworld-dropshipping-xml-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/beziworld-dropshipping-xml-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * First release.

## Meta

 *  Version **1.0.0**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [CSV Import](https://wordpress.org/plugins/tags/csv-import/)[dropshipping](https://wordpress.org/plugins/tags/dropshipping/)
   [product import](https://wordpress.org/plugins/tags/product-import/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
   [XML Import](https://wordpress.org/plugins/tags/xml-import/)
 *  [Advanced View](https://wordpress.org/plugins/beziworld-dropshipping-xml-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/beziworld-dropshipping-xml-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/beziworld-dropshipping-xml-for-woocommerce/reviews/)

## Contributors

 *   [ beziworld ](https://profiles.wordpress.org/beziworld/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/beziworld-dropshipping-xml-for-woocommerce/)