Skip to content
DataEase
Try for free

Migrate from WordPress / WooCommerce to Shopify

DataEase moves a WordPress site or a WooCommerce store to Shopify straight from the site’s REST API - no plugins, no CSV exports, no spreadsheets. You enter the site address and an application password, pick what to move, and DataEase does the rest. It also creates redirects from the old URLs, so links and search rankings keep working after you switch the domain.


WordPress / WooCommerceShopifyDetails
Products (simple and variable)ProductsTitle, description, status, tags, category as product type, images, SKU, barcode (GTIN/EAN/UPC), price and sale price (as compare-at price), weight, tax status, stock quantity (in your main location), backorders, SEO title and description.
VariationsVariantsAttributes become options (up to 3). “Any size” variations are expanded into real combinations.
Product categoriesCollectionsManual collections with the category’s products, description and image.
CustomersCustomersName, email, phone, billing and shipping addresses.
OrdersOrdersHistorical copy with line items (linked to the migrated variants by SKU), shipping, fees, coupon discount, tax and payment. No emails are sent to customers.
CouponsDiscount codesPercentage, fixed cart, fixed product and free shipping; expiry date, usage limits, minimum spend, product and category restrictions.
PostsBlog articlesTitle, content, excerpt, author, publish date, featured image, categories and tags (as article tags), SEO. All posts go into one Shopify blog (default: News).
PagesPagesTitle, content, publish date, SEO.
Old URLsURL redirectsProducts, categories, posts, pages, the /shop/ page and /my-account/ redirect to their Shopify addresses (/cart and /checkout already match).
  • Images inside descriptions and posts are copied to Shopify → Content → Files, and the links are updated, so nothing breaks when the old site goes offline.
  • The WordPress ID of every record is saved in the wordpress.id metafield.
  • SEO title and description are taken from the Yoast SEO plugin, if it is installed.
  • Drafts stay drafts: draft products and posts are migrated but not published.

Not migrated: themes and design, plugins and their settings, product reviews, post comments, payment and shipping settings, taxes, customer passwords (customers set a new password in Shopify), grouped products.


  • WordPress 5.6 or newer with the REST API enabled (it is on by default). For store data - WooCommerce 3.5 or newer.
  • A WordPress user with the Administrator or Shop manager role.
  • The site must be reachable from the internet - DataEase cannot connect to localhost or an intranet address. Keep it online until the migration finishes: images are downloaded from it.
  • Your Shopify store should use the same currency as WooCommerce - prices are copied as-is, without conversion.

Step 1. Create an application password in WordPress

Section titled “Step 1. Create an application password in WordPress”
  1. In WordPress admin, open Users → Profile (or edit the admin user).
  2. Scroll to Application Passwords.
  3. Enter a name, for example DataEase, and click Add New Application Password.
  4. Copy the password that appears (it looks like abcd EFGH 1234 ijkl MNOP 5678). WordPress shows it only once.

An application password is not your login password: it only works for the API and can be revoked at any time.

No “Application Passwords” section? It is hidden when the site does not use HTTPS, or a security plugin disables it (for example, Wordfence → Login Security → Disable application passwords). Enable HTTPS or allow application passwords while you migrate.

  1. In Shopify, open DataEase → Store transfers.
  2. Choose the From WordPress / WooCommerce tab.
  3. Enter your site address (for example https://myshop.com), the WordPress username and the application password.
  4. Click Check connection.

DataEase shows the site name, whether WooCommerce was found, and how many records of each type the site has.

  1. Tick the data you want to move - everything found on the site is selected by default.
  2. If you migrate blog posts, choose the Shopify blog they go into.
  3. Click Start migration.

The migration runs in the background - you can close the page. The Transfers list shows which data is being migrated right now, and you can Cancel at any moment.

When the migration finishes, the list shows how many records were migrated for each type, with warnings and errors and their reasons - for example Orders: 1250 ⚠3. Typical warnings are coupons with settings Shopify does not support, or records that were already migrated earlier.


  1. Review products, collections and prices in Shopify admin.
  2. Set up payments, shipping and taxes - they are not migrated.
  3. Choose and customize a theme, then add the migrated pages and collections to the navigation menu.
  4. Connect your domain to Shopify. Old links like /product/red-jacket/ now redirect to /products/red-jacket.
  5. Revoke the application password in WordPress (Users → Profile → Application Passwords → Revoke). DataEase deletes it from its own database as soon as the migration finishes.

You can run the migration again at any time - for example, right before switching the domain to pick up new orders. Existing records are updated, not duplicated:

  • products, collections, customers, pages and blog posts are matched by handle or email and updated;
  • orders that were migrated before, existing discount codes and existing redirects are skipped (you will see a warning with their number);
  • images already copied to Shopify Files are reused.

  • Status: Published → Active; Draft, Pending and Private → Draft. Products hidden from the catalog are not published to the Online Store.
  • Prices: the sale price becomes the Shopify price, and the regular price becomes the compare-at price.
  • Stock: quantities go to your main location. Products with Allow backorders keep selling when out of stock.
  • Options: a variable product’s attributes (Color, Size, …) become options. Shopify supports up to 3 options and 2048 variants per product.
  • Vendor: taken from the WooCommerce Brands taxonomy, if used.
  • The short description is saved in the wordpress.short_description metafield.
WooCommerce statusShopify payment statusFulfillment
Pending payment, On holdPendingUnfulfilled
ProcessingPaidUnfulfilled
CompletedPaidFulfilled
RefundedRefunded-
CancelledVoided-

Failed orders and checkout drafts are not migrated. Every migrated order gets the wordpress tag and a woo-<status> tag (for example woo-completed), and keeps its WooCommerce number (#1045).

WooCommerceShopify
Percentage discountPercentage off
Fixed cart discountFixed amount off the order
Fixed product discountFixed amount off each eligible item
Free shipping (amount 0)Free shipping discount
Individual use onlyDoes not combine with other discounts
Usage limit per user = 1Limit to one use per customer

Maximum spend, email restrictions, excluded products and per-user limits above 1 have no equivalent in Shopify; such coupons are migrated without these settings, with a warning.


MessageWhat to do
WordPress rejected the credentialsCheck the username and create a new application password. Some hosts strip the Authorization header - ask the host to pass it to PHP.
WooCommerce REST API was not foundMake sure WooCommerce is active. Only posts, pages and redirects can be migrated without it.
returned a non-JSON responseA security plugin, firewall or cache blocks the REST API. Allow /wp-json/ requests while you migrate.
must be reachable from the internetUse the public address of the site, not localhost or an internal IP.
Image … was not copiedThe image URL was not reachable. The post keeps the old link - upload the image in Content → Files manually.

Do customers get emails? No. Customers and orders are created without notifications or invitations.

Is my WordPress site changed? No. DataEase only reads from it.

Is the application password stored? Only while the migration runs, encrypted. It is deleted when the migration finishes, fails or is cancelled.

Can I migrate only the blog? Yes. WordPress without WooCommerce works too: select Blog posts, Pages and Redirects.

Moving from Magento or between two Shopify stores instead? See Migrate from Magento and Store transfers.

A real run with numbers: migrating a WooCommerce store to Shopify in under 90 seconds. Release notes: WordPress / WooCommerce migration.