Variant image column ignored in CSV import

I work with products that have over 15 variant images each, and with different size options this adds up to almost 100 variants for each product in total. So manually attaching each image to the correct variants would be tediously time-consuming.

For the past year, I had a routine that worked fine with CSV import. I upload the correct images to each new product, then export the products. Then I use a macro that fills in the “Variant Image” column, by simply copying and pasting the correct url from the “Image Src” column. After re-importing, each product variant would now have the correct image associated with it.

But recently, this same routine has stopped working entirely. I’ve seen people report some similar-sounding issues with a csv breaking the images, but my images are all still there and still in the same order. After re-exporting the URLs are still the same. All the links are still working too, there are no broken images or 404 errors, so the “/deleted” fix I’ve seen mentioned on here wouldn’t be applicable either.

I’m not receiving any error messages when I re-import, and the import did successfully save some changes I made in other areas, like the product tags. It’s as if the import just ignored the “Variant Image” column altogether and left it blank instead of saving the changes.

Same here. I’ve done it many times as well. Lately, all of a sudden it kept missing a lot of variant images.

Has this happened when you’re uploading to products in draft status, or active status? And are each of your variant images unique, or do you have multiple variants with the same image source?

I first noticed the problem when I was overwriting products in active status, and instead of just “missing” some variant images, it was entirely blank with not a single one that worked. When I tried overwriting products in draft status instead, it seemed to work a little better since some variant images were saved.

But the vast majority were still blank - only 3 out of 17 images worked. Each of those working images was applied to multiple size variants. So the issue seems to be image by image, rather than individual variant lines failing.

Hi, I tried this on a draft status. My images are unique and they are the same as the Image Src. Last few weeks, it worked for me. As I have multiple variants per product and uploading via csv file is a big help. But when I tried uploading again lately, it didn’t work at all same as what you’ve experienced. Almost majority of the images were ignored. But when I browse the product gallery to add the variant images, the images were there it just doesn’t attach on the product variants which is weird.

I tried contacting Shopify Support, the solution they gave was keeping the Image Src column blank when uploading via CSV file but that doesn’t work that way because it will just give an error. Image Src is always required. I’m still waiting for their response regarding this issue.

Any update from Shopify on this? I’ve been having the same issue

No update unfortunately. I’ve done another test today and I’m still experiencing the issue, only 6 out of 16 images stayed “attached” to their variants during csv upload.

experiencing the same issue in these days… after csv import all variant images were blank, and even trying to re-import them works 1 of 10 tries… need help from Shopify

I think I solved the problem! If you update uncheck variant image (so i will not overwrite with blank).

If you want to update variant create a CSV with “ONLY” this columns:

Handle - Title - Option1 Name - Option1 Value - Option2 Name - Option2 Value - Option3 Name - Option3 Value - Variant SKU - Variant Inventory Tracker - Variant Image

Thanks for that, that is working on my uploads!

Just need to update my macro now to delete all the extra columns.

Thanks, how do you " update uncheck variant image (so i will not overwrite with blank)." I don’t really understand what this means.

If you’re importing a .csv that will overwrite and update a product, but it needs NO changes to the existing variant images, make sure to delete that entire column of variant images from your spreadsheet before import. This will avoid the error where a product with perfectly fine variant images suddenly stops working. Because the variant image column is removed, Shopify will not attempt to overwrite the existing column with any of your “new” data. So it will be left alone, and won’t have the chance to fail.

But if you are still trying to include variant images on your .csv import (where there were none specified before), MatteoB80’s list here worked for me by removing nearly all columns except these bare essentials:

Handle - Title - Option1 Name - Option1 Value - Option2 Name - Option2 Value - Option3 Name - Option3 Value - Variant SKU - Variant Inventory Tracker - Variant Image

nope. 0 variant images uploaded…I JUST had this working with the same URLs like 2 months ago. A colleague decided to delete my products and their hundreds of variant images (for some reason), so now I have to re-import the images. But my URLs are not working.

One potential issue: My Variant Image URLs don’t end in a file extension (e.g. “.png”, “.jpg”). But the URL still opens up the raw image. Is the URL supposed to end in a file extension? If so, how about reverting it back so it doesn’t have to?

Hi @wad11656 ,

Thanks for reaching out! I’d be happy to provide some assistance with this request, to ensure it gets resolved.

If you haven’t done so already, I’d encourage you to connect with us directly. This will allow our support team to review your CSV file, as we don’t have access to account specific information through the Community. They will be able to confirm it matches our requirements and successfully uploads to the shop.

Please let me know if you have any other questions.

