Moving from Shopify to WooCommerce: take your product images with you
When you move from Shopify to WooCommerce, product details usually transfer cleanly. Images are the part people lose. Shopify’s product CSV holds links to your images, not the files, and those links stop working once the products or the store are gone. WooCommerce’s importer can fetch images from links, but only while the links still work, and a product whose image fails to import is easy to miss. So keep your own copy of every image, organized by product, before you switch. Here is the free way, a faster way, and how to check the new store afterwards.
Before you start
- Your Shopify store and products are still live; nothing has been deleted.
- You can export products from Shopify (Products → Export) and import them into WooCommerce.
- You know where the images will live: the WordPress media library, or another website the importer can reach.
- You’ll compare the new store with your Shopify export before closing the old store.
- Shopify exportProducts → Export, all products
- Copy every imageParcel saves the files, a folder per product, plus a list
- Import to WooCommerceImage links in the
Imagescolumn - Check the new storeExport from WooCommerce and compare image counts
The free manual method
This works and costs nothing. The tedious part is the organizing.
- In Shopify admin, go to Products, click Export, and export your products as a CSV. Do not delete anything yet.
- Open the CSV and find the Image Src column. Each cell is a direct link to one product image on Shopify’s CDN.
- Copy the Image Src column into a bulk-download browser extension or a download script, and download every image. The files arrive with CDN-generated names, not product names.
- Sort the files into folders per product and rename them so you can match them to products later. For a large catalog this is the step that eats an afternoon.
- Upload the images to your WordPress media library, or to any website the importer can reach, and put their links in the Images column of your WooCommerce import CSV, separated by commas, main image first.
The risk in this method is silent loss. If a download fails and you do not notice, that product arrives on WooCommerce with no image, and you find out from a customer.
What the WooCommerce import expects
| SKU1 | Name | Images2 |
|---|---|---|
| MUG-01 | Trail Mug | https://your-store.com/wp-content/uploads/…/MUG-01-1.jpg, https://your-store.com/wp-content/uploads/…/MUG-01-2.jpg |
| TT-02 | Tea Towel | https://your-store.com/wp-content/uploads/…/TT-02-1.jpg |
Columns without a note are left out here; your file has them too.
- SKU matches the SKU in Parcel’s file names and manifest, so you can find each product’s files quickly.
- Images holds links the importer can download, separated by commas. The first link becomes the product’s main image.
Free method
Downloads/
- products_export.csv
Links to Shopify’s CDN only. They stop working when you close the store, and nothing tells you which import failed.
Parcel
parcel-1a2b3c4d.zip
- trail-mug/
- MUG-01-1.jpg
- MUG-01-2.jpg
- tea-towel/
- TT-02-1.jpg
- manifest.csv
Your own copy of every image, by product and SKU, with a list to check the new store against.
The faster way: Parcel
Parcel (parcelexport.com) does the download and the organizing in one pass. Upload the same Shopify product CSV and get one ZIP file:
- One folder per product, so multi-image products stay together
- Files named by SKU (falls back to the product handle when a SKU is missing)
- A manifest spreadsheet listing every image with its link, SKU, and alt text, which doubles as your import checklist
- A failed-downloads report listing any image that could not be fetched, instead of failing silently
Nothing is installed on your Shopify store and Parcel never asks for store access. Images are downloaded as originals with no resizing.
What it costs
Pricing is one-time, not a subscription. Up to 25 products is free. Larger catalogs are $9 (26 to 250 products), $19 (251 to 1,000), or $39 (over 1,000). Files are kept for 24 hours after your export is ready.
- 10,000images per export
- 20 MBlargest single image
- 300 MBof images, free export
- 1 GBof images, paid export
Files stay available for 24 hours after the export is ready.
After the move: check WooCommerce
Once your products are imported, export them from WooCommerce (Products → All Products → Export) and compare each product’s Images cell with your Shopify manifest: count the links in the cell against the product’s rows in the manifest. An empty cell means no photos came across; fewer links than rows means some did not. The manifest lists only the images Parcel saved, so also go through failed-downloads.csv. If Parcel counted skipped links on screen, they aren’t listed anywhere: find them in your Shopify CSV (image links that don’t start with https://cdn.shopify.com/) and save those photos by hand before closing the old store. Parcel reads WooCommerce exports too, so you can also download every image from your new store as a backup.
Do it before you close the old store
Run the export before deleting products or closing your Shopify store. Once a product is gone, its image links stop working, and no tool can recover the files from the CSV.
If something goes wrong
- A product arrived on WooCommerce without photos
- Its Images cell was empty or a link failed during import. Find the product’s files in your Parcel ZIP by SKU, upload them to the media library, and add them to the product.
- The import put the wrong photo first
- The first link in the Images cell becomes the main image. Reorder the links, or change the main image on the product in WooCommerce.
- Some images are in failed-downloads.csv
- Those Shopify links didn’t return an image. Open each
original_urlwhile the Shopify store is still live, and save any that open by hand. - The old store is already closed
- Shopify image links stop working once the store or products are gone, so they can’t be downloaded from the CSV any more. Check whether the images survive anywhere else, such as your own original photo files.
Questions
Does WooCommerce import images from a Shopify CSV?
Not directly. WooCommerce’s importer reads its own CSV format, where the Images column holds image links separated by commas. You can point it at Shopify’s links while they still work, but keep your own copy in case they stop.
Should I keep the Shopify store open during the move?
Yes, until the new store is checked. Shopify image links stop working once the products or the store are gone, and then the images can’t be downloaded from your export.
Are the images resized on the way?
Parcel saves each image exactly as Shopify serves it. WordPress may make extra sizes for your theme when you upload, but your original files stay as they are in the ZIP.
How do I check every product made it?
Export your products from WooCommerce (Products → All Products → Export) and, for each product, count the links in its Images cell against its rows in Parcel’s manifest.csv. Fewer links means some photos didn’t come across. The manifest lists only the images Parcel saved, so also check failed-downloads.csv, and if Parcel counted skipped links on screen, find the image links in your Shopify CSV that don’t start with https://cdn.shopify.com/ and save those by hand.