How VNDLY Matches Product Images to SKUs Automatically
VNDLY's cloud storage sync connects Dropbox, Google Drive, or OneDrive and matches image filenames to your SKUs. No manual uploads. Here's how it works under the hood.
You get a folder of product photos from your photographer. Three hundred files. Names like BC-BTL-32-BLK.jpg and BC-BTL-32-BLK_01.jpg and BC-BTL-32-BLK_front.jpg.
Now what?
If you're like most inventory managers, you open your system. You find the product. You click upload. You wait. You do it again. For three hundred products. It's the kind of work that eats an afternoon and makes you question your life choices.
VNDLY has a different answer. Connect your Dropbox, Google Drive, or OneDrive folder. Hit one button. The system matches every filename to a SKU and links the image to the right product. Done.
Here's exactly how it works — and why the filename-matching approach is smarter than it sounds.
The Real Cost of Manual Image Uploads
Product photography is expensive. A traditional studio shoot runs $75–$300 per SKU when you factor in setup, shooting, editing, and formatting. AI-generated product images have dropped that to $2–$15 per SKU, which is why 78% of ecommerce companies are investing in some form of inventory automation this year.
But here's the part nobody talks about: the upload gap.
You paid for the photos. They're sitting in a folder. Now someone has to bridge the gap between "files on a drive" and "images on products." That bridge is built one upload at a time. Five to ten minutes per SKU if you're doing it manually. For a 300-SKU catalog, that's 25 to 50 hours of someone's week.
⚡ The Upload Gap
Professional product photography: $75–$300/SKU. AI-generated images: $2–$15/SKU. Manual upload and matching to products: 25–50 hours for 300 SKUs. The photography gets the attention. The upload gets forgotten — until it's your afternoon.
Bulk upload tools exist, but most of them still make you map files to products. Drag and drop. Select from a dropdown. Confirm. Repeat. The problem isn't the upload speed. It's the matching.
How VNDLY's Cloud Storage Sync Works
VNDLY's approach is dead simple: your filenames are the map.
When you connect a cloud storage folder, VNDLY reads every image file inside it. It strips the file extension and tries to match the remaining name against every SKU in your inventory. If it finds a match, it downloads the image, stores it in VNDLY's product image library, and links it to the right product and variant.
The matching logic lives in a single function called getSkuCandidates. Here's what it actually does:
- Takes the raw filename —
BC-BTL-32-BLK_01.jpgbecomesBC-BTL-32-BLK_01 - Tries the full name first — maybe your SKU is literally
BC-BTL-32-BLK_01 - Strips common suffixes —
_01,_front,_back,_side,_lifestyle,_detail,_hero,_main,_thumband their hyphen equivalents (-01,-front, etc.) - Returns all candidates — the system tries each one against your SKU list until it finds a hit
This means you can name your files BC-BTL-32-BLK.jpg for the main image, BC-BTL-32-BLK_01.jpg for a second angle, and BC-BTL-32-BLK_lifestyle.jpg for a lifestyle shot. All three match to the same SKU. All three get linked to the same product. VNDLY assigns each image a display order automatically, so your main image comes first and the rest follow.
⚡ Supported Filename Patterns
VNDLY recognizes these suffixes automatically: _01 through _99, _front, _back, _side, _lifestyle, _detail, _hero, _main, _thumb — plus hyphen versions like -01, -front, etc. Name your files with your SKU plus any of these suffixes and VNDLY handles the rest.
The Three-Step Setup
From the user's side, it's almost embarrassingly easy. Go to Settings → Cloud Storage in VNDLY. Pick your provider — Dropbox, Google Drive, or OneDrive. Authenticate. Pick the folder where your images live. Hit sync.
That's it.
Behind the scenes, VNDLY:
- Lists every image file in the folder you selected (recursive listing for Dropbox, paginated for Google Drive and OneDrive)
- Checks against already-synced files so you never process the same image twice
- Matches filenames to SKUs using the candidate logic above
- Downloads matched files from your cloud provider
- Uploads to VNDLY Storage and generates a public URL
- Creates a
product_imagesrecord linked to the right product and variant - Updates the connection's stats — matched count, unmatched count, last synced timestamp
If a file doesn't match any SKU, it gets logged as "unmatched" with the filename preserved. You can see the unmatched count right on the connection card. Fix the filename, hit sync again, and it picks up.
The Catch
VNDLY only reads the folder you select — not subfolders. Keep your product images in a single flat folder for best results. Also, the sync is manual (you click the button), not automatic on a schedule. This is intentional: it gives you control over when new images go live.
What Happens to Unmatched Files
Not every filename will match. Maybe your photographer used a different naming convention. Maybe the SKU changed since the photos were taken. Maybe someone dropped a random screenshot in the folder.
VNDLY handles this gracefully. Unmatched files are tracked in the cloud_image_syncs table with status "unmatched". The sync result dialog shows you exactly which files didn't match, up to 50 filenames. Errors are capped at 10 messages so the response stays readable.
You have two options for fixes:
- Rename the file in your cloud storage to match the SKU exactly, then sync again
- Check your SKU list — maybe the product exists under a slightly different code
The system is forgiving. It doesn't delete anything. It doesn't overwrite existing syncs unless the file ID changes. You can run sync multiple times safely.
From the Founder
At my product company, we had a shared Dropbox folder called "Product Photos 2023" that somehow became "Product Photos 2023 FINAL" and then "Product Photos 2023 FINAL v2 ACTUALLY FINAL." Every season, someone would spend a day uploading images to TradeGecko one by one. When we built VNDLY, I wanted that job to disappear. The filename matching idea came from watching our warehouse manager write SKUs on sticky notes next to printed photos. If a human can match "BC-BTL-32-BLK.jpg" to a product in two seconds, software should do it in two milliseconds.
Which Providers Work
VNDLY supports three cloud storage providers today:
| Provider | Authentication | Folder Selection |
|---|---|---|
| Dropbox | OAuth 2.0 | Browse folders via API |
| Google Drive | OAuth 2.0 | Browse folders via API |
| OneDrive | OAuth 2.0 | Browse folders via API |
All three use standard OAuth flows. You authenticate once, VNDLY stores a refresh token, and the connection stays alive until you disconnect it. You can have multiple connections active — one Dropbox account and one Google Drive account, for example — though most users stick to one.
File Types and Size Limits
VNDLY accepts these image formats: JPG, JPEG, PNG, WebP, GIF, TIFF, and BMP. The system checks both file extension and MIME type, so a file named .jpg that isn't actually a JPEG will be rejected.
There's no hard file size limit enforced by the sync code itself, but Supabase Storage (where VNDLY hosts product images) has practical limits. For product photos, aim for under 5MB per file. Web-optimized images in the 200KB–1MB range work best — they load fast in the product grid and still look sharp on detail pages.
See how VNDLY handles this. Free 14-day trial, no credit card.
Try VNDLY free →How Images Appear in VNDLY
Once synced, images show up in two places:
On the product variant page, the primary image appears at the top. Additional images appear in a gallery below, ordered by when they were synced. The first matched image for a product becomes its primary_image_url automatically if none was set before.
In the product grid, the primary image thumbnail appears next to each variant. This makes scanning your catalog visual — you can spot products by look, not just by SKU.
On PDFs — sales orders, purchase orders, and invoices — the primary image renders next to line items if the template supports it. This is especially useful for B2B customer portals where buyers want to see what they're ordering.
A Practical Workflow
Here's how a real team uses this feature:
- Photographer drops files in a shared Dropbox folder at the end of each shoot
- Folder naming convention is simple:
Product Photos / 2026-06 / - Files are named by SKU with suffixes for angles:
SKU.jpg,SKU_01.jpg,SKU_lifestyle.jpg - Inventory manager opens VNDLY, goes to Cloud Storage settings, picks the new folder, hits sync
- Five minutes later, 200 products have images. The unmatched count shows 3 files — quick renames fix those
- Team reviews the product grid to confirm everything looks right
No one uploads anything manually. No one maps files to products. The SKU is the map.
Common Mistakes and How to Avoid Them
Mismatched SKUs. The most common issue is a filename that doesn't exactly match any SKU in VNDLY. Check for extra spaces, different capitalization (VNDLY matching is case-insensitive, but it's worth verifying), or outdated SKU codes. The unmatched file list tells you exactly what's wrong.
Wrong folder. VNDLY only reads the folder you select, not subfolders. If your images are nested inside Product Photos / June / Batch 1 /, you need to select the deepest folder that actually contains the image files.
Duplicate syncs. Running sync twice on the same folder won't create duplicate images. VNDLY tracks every file by its remote ID (Dropbox file ID, Google Drive file ID, or OneDrive item ID) and skips already-synced files. The "skipped" count in the sync result tells you how many files were already processed.
Non-image files. The sync ignores anything that isn't a recognized image format. PDFs, PSDs, ZIPs, and Word documents won't appear in the results at all — they don't count as matched or unmatched.
⚡ Pro Tip: The "Skipped" Count Is Your Friend
If you sync a folder and see "200 matched, 0 unmatched, 150 skipped," those 150 skipped files were already synced in a previous run. This means you can safely re-run sync on the same folder after adding new photos — only the new files get processed.
Why This Beats Manual Upload
Let's be honest about what manual upload actually looks like. You open the product page. You scroll to the image section. You click upload. You browse your file system. You find the right file. You wait for the upload. You confirm. You move to the next product.
For one product, it's maybe 30 seconds. For a hundred products, it's an hour. For a thousand, it's a week.
VNDLY's cloud storage sync turns that week into five minutes. The photographer drops files in a folder. You click one button. The system does the rest. The only human intervention is checking the unmatched count and fixing any filenames that don't line up.
This isn't about being lazy. It's about where you spend your attention. Every hour spent uploading images is an hour not spent on purchasing, forecasting, or talking to customers. The math is simple.
Start a 14-day free trial of VNDLY — no credit card required.
Related Reading
- How to Sync Product Images from Dropbox to VNDLY — a step-by-step setup guide
- How VNDLY Syncs with Shopify — product and inventory sync explained
- How to Manage Inventory Across Multiple Warehouses — multi-location stock control