Match supplier photos to Shopify variants before updating products

A supplier sends a folder of product photos. Your store already has the products and variants. The job is to decide which photo belongs to which variant before anything changes in Shopify.

The risk is quiet errors. A photo of the wrong color on a variant can sit unnoticed until a customer orders from it. The safest output is a mapping table where every proposed match cites its evidence (a SKU, a filename or a supplier label) and every uncertain row is held for review.

This guide covers matching photos to variants. If you still need to clean up the product facts themselves, start with turning a supplier catalog into a checked SKU spreadsheet and come back here.

What Shopify allows

These constraints from Shopify’s documentation shape the mapping:

  • Each variant can have only one image. More images can appear in the product’s media gallery, but only one is attached to the variant. (On Plus and Enterprise plans, the Combined Listings app can add more images per option.)
  • A variant image must already be in the product’s media. You pick an existing product image, or upload one while you assign it.
  • Variant images must be images. Videos and 3D models can’t be assigned to a variant.
  • In a product CSV, Handle identifies the product and is required to update products. Variant SKU identifies each variant. Variant Image URL sets the variant image and must be a working, public https link with no password.

So the mapping has one hard rule: one proposed image per variant, and that image must belong to the same product.

Before you start

Gather three inputs:

  1. A current product export. Shopify recommends backing up product data before any import. The export gives you Handle, option values and Variant SKU for every variant.
  2. The supplier’s image delivery, with the original filenames unchanged.
  3. Any supplier document that labels the photos, such as a line sheet, spec sheet or email that names the SKU or color shown in each file.

Then set the matching rules before you look at any photos:

  • A match needs a stable identifier: a SKU in the filename, or an explicit supplier label that ties the file to a SKU or option value.
  • Appearance alone is never evidence. Don’t decide that a photo shows “Sage” rather than “Olive”, or linen rather than a cotton blend, because it looks that way. Colors shift between screens and cameras, and materials often can’t be seen at all.
  • If a supplier name differs from your option value (for example, their “Charcoal” and your “Graphite”), treat it as a question for the supplier. Don’t assume they mean the same thing.

Illustrative mapping table

The following is a fictional example. The product, SKUs and files are invented to show the format.

Product handle: harbor-throw-blanket. Options: Color, Size.

Variant SKUColorSizeProposed image fileEvidence sourceStatus
HB-THR-NAT-STDNaturalStandardHB-THR-NAT_front.jpgSKU prefix in filenameProposed
HB-THR-NAT-LRGNaturalLargeHB-THR-NAT_front.jpgSKU prefix; supplier line sheet says one photo covers both sizesProposed
HB-THR-SAGE-STDSageStandardthrow_green_02.jpgNone. Filename says “green”; store has Sage and OliveHold: ask supplier which color
HB-THR-OLV-STDOliveStandard—No file names OliveHold: request photo
HB-THR-GRA-STDGraphiteStandardthrow_charcoal.jpgSupplier label says “Charcoal”; no Charcoal option existsHold: confirm Charcoal = Graphite
———throw_lifestyle_sofa.jpgNo SKU or labelGallery only, not a variant image

Two details to notice. One image can serve several variants when the supplier says so, as with the two Natural sizes. And an unlabeled lifestyle shot isn’t forced onto a variant. It can go in the product gallery.

The native method

For a few variants, assign images in Shopify admin:

  1. Go to Products and open the product.
  2. In the Variants section, click the image icon next to the variant.
  3. Pick an existing image or upload one, then click Done and Save.

To give several variants the same image, tick those variants, open the menu, choose Add images or Edit images, pick the image, then click Done and Save.

For larger catalogs, a CSV import sets the Variant Image URL for each variant row. Watch for these import hazards:

  • Filenames are permanent. A file’s name can’t be changed after upload, and it must not end in _thumb, _small or _medium. Rename supplier files before uploading if needed, and record both names in your table.
  • Blank cells can erase data. With “Overwrite products with matching handles” on, blank columns overwrite existing values with blanks.
  • Don’t edit option values in the same file. Changing option values deletes the existing variant IDs and creates new ones, which can break third-party integrations.
  • Don’t sort the CSV in a spreadsheet. Sorting can separate products from their image links and lose the images.

Verification checklist

Check the table before you make any change:

  • One-to-one variant mapping. Every variant SKU appears once, with at most one proposed image.
  • Every SKU exists in the current export. There are no typos and no variants from other products.
  • Image ownership. Each file came from this supplier’s delivery for this product, and you have permission to use it.
  • Every Proposed row cites evidence: a SKU in the filename or a named supplier document. Rows backed only by appearance are moved to Hold.
  • Held rows are excluded from the update until someone resolves them.
  • Preview before you apply. For admin edits, review the variant list before saving. For CSV imports, read Shopify’s review screen before clicking Import products.
  • Spot-check afterward. Open a few changed variants on the storefront and confirm the image switches when you select each option.

A reusable prompt

Use this with any assistant that can see your export and the supplier files:

Using the product export and supplier image list, build a mapping table with columns: Variant SKU, option values, proposed image filename, evidence source, status. Match only on SKUs in filenames or explicit supplier labels. Never infer color, material or variant from how an image looks. If evidence is missing or conflicting, set status to Hold and state the question to ask the supplier. Each variant gets at most one image. List unmatched images separately. Do not change anything in Shopify.

Where Dassi helps, and where you still decide

Dassi is an AI agent that runs as an extension in Chrome, Edge or Brave. It runs browser actions on your machine, using the Shopify admin and supplier portal you’re already logged into. You can describe this job in plain English, have it read your variants and the supplier’s labels, and draft the mapping table with evidence for each row. You can save it as a workflow to reuse for the next delivery, and set it to pause at actions you flag, such as saving a product.

The judgment stays with you. Review every proposed match, resolve held rows with the supplier, and approve updates yourself. Your chosen AI provider processes the task instructions and page content, so keep that in mind for anything confidential.

Next step: Try a five-variant image mapping in Dassi and review every proposed match before you save anything. Install Dassi from the Chrome Web Store.