Hi Matteo, I couldn’t find a setting anywhere to uncheck variant image. Where is this? There isn’t a heading on the CSV that denotes this nor is it on the back end product page. Thanks!

Wait, why would you need a variant image, as long as the same as the main “inage src” image?

The “Image Src” column simply lists ALL images associated with the product. Even on a product with no multiple variants, you may have more than one image in this column to show different features or lifestyle mockups. The images in this column are not linked to any variant, not even the one that just happens to be on the same row of the .csv sheet. Instead, the neighboring “Image Position” column lists what order the images are displayed in on the main product page. These images can be browsed and scrolled through by the customer.

But when a customer clicks on a specific variant of your product, you may want it to bring up one associated image, so they can see the correct one right away and do not view it with an incorrect colour or style. The “Variant Image” column specifies which one of those image sources will be displayed if the customer selects that variant.

If the “Variant Image” column is left blank, nothing will happen. For example, they may scroll until they’re looking at a picture of a blue shirt, then select that they want to order a red shirt, but it will still be showing the blue shirt image.

In the upload phase you can uncheck the columns you don’t want to update.

Hi all, I have been having a problem with this for about a month and have not been able to find a solution until now. I have chatted with Shopify several times and my imports have been correct per their instruction (don’t delete rows or columns). I recently spoke with someone who told me the following, which is something I have not been told by any other Shopify support member and it is not in any forums. In addition to not removing any columns or rows, you also CANNOT SORT ROWS.

Here is a copy of our conversation. I don’t know if it is helpful to anyone, but may shed some light on this problem if you feel like you are going crazy like I did.

Shopify: This issue commonly occurs when someone sorts the CSV columns or rows (e.g., sorting variant rows by inventory) before importing. Since additional variants and product images are on separate rows, sorting can break up these rows, causing variants or images to be deleted during import. In this case i would advise avoid sorting the CSV. If you have a backup CSV that hasn’t been sorted, you should import that instead.

Me: We have hundreds of SKUs and prices to update right now. I have to combine a Shopify product export with our new price list, and sort by SKU to compare and adjust. I highlight the Rows that were not part of the original Shopify product export and remove them. I keep all variants in the file, nothing from the original export is deleted.

Shopify: I understand, having 100’s of SKUs with frequent price can be challenging. I can suggest you try the follow to help manage your bulk price updates while minimizing risks:

  • Shopify’s bulk editor allows you to edit multiple products and variants directly within the admin without exporting and importing CSVs. This reduces the risk of data loss from CSV imports.

  • There are third-party apps available in the Shopify App Store designed specifically for bulk product and price management. These apps can provide more advanced filtering, sorting, and bulk update capabilities tailored for large inventories.

  • Consider apps or integrations that can automate price adjustments based on cost changes or tariff updates.

  • To handle tariffs effectively, we offers built-in tools like the duties calculator and Managed Markets, which can help calculate and display duties at checkout, ensuring pricing reflects total costs transparently.

Me: These suggestions unfortunately aren’t helpful, since I need to compare in the same spreadsheet to make these adjustments. What do others do?

Shopify: Directly sorting / rearranging the CSV before importing can cause issues like variants being wiped out. You can look to keep your original export CSV intact in one tab, and perform your sorting, filtering, and price comparison in a separate tab within the same spreadsheet. This way, you preserve the original data structure needed for import. Also in your working tab, use formulas to pull in data from the original tab. This allows you to sort and compare without altering the import-ready data.

Me: Do you have a webpage with instructions to do that and how to create the formulas? I would need something like, if SKU in other tab = XYZ, then replace with this new cell price with the matching SKU in the other tab… if that makes sense.

Shopify: Currently, there isn’t a specific Shopify help page that provides step-by-step instructions on how to keep the original CSV intact in one tab and use formulas in a separate tab for sorting and filtering without breaking the import structure. For learning how to use formulas to pull data between tabs, you can refer to general spreadsheet tutorials such as: IMPORTRANGE - Google Docs Editors Help

Shopify: To achieve this kind of conditional update where you replace prices based on matching SKUs between two tabs, you can use the VLOOKUP function in your spreadsheet software (Google Sheets or Excel).

Me: Ok, so just to be sure… If I keep the order of rows and columns the same as my export, and change data in the cells only, there shouldn’t be any problems?

Shopify: Yes, that’s correct. If you keep the order of rows and columns exactly the same as your original export CSV and only change the data within the cells (such as prices, descriptions, or inventory quantities), you should not encounter issues like variants being wiped out during import. Maintaining the original structure ensures that Shopify correctly associates each row with the right product and variant. Be sure not to sort, add, or delete rows or columns, as this can break the relationships between products and variants and cause data loss or duplication.