Installation Guide › Steps to install

Moving EasyCart to a New Website

Move a WP EasyCart store to a new host or domain: files, database, address, license, payment notifications and keys. 9 parts.

Quick links

Where to find it:WP Admin › EasyCart › Diagnostics

Before you start

Choose how to move

A whole-site move, a fresh start with your products, or the license alone.

Three ways to move

Pick the one that matches your move

Move the whole site. New host or new domain, same store. Copy the files and the whole database, and everything comes with it: theme, plugins, products, orders, customers and settings. This guide covers it step by step.

Start fresh and bring the products. Install a clean WP EasyCart on the new site and move the catalogue with a product export and import. Settings, orders and customers stay behind. See the last section.

Move only the license. Same store, you just need the key on another site. See Transferring Your License.

Copying single EasyCart tables and folders into another WordPress site is possible but easy to get wrong. We do not recommend it.

Move the whole site

Seven steps

Files, database and address, then the license, payments, keys and a final check.

Step 1. Copy the files

All of WordPress, including wp-easycart-data

Copy the whole WordPress folder to the new host with SFTP, your host’s file manager or its migration tool.

Make sure wp-content/plugins/wp-easycart-data comes too. It holds product images uploaded to EasyCart, your download files, customer uploads and any template copies you customised. Without it, downloads fail and some images go missing.

Also copy wp-content/uploads for the media library.

Step 2. Copy the whole database

Every table, not only the WordPress ones

Export the entire database from phpMyAdmin or your host’s control panel, and import it on the new host.

Check the WP EasyCart tables are in the export. Their names start with ec_, such as ec_product and ec_order, and they do not use your WordPress table prefix. Migration and backup plugins that copy only tables starting with your prefix, such as wp_, leave them behind, and the store arrives empty.

⚠️ Careful: Check the backup includes every table before you rely on it. One-click backup plugins that filter by the WordPress prefix miss the EasyCart tables.

Step 3. Point WordPress at the new address

wp-config.php, the site address, then a search and replace

Database connection. Edit wp-config.php on the new host with the new database name, user, password and host.

Site address. If the domain changes, set siteurl and home in the wp_options table (your prefix may differ) to the new address.

Old addresses in content. Pages, menus and some EasyCart data keep full addresses. Product images added by address, rather than from the media library, are stored with the old domain, for example. Run a search and replace from the old address to the new one across all tables, including the ec_ tables, with a tool that handles serialised data, such as WP-CLI’s search-replace.

Step 4. Move the license

Only if the address changed

The license is tied to the site address. On a new domain, open EasyCart › Registration on the new site and enter your key under Already have a license key?. It moves from the old site automatically.

Same domain on a new host? Nothing to do: the address has not changed, so the license has not either.

Details and the other method are in Transferring Your License.

The license card on Registration: Registered URL should show the new address.
The license card on Registration: Registered URL should show the new address.

💡 Note: Registering a staging copy on another address moves the license off your live store. Only register the site you sell from.

Step 5. Reconnect payment notifications

Gateways tell your store about refunds and late payments at its address

Stripe, Square and PayPal send refunds, disputes and payments that finish later to an address on your site: your site address followed by ?wpeasycarthook= and the gateway. A new domain means a new address, and the gateway does not know it yet.

Stripe. Open Settings › Payment, press Manage on Stripe and copy the Webhook address under Notifications from Stripe. In Stripe, add it under Developers, Webhooks, and paste the new Signing secret back into the same drawer.
PayPal. Open PayPal’s settings and use Register again (or Set up notifications) under Notifications.
Square. With Square sync on, the Square card shows a Webhooks line. After a test order it should say Last received. If nothing arrives, contact support.

Then place a small real order, check it reaches Orders, and refund it. For a step by step walkthrough, see How to Take Your First Payment.

Settings › Payment, where each gateway’s card and Manage drawer live.
Settings › Payment, where each gateway’s card and Manage drawer live.

💡 Note: Every gateway card and its settings are covered in Settings › Payments & Taxes › Payment.

Step 6. Renew keys tied to the domain

reCAPTCHA and Turnstile

Bot checks are registered per domain, so the old keys fail on a new one.

Google reCAPTCHA v2: Settings › Accounts › Spam protection. The screen says it: one key pair per site URL. Add the new domain in your Google reCAPTCHA console, or create new keys, and paste the Site key and Secret key.
Cloudflare Turnstile: Settings › Checkout protection, under Human check. Add the new domain to your Turnstile widget, or create one, and paste the Turnstile site key and Turnstile secret key.

Do this before you open the store. Broken keys can block real shoppers at login or checkout.

Human check on Checkout protection, with the Turnstile keys.
Human check on Checkout protection, with the Turnstile keys.

Step 7. Run Diagnostics and clear caches

Pages, permalinks, private files

Open EasyCart › Diagnostics on the new site and fix anything it lists. After a move, look hardest at:

EasyCart Setup Status: data folders, the store, cart and account pages, and that customer uploads and download files are still private. A new server may ignore the protection files the old one honoured, and on nginx the card prints the rule to add.
Miscellaneous: if store links give page not found, use reset permalinks or rebuild permalinks.
Server Settings Status: a new host can have different PHP limits and extensions.

Clear every cache: your caching plugin, the host’s cache and any CDN. Then browse the store logged out and place a test order. See EasyCart Diagnostics for reading the results.

EasyCart Setup Status on Diagnostics: data folders, private files and store pages.
EasyCart Setup Status on Diagnostics: data folders, private files and store pages.
Miscellaneous on Diagnostics, with reset and rebuild permalinks.
Miscellaneous on Diagnostics, with reset and rebuild permalinks.

💡 Note: Caching rules for cart and checkout pages are in Caching and WP EasyCart: What to Exclude and Why.

Another way

Starting fresh

A clean install with your products imported.

Starting fresh instead

A clean install and a product import

On the new site, install WP EasyCart (and PRO, with your license) and run the setup, as in Installing the Plugin.

On the old site, open Products, press Export and choose Export all products. On the new site, press Import and load the file. The how-to How to Import Products from a CSV covers the columns.

Only products move this way. Set up payment, shipping, tax and email again on the new site, and check product images after the import.

Keep going

Related panels

Diagnostics

Every check to run on the new site.

Registration

Moving and checking the license.

Payment

Gateways, notifications and test mode.

Checkout protection

Turnstile and reCAPTCHA keys at checkout.

Accounts

Spam protection keys for login and registration.

Products

Product export and import.

Ready to run your store on WP EasyCart?

Everything in this guide works with the free plugin. PRO and Premium add subscriptions, memberships, wholesale pricing and more. Try every PRO feature free for 14 days.

The WP EasyCart admin: orders and offers
Updated on October 2, 2026