Export Shopify product images named by SKU
File names matter when images leave Shopify. A warehouse system, a marketplace feed, or a designer receiving your catalog all work better with files named by SKU (TOTE-01-1.jpg) than with Shopify's CDN names (long strings of numbers and letters). Here is how to get SKU-named image files, the free way and the fast way.
Before you start
- Your products have SKUs in Shopify. Products without one are named by their handle instead.
- You know whether you want a folder per product or every file in a single folder.
- You can open Products → Export in your Shopify admin.
- Variant SKUThe SKU on the image’s row, else the product’s first
- Image orderEach image’s place among the product’s photos
- Parcel joins themSKU, a dash, the number, the file’s own type
- FH-2001-2.pngIn the product’s folder, or one shared folder
Which SKU each image gets
Each image is named after the SKU on its own row. Rows that only add an extra photo have no SKU, so those images use the product’s first SKU. An image on a variant’s row, in Image Src or the Variant Image column, carries that variant’s SKU, so a size or colour photo gets the code your warehouse uses for it.
| Handle | Variant SKU1 | Option1 Value | Image Src2 | Image Position3 | Variant Image4 |
|---|---|---|---|---|---|
| linen-apron-sage | FH-2001 | S | https://cdn.shopify.com/s/files/1/…/apron-front.png?v=… | 1 | |
| linen-apron-sage | https://cdn.shopify.com/s/files/1/…/apron-back.jpg?v=… | 2 | |||
| linen-apron-sage | FH-2001-L | L | https://cdn.shopify.com/s/files/1/…/apron-large.jpg?v=… |
Columns without a note are left out here; your file has them too.
- Variant SKU: the first row’s
FH-2001names its own image and the extra-photo row below it, which has no SKU:FH-2001-2.png,FH-2001-3.jpg. - Image Src holds the product’s own photos, the front and back of the apron here.
- Image Position sets the number. A variant photo with no position comes first, so
-1is usually, but not always, the main image. - Variant Image belongs to the large size, so it is named with that variant’s SKU:
FH-2001-L-1.jpg.
The free manual method
Shopify's product CSV already contains everything you need: the Variant SKU column has your SKUs and the Image Src column has the image links. The work is joining the two.
- In Shopify admin, go to Products, click Export, and export your products as a CSV.
- Bulk-download the images from the Image Src column using a free browser extension or script. The files arrive with CDN-generated names.
- Build the mapping: match each downloaded file back to its product using the CSV, so you know which SKU each file belongs to. A spreadsheet VLOOKUP on the image URL gets you there.
- Rename every file to its SKU. A bulk-rename utility (or a short script) can apply the names from your spreadsheet in one pass.
For a small catalog this is manageable. For hundreds of products with multiple images each, the matching and renaming is slow and error-prone: one misaligned row renames every file after it.
Free method
Downloads/
- apron-front.png
- apron-back.jpg
- apron-detail.webp
- apron-large.jpg
- …
Named however the photos were uploaded. You look up every SKU yourself.
Parcel
parcel-1a2b3c4d.zip
- linen-apron-sage/
- FH-2001-L-1.jpg
- FH-2001-2.png
- FH-2001-3.jpg
- FH-2001-4.webp
- manifest.csv
Every file named by SKU and image order. The manifest maps each new name back to its original link.
The faster way: Parcel
Parcel (parcelexport.com) does the whole thing in one step. Upload the same product CSV and you get one ZIP with:
- Files named by SKU automatically (products without a SKU fall back to the product handle)
- One folder per product, so multi-image products stay together
- A manifest spreadsheet listing every image with its link, SKU, and alt text
- A failed-downloads report for any image that could not be fetched
In the exporter, set Filename to SKU (handle if missing) and Organization to Folder per product or Single folder. You can also keep the Product handle or the Original filename instead.
Nothing is installed on your store and no store access is needed. Your CSV is parsed in your browser, and images are downloaded as originals with no resizing.
What it costs
Up to 25 products is free; larger exports are a one-time $9 (26 to 250 products), $19 (251 to 1,000), or $39 (over 1,000). No subscription. Files are kept for 24 hours after the 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 timing note
If you are renaming images as part of deleting products or closing a store, run the export first. Once products are deleted, the image links in the CSV stop working.
If something goes wrong
- Some files are named by handle
- Those products have no SKU in the CSV. Add SKUs in Shopify and export again, or keep the handle names.
- Two products share a SKU
- With Folder per product, each keeps its name in its own folder. In a Single folder, the second file gets
-2added so nothing is overwritten. Fixing the duplicate SKU in Shopify is the cleaner answer. - A number is missing, such as -1
- The numbers follow the product’s image order. If an image could not be downloaded, its number is skipped rather than reused; check
failed-downloads.csv. - The files have different extensions
- Each file keeps its own format (JPEG, PNG, WebP, GIF or AVIF). Parcel never converts or re-compresses images.
Questions
Can Shopify name image files by SKU?
No. Shopify keeps the name each image was uploaded with. To get SKU names you rename the files after downloading them, by hand or with Parcel.
What does the number after the SKU mean?
It is the image’s place in the product’s image order: -1 for the first, -2 for the second, and so on. A variant photo with no position comes first, so -1 is usually the main image but not always.
Which SKU does each image get?
The SKU on the image’s own row in the CSV. Rows that only add an extra photo have none, so those images use the product’s first SKU; an image on a variant’s row gets that variant’s SKU.
What if a product has no SKU?
Parcel uses the product handle instead, for example linen-apron-sage-1.jpg, so every file still has a meaningful name.
Can I get every file in one folder?
Yes. Choose Single folder under Organization. Files with the same name are kept apart by adding -2, -3 and so on.
How do I match the new names to the old links?
manifest.csv lists every image’s original link next to its new file name, SKU and product, so you can look up any file in either direction.