Name your files correctly, drag them in, and watch them land on the right books. No clicking through 500 individual edit pages required.
What It Does
The bulk image import at /books/import-images lets you upload hundreds of photographs at once and have them automatically matched to the correct books in your library. Instead of opening each book's edit page and uploading photos one by one — a workflow that becomes genuinely soul-crushing around book number forty — you name your files according to a simple convention, drop them on the page, and Shelvd sorts out the rest.
This is a Dealer tier feature. If you own enough books to need bulk image import, you probably own enough to justify the subscription.
The Naming Convention
This is the only thing you need to get right. The convention is:
{catalog_id}_{sequence}.{ext}
Where:
- catalog_id — must exactly match the
Catalog IDfield on the book in Shelvd - sequence — a number indicating photo order (01, 02, 03…)
- ext — any image format: JPEG, PNG, WebP, HEIC, TIFF, AVIF
Examples
| Filename | Catalog ID | Sequence |
|---|---|---|
0001_01.jpg |
0001 | 1 |
0001_02.jpg |
0001 | 2 |
0001_03.jpg |
0001 | 3 |
5585a_1.jpg |
5585a | 1 |
ECO-001_02.png |
ECO-001 | 2 |
0042.jpg |
0042 | 1 (no underscore = sequence 1) |
If a file has no underscore, the entire filename (minus extension) is treated as the catalog ID with sequence 1. This works for single-image books.
The Catalog ID Must Match Exactly
The file 0001_01.jpg will match the book with catalog ID 0001. Not 1. Not 001. Not Book 0001. The match is exact, case-sensitive, and unforgiving. If your books use catalog IDs like A-123 or VDB.0042, your filenames need to use those same strings.
This is intentional. Fuzzy matching across hundreds of files would produce wrong matches, and wrong matches produce wrong books with wrong photos — which is worse than no photos at all.
How to Use It
Step 1: Select Files
Navigate to /books/import-images (also accessible from the Books page via the dropdown menu). You'll see a drop zone. Either:
- Drag and drop files from your file manager, or
- Click to open a file picker
You can select as many files as you need. There's no hard limit on the number, though each individual file must be under 4 MB. Images are converted to WebP during upload, so the stored size will be smaller.
Step 2: Preview
After selecting files, Shelvd enters the preview phase:
- Parses every filename to extract catalog IDs
- Looks up those IDs against your library in batches
- Shows you a table: which files matched, which didn't, and which are duplicates
You'll see three columns of truth:
- Matched — file's catalog ID found a book. Green. Good.
- Not found — no book has that catalog ID. Yellow. Check your naming.
- Duplicate — a file with this name already exists on this book. Gray. Skipped.
Review the preview carefully. Files that don't match won't upload. Files that match the wrong book (because of a naming error) will upload to the wrong book. The preview is your safety net — use it.
Step 3: Upload
Hit the upload button. Shelvd processes files three at a time (concurrent uploads) for speed without overwhelming the server. You'll see:
- A progress bar tracking total completion
- The currently uploading filename
- A running count of successes and errors
You can cancel mid-upload if something looks wrong. Already-uploaded files stay uploaded; remaining files are skipped.
Step 4: Done
When the upload completes, you'll see a summary: total uploaded, total errors, total skipped. Each uploaded image is stored as WebP with a generated thumbnail, linked to its book, and given a generic "image" label. You can refine labels later on each book's edit page if needed.
Storage Limits
Your tier determines your total image storage:
| Tier | Storage |
|---|---|
| Collector (free) | Not available |
| Collector Pro | 5 GB |
| Dealer | 25 GB |
If you're approaching your storage limit, Shelvd shows a warning during the preview phase. Uploads that would exceed the limit are blocked.
Practical Tips
Naming files in bulk: Most operating systems let you batch-rename files. On macOS, select all photos for book 0001, right-click → Rename, format as 0001_XX. On Windows, rename the first and the rest get sequential suffixes.
Camera workflow: If you photograph books in order, your camera assigns sequential filenames (IMG_0001, IMG_0002…). Rename in batches after each book: all photos for catalog ID 42 become 0042_01.jpg, 0042_02.jpg, etc.
Set catalog IDs first: Before bulk importing images, make sure your books have catalog IDs assigned. If you imported from a spreadsheet, the catalog ID might already be there. If not, consider adding them in bulk — it's a small investment that makes image management vastly easier.
Check your preview: We said it already. We're saying it again. A careful preview saves you from uploading 200 photos to the wrong books and spending the next hour cleaning up.
What Happens to Each Photo
Every uploaded image goes through this pipeline:
- Format conversion — converted to WebP for smaller file sizes
- Thumbnail generation — a smaller version for grid views and quick loading
- Metadata extraction — dimensions and file size are recorded
- Database record — linked to the matched book with sort order from the sequence number
- Cover sync — if the book has no cover image yet, the first photo becomes the cover
All of this happens server-side. You upload a 3 MB JPEG; Shelvd stores a 400 KB WebP and a 50 KB thumbnail. Your storage quota thanks you.
Availability
Bulk Image Import is Dealer only. If you're on Collector Pro and need this feature, it's one of several good reasons to consider upgrading. If you're on the free tier, you can still upload images one at a time on each book's edit page — it just requires more patience than most humans possess beyond about thirty books.
See also: Photographing Your Books · Tiers & Plans · Cataloging to Sell