If you want to learn how to export products from WordPress to Shopify, the first thing to clear up is what kind of WordPress site you have. A plain WordPress blog has no products to export. A WordPress shop almost always runs WooCommerce, and WooCommerce is where your products, prices, variants and images actually live. So in practice, exporting from WordPress means exporting from WooCommerce, then reshaping that data into the format Shopify expects for an import.
That reshaping step is where most people get stuck. WooCommerce and Shopify do not use the same export format, the same column names, or the same way of grouping variants. A file that downloads neatly from one system will not upload neatly to the other without work. This guide walks through the whole job in order, so you can move a catalogue without retyping every product by hand, and without importing a mess you then have to clean up inside Shopify.
Before you export: check what you actually have
Open your WooCommerce catalogue and look at it the way Shopify will see it. Count the products, not just the rows in a spreadsheet. A T-shirt in three sizes and two colours is one product with six variants, not six separate products. Shopify groups variants under a single handle, which is a short, unique name for the product, so sizes and colours that belong together must stay together in the file.
Check three other things before you start. First, images: are the product photos attached to the products themselves, or only inside a gallery or a page builder? Attached images travel far more reliably. Second, prices: note which products are on sale, because Shopify needs both the selling price and the compare-at price to show a discount correctly. Third, stock and status: decide which products should arrive as published and which should arrive as drafts, so nothing goes live before you have reviewed it.
Only move products you own or have the right to sell and describe. Product titles, descriptions and photographs belong to their source stores, so if you are moving your own shop, that is straightforward. If a supplier has authorised you to list their products, keep that permission in mind and write your own descriptions where the original copy is protected.
Step 1: Get your products out of WooCommerce
There are two sensible ways to get the data out, and the choice depends on how large your catalogue is.
For a small catalogue, you can export from WooCommerce itself. The built-in export produces a CSV of products, with titles, descriptions, prices, SKUs and image addresses. It is a useful backup and a useful checklist, even if you do not use that exact file for the Shopify import.
For a larger catalogue, or one where the built-in export leaves gaps, use a tool that reads the shop directly. WeCalculator's Shopify Product Extractor reads real WordPress shops through the WooCommerce Store API, so it can take a whole store catalogue in one run, with sale prices and attribute variants included. You paste a product link, a category page, or the shop homepage, review the results, and download a Shopify-ready CSV. The extractor is free, needs no account, and stores nothing: links are fetched on demand to build your CSV in your browser.
Whichever route you choose, do not skip the review step. An export is only as good as the data it contains, and a quick scan now saves a long cleanup later.
Step 2: Turn the export into Shopify's format
Shopify's import format has 96 columns, in a fixed order. You do not need to fill every column, but you do need to get the important ones right. Title, handle, vendor, product type and tags describe the product. Variant SKU, variant price, compare-at price, inventory quantity and variant weight describe each sellable version of it. Image source addresses, in order, attach the photographs.
The most common mistake is splitting variants into separate products. If the same T-shirt appears as six separate rows with six different handles, Shopify will import six products, each with one size, and your shop will look broken. Keep one handle for the whole product, one row per variant, and one image row per extra photograph, in the order you want them displayed.
Currency is another trap. Prices are copied in the source store's currency, and the tool does not convert currencies. If your WooCommerce shop prices in one currency and your Shopify shop sells in another, adjust the prices in the results table before you download, or edit them in Shopify afterwards.
Step 3: Test with two products first
Never import a whole catalogue in one go on the first attempt. Pick two products that cover your range: one simple product with no variants, and one variable product with sizes or colours. Import just those two, then open them in Shopify Admin and check everything that matters: title, description, price and compare-at price, photographs in order, variants, SKUs and stock quantity.
This small test tells you more than any checklist can. If images are missing, handles are duplicated, or a sale price has landed in the wrong column, you will see it on two products, not two hundred. Fix the problem at the source, re-export or re-extract, and test again. When the two test products look right, import the rest.
A worked example helps here. Suppose your shop has 40 products. Importing 2 first leaves 38 to go. If one of the two test products needs a price correction, you have corrected a pattern, not a single row, and the remaining 38 will benefit from the same fix. That is why the test step is not wasted time: it is the cheapest way to protect the whole migration.
Step 4: Import, review and publish in stages
When the test passes, import the full file at Shopify Admin, then Products, then Import. Shopify shows a preview of the first products before it commits the import. Read that preview. Check the summary when the import finishes, and open a sample of products across your catalogue, not just the first few.
Set Status to draft in the tool for a large first import, so nothing goes live before you have reviewed it. You can publish in bulk from Shopify once you are happy. This matters most for sale prices and photographs, because those are the details customers notice first, and the details that are hardest to fix quietly after a shop is live.
After publishing, keep your WooCommerce shop running for a short while. Customers may still arrive through old links, search results or bookmarks. Redirects from old product addresses to new Shopify addresses are a separate job from the product export, but they are worth planning before you close the old shop completely.
Common problems, and what to do about them
Missing images usually mean the image address in the file is wrong, or the image was never attached to the product in WooCommerce. Reattach the image at the source and re-export that product, rather than uploading photographs one by one in Shopify.
Duplicate products usually mean duplicate handles. Shopify treats a row with an existing handle as an update to that product, not a new product, so a handle clash can overwrite a product you meant to keep separate. Give each product a distinct handle, and let the tool deduplicate handles automatically where titles repeat.
Wrong sale prices usually mean the compare-at price was not carried over, or a markup was applied twice. Check the selling price and the compare-at price side by side for a sale product before you import, and remember that a blank compare-at price means the product is not on sale at all.
If a store blocks automated access or hides its data behind a login, the extractor will say so for that product, rather than inventing a price or title to fill the gap. A failed product is one you can type in manually. It is not a reason to abandon the whole export.
Frequently asked questions
Can I export products from WordPress without WooCommerce?
No, not in any useful sense. WordPress on its own has posts and pages, not products with prices, variants and stock. If your shop runs on WordPress, it almost certainly runs WooCommerce, and that is the system you export from.
Will my product images move to Shopify?
Yes, if the image addresses are included in the file and the images are publicly reachable. The extractor carries every product photo as an image row, in order. Check the order on your test products, because the first image becomes the main product photograph in Shopify.
Do I need to close my WooCommerce shop before I import to Shopify?
No. Keep it open until the Shopify shop is reviewed and published. Importing to Shopify does not delete anything from WooCommerce, and keeping the old shop live gives you a fallback while you check the new one.
Try the export with the free Shopify Product Extractor, starting with two test products, and only then import the full catalogue.