Title: Pxel Migration Toolkit for FluentCart
Author: Esrat Sultana Popy
Published: <strong>August 1, 2026</strong>
Last modified: August 2, 2026

---

Search plugins

![](https://ps.w.org/pxelcode-migration-toolkit-for-fluentcart/assets/banner-772x250.
png?rev=3631275)

![](https://ps.w.org/pxelcode-migration-toolkit-for-fluentcart/assets/icon-256x256.
png?rev=3631275)

# Pxel Migration Toolkit for FluentCart

 By [Esrat Sultana Popy](https://profiles.wordpress.org/esratpopy/)

[Download](https://downloads.wordpress.org/plugin/pxelcode-migration-toolkit-for-fluentcart.1.1.1.zip)

 * [Details](https://wordpress.org/plugins/pxelcode-migration-toolkit-for-fluentcart/#description)
 * [Reviews](https://wordpress.org/plugins/pxelcode-migration-toolkit-for-fluentcart/#reviews)
 *  [Installation](https://wordpress.org/plugins/pxelcode-migration-toolkit-for-fluentcart/#installation)
 * [Development](https://wordpress.org/plugins/pxelcode-migration-toolkit-for-fluentcart/#developers)

 [Support](https://wordpress.org/support/plugin/pxelcode-migration-toolkit-for-fluentcart/)

## Description

This plugin moves your store data from WooCommerce into FluentCart, one entity at
a time, in small AJAX batches so large catalogs don’t hit PHP timeouts.

**What gets migrated**

 * Customers — deduplicated by email, from orders and registered users, with billing/
   shipping addresses.
 * Products — simple and variable, with variations, pricing, stock, and featured
   image.
 * Orders — line items, billing/shipping addresses, transactions, refunds, applied
   coupon codes.
 * Coupons — code, type, amount, usage limits, expiry, product restrictions.
 * Subscriptions — only if WooCommerce Subscriptions is active. Renewal orders are
   linked back to the subscription’s parent order.
 * Recount & Verify — rebuilds customer lifetime value / purchase counts and coupon
   use counts from the orders actually migrated.

**What does NOT get migrated (do these manually afterward)**

 * Product categories and tags — FluentCart’s category model differs structurally.
 * Downloadable file attachments — re-attach under each product’s Downloadable Asset(
   s). The Pre-flight Check tab has a “Downloadable Files” report listing every 
   downloadable product/variation with its file name and Media Library URL, so you’re
   not hunting through the catalog product-by-product.
 * Payment gateway credentials — reconnect Stripe/PayPal/etc. in FluentCart using
   the same accounts.
 * Email templates — FluentCart has its own notification system.
 * Order status history / WooCommerce order notes.
 * Tax rate configuration — set up FluentCart’s tax classes and rates directly.
 * WooCommerce Subscriptions “requires manual renewal” fine print beyond collection_method,
   and any bill-times cap (WooCommerce subscriptions normally run until cancelled,
   so `bill_times` is imported as 0/unlimited).

**How it works**

Each step (Customers, Products, Orders, Coupons, Subscriptions, Recount) runs as
a series of small AJAX batches. A mapping table (`{prefix}pxwfcm_id_map`) records
which WooCommerce ID became which FluentCart ID, so re-running a step skips records
already migrated instead of duplicating them. A log table (`{prefix}pxwfcm_log`)
records anything skipped or errored for review.

Run the steps in order: Customers, Products, Orders, Coupons, Subscriptions, Recount.
Orders depend on Customers and Products already being migrated; Subscriptions depend
on Orders; Recount depends on everything else.

This plugin does not modify WooCommerce data. It only reads from WooCommerce and
writes into FluentCart.

**Maintenance Tools tab**

Repair tools for data already migrated, without re-running the full migration:

 * Fix Prices — corrects product/variation prices stored as a plain decimal instead
   of cents.
 * Fix Stock — corrects out-of-stock or unlimited-stock records, including the parent-
   product manage_stock rollup that FluentCart’s purchase check depends on.
 * Fix Fulfillment Type — re-applies the Settings tab’s fulfillment type to products
   already migrated.
 * Fix External/Affiliate Products — re-checks External/Affiliate products for the
   inactive/out-of-stock state that keeps them from being accidentally purchased.
 * Clear Product Mapping (danger zone) — use after deleting products directly from
   FluentCart, so re-running Products recreates them instead of skipping them, since
   the mapping table doesn’t otherwise know they were removed.

#### Rehearse first

The Migration tab has a Dry Run toggle — turn it on and every step simulates a full
run, writing nothing to FluentCart, so you can see exactly what would be created,
skipped, or warned on. Still test on a staging copy of your site before running 
for real against production, and take a database backup first regardless — dry run
tells you what _would_ happen, it isn’t a substitute for a backup.

#### Requirements

 * WooCommerce active on the site.
 * FluentCart installed and active.
 * WordPress 6.0 or newer.
 * PHP 7.4 or newer.

## Screenshots

[⌊Pre-flight Check tab, showing a read-only scan of WooCommerce data before migrating.⌉⌊
Pre-flight Check tab, showing a read-only scan of WooCommerce data before migrating
.⌉[

Pre-flight Check tab, showing a read-only scan of WooCommerce data before migrating.

## Installation

 1. Make sure both WooCommerce and FluentCart are installed and active.
 2. Upload the plugin files to the `/wp-content/plugins/pxelcode-migration-toolkit-
    for-fluentcart` directory, or install the plugin through the WordPress plugins 
    screen directly.
 3. Activate the plugin through the ‘Plugins’ screen in WordPress.
 4. Go to the plugin’s admin page (under the FluentCart menu, or its own top-level 
    menu) and run the Pre-flight Check before migrating anything.
 5. Take a full database backup, then run the migration steps in order.

## FAQ

### Does this modify my WooCommerce store?

No. The plugin only reads from WooCommerce. It writes exclusively into FluentCart’s
own tables.

### Can I re-run a step if something goes wrong?

Yes. Every step is idempotent — already-migrated records are recognized via the 
internal ID map and skipped, not duplicated.

### Is there a dry-run mode?

Yes. Toggle “Dry run” on the Migration tab and every step simulates a full run —
same skip/warning decisions as a real run — without writing anything to FluentCart.
Each step’s log entries are prefixed “[DRY RUN]” so simulated activity is never 
confused with a real migration.

### What happens to product categories, tags, and downloadable files?

These are not migrated automatically because FluentCart’s data model differs structurally.
They need to be re-created/re-attached manually in FluentCart after migration. For
downloadable files, Pre-flight Check’s “Downloadable Files” report lists every file
with its product and Media Library URL so you’re not hunting through the catalog
by hand.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Pxel Migration Toolkit for FluentCart” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Esrat Sultana Popy ](https://profiles.wordpress.org/esratpopy/)
 *   [ pxelCode ](https://profiles.wordpress.org/pxelcode/)

[Translate “Pxel Migration Toolkit for FluentCart” into your language.](https://translate.wordpress.org/projects/wp-plugins/pxelcode-migration-toolkit-for-fluentcart)

### Interested in development?

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

## Changelog

#### 1.1.1

 * Fixed: Pre-flight Check could fail outright (“Request failed”) on stores with
   a large downloadable-product catalog — the 1.0.8 “Downloadable Files” scan had
   no bound on how long it could run and no fault isolation from the rest of the
   report. It’s now capped to a bounded number of products per run (re-run after
   migrating to see the rest on very large catalogs), the request’s time limit is
   raised, and each report section now fails independently — one section erroring
   can no longer take down the whole Pre-flight response.

#### 1.1.0

 * Added: real Dry Run mode on the Migration tab. Every step (Customers, Products,
   Orders, Coupons, Subscriptions, Recount) can now simulate a full run — same logic,
   same skip/warning decisions — without writing anything to FluentCart. A visible
   banner confirms when it’s on, and each step’s log line is prefixed “[DRY RUN]”
   so simulated activity is never confused with a real one. All actual database 
   writes now funnel through one internal component (PXWFCM_Writer) so live and 
   dry-run mode share identical code paths.

#### 1.0.9

 * Renamed display name from “PxelCode Migration Toolkit for FluentCart” to “Pxel
   Migration Toolkit for FluentCart” (plugin header, readme, and on-page heading).
   Slug/folder and text domain unchanged — this is an in-place update, no reinstall
   needed.

#### 1.0.8

 * Added: Pre-flight Check now includes a “Downloadable Files” report — lists every
   downloadable product/variation with its file name and Media Library URL, so files
   can be re-attached under FluentCart’s Downloadable Asset(s) without hunting through
   the catalog product-by-product. Read-only, same as the rest of Pre-flight — doesn’t
   touch WooCommerce or FluentCart data.

#### 1.0.7

 * Fixed: variable-product variations with real, in-stock quantities (e.g. 5 in 
   stock) still showed as unlimited stock even after the 1.0.6 fix. FluentCart’s
   purchase check only enforces a variation’s stock count when its parent product
   row is ALSO flagged as stock-managed — the parent flag was still being set from
   the raw (and often-off) WooCommerce store setting instead of following the same
   corrected logic as its variations. Both migration and the “Fix Stock” repair 
   tool now roll the correct flag up to the parent.
 * Fixed: “WC Migrator” under FluentCart’s own admin menu could 404 and bounce to
   the dashboard, because our submenu was registered before FluentCart’s own top-
   level menu existed (a well-known WordPress admin_menu timing issue). Now registered
   at a later priority so FluentCart’s menu is guaranteed to exist first. The “WC
   FluentCart” top-level menu item (separate from FluentCart’s menu) was unaffected
   and still works either way.

#### 1.0.6

 * Fixed: in-stock variable-product variations with a real WooCommerce quantity (
   e.g. 5 in stock) still migrated as unlimited stock — the 1.0.5 fix only forced
   manage_stock on for out-of-stock items, but managing_stock() itself returns false
   for every product when the store’s global “Manage stock” option is off, even 
   when individual products/variations carry a real quantity. Stock resolution no
   longer relies on managing_stock() at all — if WooCommerce has a quantity on record,
   it’s now trusted and carried over.

#### 1.0.5

 * Fixed: out-of-stock products/variations migrated as unlimited stock whenever 
   WooCommerce wasn’t quantity-tracking them (i.e. “Manage stock” off, Stock status
   set to Out of stock manually) — FluentCart only enforces out-of-stock when manage_stock
   is on, so this is now forced for out-of-stock items regardless of WooCommerce’s
   tracking setting.
 * Fixed: variable products whose variations were entirely out of stock and hidden
   from the catalog (a common WooCommerce setting) fell through to a “no variations”
   fallback that stored $0 as the price and unlimited stock. Variations are now 
   fetched directly (not filtered by catalog visibility), so out-of-stock variations
   migrate with their real price and correct stock status.
 * Added: “Fix Stock” maintenance tool to repair products/variations already migrated
   before this fix, without re-running the full migration.

#### 1.0.3

 * Maintenance release.

#### 1.0.2

 * Renamed from “Store Migration Toolkit for FluentCart” (slug store-migration-toolkit-
   for-fluentcart) to “PxelCode Migration Toolkit for FluentCart” (slug pxelcode-
   migration-toolkit-for-fluentcart) per WordPress.org trademark-naming guidelines—
   the display name now leads with a distinctive term instead of a generic descriptive
   phrase. This is a new slug, not an in-place update: deactivate/delete the old
   plugin and install this one.

#### 1.0.1

 * Security/compliance hardening: replaced mt_rand() with wp_rand() in UUID generation,
   escaped an exception message that could carry unescaped output, and guarded set_time_limit()
   with a function_exists() check.
 * Documented and justified direct-database-query usage against the plugin’s own
   fixed-name tables to satisfy Plugin Check.

#### 1.0.0

 * Initial release. Migrates customers, products, orders, coupons, and subscriptions
   from a WooCommerce store into FluentCart, with a read-only Pre-flight Check to
   scan for likely problem spots before migrating.

## Meta

 *  Version **1.1.1**
 *  Last updated **9 minutes ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [ecommerce](https://wordpress.org/plugins/tags/ecommerce/)[fluentcart](https://wordpress.org/plugins/tags/fluentcart/)
   [import](https://wordpress.org/plugins/tags/import/)[migration](https://wordpress.org/plugins/tags/migration/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/pxelcode-migration-toolkit-for-fluentcart/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/pxelcode-migration-toolkit-for-fluentcart/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/pxelcode-migration-toolkit-for-fluentcart/reviews/)

## Contributors

 *   [ Esrat Sultana Popy ](https://profiles.wordpress.org/esratpopy/)
 *   [ pxelCode ](https://profiles.wordpress.org/pxelcode/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/pxelcode-migration-toolkit-for-fluentcart/)