Last month a wholesale seller sent me a Slack message: "I have 340 UPCs in a spreadsheet. How do I turn this into live Amazon listings by Friday?"
It was Tuesday.
He did it. Not because he's technical — he's not — but because the actual process of going from barcode CSV to live Amazon catalog is surprisingly mechanical once you know the steps. The problem is that nobody writes those steps down. Every guide out there is either a pitch for some tool or a vague "upload your flat file" handwave that skips the 14 things that go wrong in between.
This is the tutorial I wish existed when I built my first catalog. It assumes you have a list of barcodes (UPCs, EANs, or GTIN-13s) and want to build an Amazon product catalog fast — as in days, not months. We'll use SkuMonster for the data enrichment, but the flat file prep, the QA process, and the gotchas apply no matter what tool you use.
What You Actually Need Before You Start
You don't need much. Seriously. Here's the full toolkit:
- A barcode list. A CSV or spreadsheet with one column of UPC/EAN numbers. This comes from your supplier invoices, purchase orders, or the physical products themselves.
- A SkuMonster account. Free to start — you get 10 lookups without a credit card. After that, $2 per SKU.
- Amazon Seller Central access. Specifically, you need access to "Add Products via Upload" under the Inventory tab.
- Google Sheets or Excel. For reviewing enriched data and building your flat file.
That's it. No Photoshop. No photographer. No listing software subscription.
Step 1: Clean Your Barcode CSV (Don't Skip This)
This is where most people waste time later by not spending 20 minutes now.
Open your barcode list and look for these problems:
Leading zeros getting stripped. Excel loves to treat barcodes as numbers, which drops leading zeros. A UPC like 012345678901 becomes 12345678901 — and the API lookup will fail. Format the column as Text before you paste anything, or add an apostrophe prefix.
Mixed formats. UPCs are 12 digits. EANs are 13. GTIN-14s are 14. If you have a mix, that's fine — most APIs handle all three. But if you see 10-digit or 15-digit numbers in there, something's wrong. Those are probably model numbers or internal SKUs, not barcodes.
Duplicates. Run a dedup. If you have the same barcode three times because you're selling three sizes of the same product, that's actually three different barcodes — but if it's truly the same barcode repeated, you're paying for wasted lookups.
Blank rows and junk data. Scroll to the bottom. Spreadsheets accumulate garbage. Delete empty rows, header rows that got copied in, and any row that isn't a clean barcode number.
Save as a CSV with a single column. Name it something you'll recognize — catalog_barcodes_april2026.csv. You want one barcode per line, no header row (or a simple barcode header if your tool expects one).
A clean 200-barcode CSV should take about 15-20 minutes to prepare if you're starting from a messy supplier spreadsheet.
Step 2: Run the Enrichment
Now you turn barcodes into product data. Upload your CSV to SkuMonster's bulk tool, or if you're comfortable with a script, use the API directly.
The web route: Go to sku.monster, upload your CSV, and click enrich. For 200 SKUs, this takes a few minutes. You'll get back a downloadable CSV with product names, brands, categories, descriptions, and image URLs for each barcode.
The script route (Python):
import requests
import csv
import time
API_KEY = "your_api_key"
results = []
with open("catalog_barcodes_april2026.csv") as f:
barcodes = [row[0].strip() for row in csv.reader(f) if row[0].strip()]
for barcode in barcodes:
r = requests.get(
"https://api.sku.monster/v1/lookup",
params={"barcode": barcode},
headers={"Authorization": f"Bearer {API_KEY}"}
)
if r.status_code == 200:
results.append({"barcode": barcode, **r.json()})
else:
results.append({"barcode": barcode, "status": "not_found"})
time.sleep(0.1) # be polite to the API
print(f"Found: {sum(1 for r in results if 'product' in r)}/{len(barcodes)}")
What you'll see in the results: For each barcode that matches, you get structured product data — name, brand, category, description — plus URLs for up to 5 studio-quality product images on white backgrounds. These are sourced from manufacturer and distributor databases, not scraped from retail sites.
For a typical wholesale catalog of branded consumer goods, expect somewhere between 82% and 92% of barcodes to return results. We'll deal with the gaps in Step 5.
Step 3: Review Your Enriched Data (This Is Where the Real Work Is)
Automated enrichment is not the same as verified enrichment. You need to review what came back, and this step takes longer than most people expect. Budget 3-4 hours for a 200-SKU catalog.
Open the enriched CSV in Google Sheets and add an =IMAGE(url) formula next to each main image URL. This gives you a visual thumbnail inline so you can scan quickly.
Here's what you're looking for:
Wrong product matched to barcode. This happens more than you'd think — maybe 3-5% of the time. A barcode that was reassigned by GS1, a product variant where the UPC maps to the old version, or a regional barcode that maps to a different product in a different market. If the product name doesn't match what you're physically holding, flag it.
Image quality issues. Most images will be clean white-background studio shots. But occasionally you'll get an image that's slightly off — a shadow on the background, a product shot at an odd angle, or an image that's technically fine but shows the product in packaging you don't sell. Review the main image for each product. The supplementary images matter less for initial listing.
Incorrect brand or category. Product databases aren't perfect. A product listed under the wrong brand or categorized incorrectly will cause problems in your flat file. Fix these in your spreadsheet now.
Create three columns for your review:
status: APPROVED, FLAGGED, REJECTEDnotes: Why you flagged or rejected itmanual_action: What you need to do about it (reshoot, find alternate image, skip for now)
Move fast but don't skip this. Uploading a flat file with wrong products matched to barcodes is worse than uploading a smaller catalog that's accurate. Amazon will suppress listings with mismatched images, and your account health takes a hit.
Step 4: Map Enriched Data to Amazon Flat File Columns
This is the step that trips up first-timers the most, because Amazon's flat file templates are genuinely confusing. Each category has its own template with different required fields, and the column names are not intuitive.
Go to Seller Central > Inventory > Add Products via Upload > Download Template. Pick the template for your product category. If you're selling across multiple categories, you'll need multiple flat files — you can't mix categories in a single upload.
Here's the column mapping that matters:
| Your Enriched Data | Amazon Flat File Column | Notes |
|---|---|---|
| product_name | item_name | Amazon has a 200-char limit. Trim if needed. |
| brand | brand_name | Must match Amazon's brand registry if brand-gated. |
| description | product_description | HTML allowed. Keep under 2,000 chars. |
| image_url_1 | main_image_url | Must be pure white background, 1000px+ on longest side. |
| image_url_2 | other_image_url1 | Lifestyle or alternate angle images go here. |
| image_url_3 | other_image_url2 | Up to 8 additional image slots. |
| barcode | external_product_id | Your UPC/EAN goes here. |
| — | external_product_id_type | Set to "UPC" or "EAN" for every row. |
Fields you need to fill in manually that enrichment won't give you:
your_price— your selling pricequantity— how much inventory you havecondition_type— "New" for most sellersfulfillment_channel— "AMAZON_NA" for FBA, blank for FBMbullet_point1throughbullet_point5— product feature bullets
The bullet points are where you add value. The enriched descriptions give you raw material, but Amazon's search algorithm weights bullet points heavily. Write these yourself, or at least customize the generated descriptions.
A gotcha that wastes hours: Amazon's flat file validator is picky about encoding. Save your flat file as tab-delimited text (not CSV) with UTF-8 encoding. If you see weird characters showing up in Seller Central after upload, it's almost always an encoding issue.
Step 5: Handle the 10-15% That Won't Have Images
Every catalog has gaps. Here's how to handle them without letting them block your launch.
Products not in the database (no match for barcode):
- Very new products (launched in the last 60-90 days) often haven't been indexed yet.
- Private label products won't have manufacturer images — by definition, you ARE the manufacturer.
- Niche or regional brands with limited retail distribution.
Your options, ranked by speed:
Launch without them. Upload the 85-90% that are ready. Your catalog is live and generating sales while you sort out the rest. This is almost always the right move.
Smartphone photography for the gaps. For 15-30 missing products, a lightbox ($30 on Amazon), a white poster board, and an iPhone will get you compliant images in an afternoon. They won't be as polished as studio shots, but they'll pass Amazon's requirements. Plenty of successful sellers use nothing but phone photos.
Request enrichment from SkuMonster. Submit the missing barcodes — they'll source images within 48 hours for products that exist in manufacturer databases but haven't been indexed yet.
Hire a photographer for the stragglers. If you have 30+ missing products and they're worth the investment, a product photographer will charge $15-25 per product for basic white-background shots. That's $450-$750 — a fraction of photographing the full catalog.
The key mindset shift: missing products are a batch to process later, not a reason to delay launching everything else.
The Gotchas Nobody Warns You About
After helping sellers build catalogs this way, these are the problems that actually come up:
Barcode reassignment. GS1 occasionally reassigns barcodes — a UPC that mapped to Product A three years ago now maps to Product B. This is rare (maybe 1-2% of lookups) but when it happens, you end up with completely wrong images. This is why Step 3 exists. Never skip the review.
Multi-pack vs. single-unit confusion. The barcode on a 4-pack of batteries is different from the barcode on a single battery. But sometimes the enrichment returns the single-unit image when you looked up the multi-pack barcode, or vice versa. Check the product name carefully — it should specify the pack size.
Brand gating on Amazon. Even with perfect images and data, some brands require approval to sell on Amazon. If you upload a flat file with brand-gated products, those listings will be suppressed until you get ungated. Check brand gate status before you invest time in listing those products.
Image URL expiration. SkuMonster's image URLs are stable and long-lived, but if you're using other sources for gap-filling, some image hosting services expire URLs after 30-90 days. Amazon caches images after initial upload, so this usually isn't a problem — but if you re-upload a flat file months later with expired URLs, those images will disappear.
Category mismatches in flat files. If you upload a product in the "Electronics" flat file template but Amazon thinks it belongs in "Home & Kitchen," your listing will get flagged. When in doubt, search for similar products on Amazon first and note which category they're in.
The "detail page already exists" problem. For branded products, Amazon often already has a product detail page created by the brand owner or another seller. Your flat file upload might get merged with existing detail pages, which means your images and descriptions get overridden by whatever Amazon already has. In this case, you're essentially just attaching your offer to an existing listing — which is actually easier, but means your enriched images don't get used for the main listing page.
Build Amazon Product Catalog Fast: The Realistic Timeline
For a 200-SKU catalog, assuming a single person working through this process:
- Morning (2-3 hours): Clean barcode CSV, run enrichment, download results.
- Afternoon (3-4 hours): Review enriched data, flag issues, approve good matches.
- Evening (2-3 hours): Map to flat file, fill in pricing/inventory/bullets, upload to Seller Central.
- Next morning (1-2 hours): Check for upload errors, fix suppressed listings, handle edge cases.
Total: about 10-12 working hours across two days. Not quite the "24 hours" that marketing copy likes to promise — but compared to 6-8 weeks of traditional photography, scheduling, and back-and-forth, it's a different universe.
The bottleneck is never the enrichment. It's the review and the flat file prep. If you want to build an Amazon product catalog fast, invest your time in getting those two steps right. Uploading a clean, accurate flat file on the first try saves more time than any tool can.
What About Multi-Channel?
If you're also listing on Shopify or WooCommerce, the enriched data works the same way — you just map it to different column formats. Shopify's product import CSV uses Handle, Title, Body (HTML), Image Src. WooCommerce uses WXR format or a CSV plugin. The enrichment is done once; the formatting is just column mapping.
But do Amazon first. Amazon has the strictest image requirements and the most punishing upload validation. If your data passes Amazon's flat file checker, it'll work everywhere else without issues.
Start With 10 Products
If this is your first time, don't try to do 500 SKUs on day one. Pick 10 barcodes from your supplier list, run them through SkuMonster (the first 10 lookups are free), and walk through the full process end to end. You'll learn more from building one flat file with 10 products than from reading another 5 blog posts about it.
Once you've done it once, scaling to 200 or 2,000 is just repetition.