Everything you need to know about matching and bulk-uploading product images to Shopify from Google Drive or Dropbox. Can’t find your answer? Email us or use the live chat inside the app.
Getting started
What is Smart Bulk Image Upload?
It’s a Shopify app that bulk uploads product images from a Google Drive or Dropbox folder and attaches each image to the right product and variant automatically.
Instead of dragging images into products one by one, you name your files after an identifier your catalog already has; a SKU, a barcode, a product title, a metafield value, or a variant ID and pick the folder, and the app does the rest. It also sets alt text on every image for SEO.
How does the app know which image belongs to which product?
It reads the file name never the picture itself. For every variant in your store the app builds an identifier (SKU, barcode, product title, metafield value or variant ID, whichever you choose), compares it with the file name, and pairs them up. Matching is not case-insensitive.
So AB-1234.jpg lands on the variant whose SKU is AB-1234. Which is exactly why the results are predictable and repeatable.
How do I get started?
- Install the app from the Shopify App Store.
- Choose Google Drive (default option) or Dropbox (you can select from settings – image source) , then connect your account on the Create upload page.
- Pick the folder that holds your images, choose a matching type, and press Start matching.
- Review the preview: nothing has been written to your store yet, then press Start upload.
The whole first run takes a few minutes on a small test folder, and we recommend starting with one.
Is there a demo I can watch first?
Yes, there’s a full walkthrough on YouTube
Do I have to move my images anywhere?
No. Your images stay where they are, in your own Google Drive or Dropbox. The app reads the folder you select, downloads each matched image, and uploads it to Shopify. Nothing in your Drive or Dropbox is renamed, moved, or deleted.
Does it work with Google Drive and Dropbox, or just one?
Both. You pick one source per store in Settings and can switch later. Two differences worth knowing:
- Google Drive: only files Drive reports as images are listed, so stray documents or ZIPs in the folder are ignored. The preview also shows thumbnails and megapixel values.
- Dropbox: every file in the folder is listed, so keep the folder clean. Dropbox provides no thumbnails or megapixel data, so those columns don’t appear.
By default only the folder you select is read. Sub-folder scanning can be switched on for your store on request via support channels.
Naming your files
How should I name my image files?
Use the identifier, optionally followed by an underscore and a number for ordering:
<identifier>[_<order number>].<extension>
| File name | Matches on | Position |
|---|---|---|
AB-1234.jpg |
ab-1234 |
1st |
AB-1234_1.jpg |
ab-1234 |
2nd |
AB-1234_2.png |
ab-1234 |
3rd |
7891234567890.jpg |
7891234567890 |
1st |
If the part after the last underscore is a number it’s treated as the image’s position; if it isn’t a number it stays part of the identifier. Upper and lower cases don’t matter.
What are the most common naming mistakes?
- Trailing spaces :
AB-1234 .jpgwon’t match, because the space becomes part of the identifier. - No file extension: a file with no extension can never match.
- Non-numeric suffixes:
AB-1234_a.jpglooks for the identifierab-1234_a, notab-1234. - Mixed conventions in one folder: some files using
_1and others using-1.
All of these show up in the preview’s “Non matched” list before anything is uploaded, so mistakes cost you a rename, not a cleanup.
Can I upload several images for the same product?
Yes, add a numeric suffix and the app keeps them in that order:
AB-1234_1.jpg → 1st, AB-1234_2.jpg → 2nd, AB-1234_3.jpg → 3rd.
Only the relative order matters, so _1, _3, _7 gives the same result as _1, _2, _3. A file with no suffix counts as the first position, so don’t use both AB-1234.jpg and AB-1234_0.jpg for the same product.
My file names don’t match my SKUs at all. What now?
You have three good options:
- Match on something else: barcode, metafield or variant ID may line up better than SKU.
- Use a metafield: put your image code (often a legacy ERP or supplier code) in a product or variant metafield and match on that. You control the value, so it’s the most flexible route.
- Use a “contains” option: if your file names carry the SKU plus extra text, like
nikon-d750-AB1234-front.jpg, choose “Match if image contains SKU”.
We can also apply clean-up rules to your store’s identifiers before matching, for example ignoring everything after the first dash in a SKU. Just ask via support channels.
Matching options
Which identifiers can I match on?
- SKU: the default and the safest choice.
- Barcode (EAN/UPC/GTIN): very reliable, since barcodes are usually unique and stable.
- Product title: for catalogs without SKUs or barcodes. Please be sure the product titles are not duplicated on the store
- Metafield: any product or variant metafield you nominate.
- Variant ID: the numeric ID from Shopify. Completely unambiguous, ideal for re-runs and corrections.
What’s the difference between “exact”, “image contains” and “contains image name”?
Each identifier can be matched in three ways:
| Option | Matches when | Use it when |
|---|---|---|
| Exact | File name equals the identifier | Files are named exactly after the SKU/barcode |
| Image contains identifier | The identifier appears inside the file name | File names carry extra text: photo-AB1234-front.jpg |
| Identifier contains image name | The file name appears inside the identifier | One photo covers several variants: AB1234.jpg → AB1234-S, AB1234-M, AB1234-L |
With “image contains identifier” the longest match wins, so a short SKU can’t steal an image from a longer one. With “identifier contains image name” all matches win, that’s the point of the option, but check the preview count before uploading.
Can one image go to several variants or products?
Yes. The “identifier contains image name” options are built for exactly that, a single base-code photo attaching to every size or color that extends the code.
If several variants legitimately share the same identifier (the same SKU or the same product title), the app keeps only the first one by default, to avoid surprise duplicates. We can enable multi-variant and multi-product matching for your store on request.
Some products got images and others didn’t. Why?
The usual causes, in order of likelihood:
- Duplicate identifiers, two variants sharing a SKU or title. By default only the first keeps the image.
- Empty identifier, variants with no SKU (or no barcode/metafield value) are skipped entirely.
- A naming slip, a trailing space, a missing extension, a typo.
- Stale data, you edited products in Shopify after matching. Press Clear cache on the preview page and match again.
Every unmatched image is listed in the preview with the identifier the app looked for, and you can export the whole list as CSV to compare it against a product export.
Does the app touch draft or archived products?
By default all product statuses are included, active, draft and archived. If you’d rather leave archived products alone, we can exclude them for your store, and we can also restrict matching to a specific collection or vendor.
Uploading
Can I see what will happen before anything is uploaded?
Yes, and this is the part merchants like most. Matching is completely read-only: the app shows you a preview of every pairing, thumbnail, file name, position, the variant it will attach to, the identifier it matched on and the exact alt text, plus a full list of everything that matched nothing.
Nothing is written to your store until you press “Start upload” button. You can run matching as often as you like while you dial in your naming convention.
Can I fix the matches by hand before uploading?
- Unmatch, remove any pairing you don’t want with one click.
- Match manually, pick a product for an unmatched image yourself. If that product has a single variant, the image is attached to it too.
- Edit the variant, open the product straight from the preview; the app re-matches automatically afterwards.
- Export, download the complete non-matched list as CSV.
How are images attached to products and variants?
- Every matched image is uploaded to the product’s media gallery.
- The first image of each variant (the lowest order number) is additionally set as that variant’s image.
- Further images stay in the product gallery.
Products with only a default variant get the image at product level. If you’d rather keep one shared gallery and never set variant images, there’s a setting for that.
Does the app set alt text?
Yes, on every uploaded image. By default the alt text is the variant title, the product title plus the variant’s option values, for example Basic Tee / Blue / M, or just the product title for single-variant products. You see the exact value in the preview before you upload.
Other formats (option value only, metafield plus title, a custom suffix, character replacements) can be configured for your store.
Will it replace my existing images or add to them?
Your choice, per upload:
- Don’t replace (recommended, and the right setting for tests), new images are added after the ones the product already has. Nothing existing is touched.
- Replace existing images, before the first new image of a product is uploaded, all of that product’s existing images are removed. Products that matched no image in the run are left completely alone.
In replace mode you can also enable “Don’t delete replaced images from Files”, which detaches the old images from the product but keeps the files in Content → Files. It’s the safer setting for a first test.
What happens if I run the same folder twice?
Without replace mode, running the same folder again adds duplicate images, the app has no way to know you didn’t mean it. Use replace mode, or unmatch what you don’t need, when re-running a folder.
An automatic retry is different: if a job ends with errors the app retries only the images that failed, and never uploads an image that already succeeded.
Can I watch the progress of an upload?
Yes. The job page shows a live progress percentage, uploaded/total counters and a per-image log: one line per image with the identifier, the alt text and a direct link to the variant, plus a clear reason for anything that failed. The same log is emailed to your shop email address when the job finishes.
You can close the browser, jobs run in the background and progress survives a restart.
Limits & performance
Which image formats are supported?
JPG, JPEG, PNG, WEBP and GIF. For best results we suggest JPG or WEBP, longest edge 2048–4096 px, sRGB, under 5 MB, Shopify re-encodes and serves responsive sizes anyway, so huge originals only slow the job down.
Is there a maximum image size?
Shopify caps images at 20 MB and 20 megapixels. If a file is over either limit the app automatically resizes and re-encodes it, and only reports an error if it still can’t fit. Over-limit files are flagged in the preview, with the full list of names, before you upload.
Shopify also allows at most 250 images per product.
How many images can the app handle at once?
Tens of thousands. Large catalogs are the case the app was built for: it loads your full catalog in one bulk operation, pipelines downloads against uploads, and resumes where it left off if a worker restarts.
Be realistic about the clock, though: Shopify limits how fast files can change in a store, shop-wide. The app backs off and retries automatically when it hits that limit, so a very large batch runs steadily over hours rather than minutes. Nothing is lost and you don’t need to babysit it.
How long do matching results stay valid?
Two hours. If you’ve left the preview page open longer than that, press Match again before uploading. Use Match again after renaming files in Drive/Dropbox, and Clear cache after editing SKUs, barcodes, titles or metafields in Shopify.
Pricing & billing
How much does it cost?
| Plan | Price | Uploads |
|---|---|---|
| Free | $0 | 25 images in total |
| Premium, Shopify Basic | $69 / month | Unlimited |
| Advanced, Shopify Advanced | $99 / month | Unlimited |
| Enterprise, Shopify Plus | $149 / month | Unlimited |
Billing runs through Shopify, so the app appears on your regular Shopify invoice, no separate card details.
What exactly does the free plan include?
Every feature, with a lifetime cap of 25 uploaded images in total (not per job). Matching is unlimited and free, so you can test your naming convention against your whole catalog and see the full preview before spending anything. When the cap is reached a job stops with a “Free upload limit reached” message.
How do I cancel?
Downgrade inside the app, or simply uninstall it, the subscription is cancelled automatically either way. Images you’ve already uploaded stay in your store, attached to your products exactly as they were.
Security & support
What access does the app need?
- Shopify, read and write products, and write files. That’s the minimum needed to read your catalog and attach images.
- Google Drive / Dropbox, read access, so it can list your folder and download the images. The app never writes to, renames, or deletes anything in your cloud storage.
You can disconnect the cloud account at any time, and uninstalling removes the app’s access to your store.
Is my data safe?
All data moves over TLS 1.2+ connections and is encrypted at rest. Your Google Drive or Dropbox tokens are kept only for as long as the connection exists: disconnect the account or uninstall the app and they are revoked and deleted immediately, along with your shop data. Images are downloaded only to be passed straight to Shopify, we don’t build a copy of your media library.
Access is limited to the folder you authorise, your data is never shared with third parties, and the app follows Shopify’s and Google’s data handling requirements (including Google’s CASA review for Drive access per year).
Something matched the wrong product. Can you tell me why?
Yes, we can record a full trace of a matching run for your store and tell you exactly which identifiers were indexed, which ones collided, and what each image matched. Contact support with your store domain, the folder name, the matching type, roughly when you ran it, and two or three example file names with the SKU or barcode they should have hit.
Can you customize the matching for my catalog?
Often, yes. Options we can switch on per store include scanning sub-folders, multi-variant and multi-product matching, attaching one image to several variants, matching each image only once, replacing only the matched variant’s images, excluding archived products, filtering by collection or vendor, identifier clean-up rules, alternative alt-text formats and Unicode normalization for accented titles.
If your catalog has a quirk that isn’t on that list, tell us about it, most of these started as a merchant request.
How do I get help?
Use the live chat inside the app, or email [email protected]. Our team is in Europe, so replies may land outside your working hours, we answer every message.