Skip to content

Swft Offload

Archives old WooCommerce orders out of your database into Swft Cloud (Cloudflare R2). Your admin stays fast as order counts grow, customers still see their full order history in My Account, and any archived order can be restored on demand.

Swft Offload is a paid add-on starting at £5/month. The plugin itself is free; you pay for cloud storage and retrieval.

WooCommerce keeps every order in your database forever. Past a few thousand orders, the admin slows down: order screens take seconds to load, reports time out, and any plugin that does a JOIN on wp_posts or HPOS tables drags. Offload pulls orders older than a threshold off the database and stores them in Swft Cloud, replaying them back to your site whenever a customer (or you) needs them.

The plugin is HPOS-aware and works with both the new order tables and the legacy custom-post-type layout.

  • WordPress 6.0+
  • WooCommerce 8.0+
  • PHP 7.4+
  • Swft account with the Offload add-on enabled
  • WP-Cron enabled (Offload runs a daily archive job)
  1. Install the Swft Offload plugin from your Swft dashboard’s downloads section.
  2. Activate it in PluginsSwft Offload.
  3. Go to WooCommerce → Settings → Offload.
  4. Paste your Swft API key (the same one you use for Swft Checkout).
  5. Configure the archive threshold (default: 180 days), batch size, and which order statuses to include.
SettingWhat it does
Archive thresholdOrders older than this many days are eligible for archival. Default 180.
Batch sizeHow many orders to archive per cron run. Default 100. Increase if you have a large backlog.
Statuses to archiveWhich order statuses qualify. Default: completed, refunded, cancelled, failed.
Purge cloud on uninstallOpt-in destructive cleanup. Off by default.

A daily cron selects qualifying orders, uploads them to Swft Cloud in batches, and writes a row to the local swft_offload_orders index table (one row per archived order ID, with customer email and storage key). The plugin hooks into woocommerce_get_orders so that whenever WooCommerce or My Account asks for an archived order, the plugin transparently fetches it from Swft Cloud.

Restoration via POST /wp-json/swft-offload/v1/restore replays the full order back into WooCommerce — line items, fees, refunds, customer notes, meta, original dates — idempotently. The endpoint is rate-limited and IP-checked.

TierObject limitStorageMonthly
Starter10,000 archived orders1 GB£5
Growth100,00010 GB£15
Scale1,000,000100 GB£40
EnterpriseCustomCustomContact us

Usage is tracked in your Swft dashboard under Offload.

  • Archived orders contain personally identifiable data. Swft Cloud encrypts at rest, but the data lives off your server — make sure your privacy policy reflects this.
  • WP-Cron must run reliably. If your site has very low traffic, set up a real cron job hitting wp-cron.php rather than relying on visitor-triggered cron.
  • Reports and analytics plugins that query the WC orders table directly will see fewer rows. Use your Swft dashboard for full-history reporting.

If you need help, contact [email protected] or check your dashboard at Offload.