How to download all product images from Shopify in one ZIP
Shopify does not give you a "download all images" button. The images live on Shopify's CDN, and the way to reach them in bulk is through your product CSV. Below are the two realistic ways to do it: the free manual method, and a faster tool that does the organizing for you.
Before you start
- You can open Products → Export in your Shopify admin.
- You know whether you want all products or only some: Shopify can export the current page, selected products, or products that match a search or filter.
- You can read the email of the account you export from. Exports of all products are emailed there (the store owner gets a copy) rather than downloaded.
- Your products still exist. Image links stop working once a product or its images are deleted.
- Shopify adminProducts → Export → All products
- Product CSVSeveral rows per product, links in
Image Src - ParcelReads every link, names files by SKU
- One ZIPA folder per product and a spreadsheet of every image
Where the images are in the export
Open the CSV and you will see that a product spans several rows that share its handle: a row for each variant and a row for each extra image, and one row can be both. The image links are in the non-empty Image Src cells, plus Variant Image for photos tied to a variant.
| Handle1 | Title | Variant SKU | Image Src2 | Image Position3 | Image Alt Text |
|---|---|---|---|---|---|
| trail-mug | Trail Mug | MUG-01 | https://cdn.shopify.com/s/files/1/…/mug-1.jpg?v=… | 1 | Green mug on a desk |
| trail-mug | https://cdn.shopify.com/s/files/1/…/mug-2.jpg?v=… | 2 | |||
| tea-towel | Tea Towel | TT-02 | https://cdn.shopify.com/s/files/1/…/towel-1.jpg?v=… | 1 | Folded linen towel |
Columns without a note are left out here; your file has them too.
- Handle ties a product’s rows together. Extra images repeat it on their own row with most other cells empty.
- Image Src is a direct link to the image file on Shopify’s CDN. Variant photos can also sit in a separate Variant Image column.
- Image Position is the order of the product’s photos; position 1 is usually the main image.
The free manual method
This costs nothing and works for any store. The catch is that you end up with unnamed files in a single folder, and you will spend time renaming and sorting them yourself.
- In Shopify admin, go to Products, click Export, and export your products as a CSV file.
- Open the CSV in a spreadsheet app. Find the Image Src column. Every cell in that column is a direct link to one product image on Shopify's CDN.
- Copy the Image Src column into a bulk-download browser extension (there are several free ones for Chrome and Firefox) or feed the URLs to a download script.
- Download. You get one folder of image files, named whatever the CDN called them (long strings of numbers and letters, not product names).
If you have a handful of products, this is fine. If you have hundreds, the renaming and sorting is where the hours go.
Free method
Downloads/
- mug-1.jpg
- mug-2.jpg
- towel-1.jpg
- IMG_4471.jpg
- IMG_4471-1.jpg
- …
Every image in one folder, named however it was uploaded. Nothing says which product it belongs to.
Parcel
parcel-1a2b3c4d.zip
- trail-mug/
- MUG-01-1.jpg
- MUG-01-2.jpg
- tea-towel/
- TT-02-1.jpg
- manifest.csv
A folder per product, files named by SKU in their Shopify order, and a spreadsheet linking each file to its product.
The faster way: Parcel
Parcel (parcelexport.com) takes that same product CSV and returns one ZIP file, organized for you:
- One folder per product
- 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
- A failed-downloads report if any image could not be fetched
Nothing is installed on your store and Parcel never asks for store access. Your CSV is parsed in your browser, and the images are downloaded as originals: no resizing, no compression.
What it costs
Pricing is one-time, not a subscription. Up to 25 products is free. Larger exports 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.
One thing to do first
Run the export before deleting products or closing your store. Once a product is gone, its image links stop working and there is nothing left to download.
If something goes wrong
- Shopify emailed the export instead of downloading it
- That’s normal for an export of all products, or for a product with more than 100 variants. Look in the inbox of the account that exported (the store owner also gets a copy), then save the attached CSV.
- Shopify says “There was an error exporting your products”
- Very large exports can time out. Filter the product list (by type, vendor or collection, for example), export each part separately, and upload each CSV to Parcel as its own export.
- Parcel says some links were skipped
- Parcel downloads Shopify product images from
cdn.shopify.comover HTTPS. Links to other sites in the image columns are skipped and counted on screen; save those images by hand. - An image is listed in failed-downloads.csv
- Its link didn’t return an image, often because the photo was replaced or the product deleted after the CSV was exported. Open the
original_urlfrom the report in a browser, and export a fresh CSV if the link is old. - Some files are named by handle instead of SKU
- Those products have no SKU in the CSV, so Parcel uses the product handle. Add SKUs in Shopify and export again if you need SKU names everywhere.
Questions
Can I download all Shopify product images at once?
Not from the Shopify admin: there is no bulk image download. The product CSV export lists a link to every product image, and you can download those links with a browser extension, a script, or Parcel.
Can I download images for only some products?
Yes. Shopify can export the current page of products, products you select, or products that match a search and filters. Upload that smaller CSV and only those products are downloaded.
Are the images resized or compressed?
No. Parcel downloads the file at each link in your CSV exactly as Shopify serves it and puts it in the ZIP unchanged.
Does Parcel need access to my Shopify store?
No. You export the CSV yourself and upload it. Parcel never asks for your store login, an API token or app permissions.
What is in manifest.csv?
One row per saved image: the product title, handle, SKU, image position, the original link, the file name in the ZIP, and the alt text.
How long can I download the ZIP?
For 24 hours after the export is ready. Then access ends and the stored files are deleted, so save the ZIP somewhere safe.