Scaling Product Migration for Large Catalogs
Migrating thousands of SKUs requires different approaches than small catalog migrations. Manual processes break down. Validation becomes critical. Error handling determines success.
This guide covers techniques for high-volume product migrations to Shopify.
Choosing Your Import Method
Two primary methods exist for bulk product import.
CSV import
Shopify's native CSV import handles products, variants, and basic data. It works for:
- Standard product data (title, description, price, inventory)
- Variants with up to 3 options
- Images via URL reference
- Basic SEO fields
Limitations:
- No metafield support in standard import
- Limited error handling
- No progress visibility for large files
- File size limits for very large catalogs
API import
Shopify's Admin API provides full control over product creation. It supports:
- All product data including metafields
- Precise error handling per product
- Progress tracking and resumability
- Complex data transformations during import
Trade-offs:
- Requires development resources
- Subject to API rate limits
- More complex to implement
For catalogs over 1,000 products with complex data, API import is usually the right choice.
Data Preparation at Scale
Data quality issues multiply with catalog size. Invest in preparation.
Automated validation
Write scripts to validate data before import:
- Required fields present
- Prices are positive numbers
- Image URLs are accessible
- Variant counts within limits
- SKUs are unique
- No invalid characters in handles
Fix issues in source data rather than during import.
Data normalization
Normalize data programmatically:
- Standardize option values
- Clean HTML in descriptions
- Generate handles from titles
- Format prices consistently
Document transformations so they are reproducible.
Image handling
Large catalogs may have tens of thousands of images. Plan for:
- Image URL validation before import
- Image download and re-hosting if source will become unavailable
- Image optimization if source images are oversized
- Alt text migration
Staged Import Process
Import in stages to manage risk and catch issues early.
Sample import
Import 50-100 representative products first. Verify:
- Data appears correctly in admin
- Products display correctly on frontend
- Variants and options work as expected
- Images load properly
- SEO fields populated
Category-based batches
Import by product category or type. If one batch has issues, you can investigate and fix without affecting other categories.
Progress tracking
For API imports, track:
- Products attempted
- Products succeeded
- Products failed with error details
- Import duration and rate
Store this data to diagnose issues and enable restart from failure points.
API Rate Limit Management
Shopify's API has rate limits that affect large imports.
Understanding the limits
Standard API rate limits use a bucket system. You get a certain number of requests per second with burst capacity. Exceeding limits returns 429 errors.
Strategies
- Respect rate limit headers in API responses
- Implement exponential backoff on 429 errors
- Batch operations where possible (bulk mutations in GraphQL)
- Spread imports over time rather than rushing
A 10,000 product import at sustainable rates takes hours, not minutes. Plan accordingly.
Error Handling
Large imports will have errors. Plan for them.
Capture error details
Log full error responses including:
- Which product failed
- What the error message was
- What data was being imported
Generic "import failed" logs are useless for debugging.
Categorize errors
Common error categories:
- Validation errors: data does not meet Shopify requirements
- Rate limit errors: temporary, retry later
- Image errors: URL not accessible or image invalid
- Duplicate errors: handle or SKU already exists
Different categories require different remediation.
Retry logic
Implement intelligent retry:
- Retry rate limit errors after waiting
- Retry transient network errors
- Do not retry validation errors (fix data first)
- Track retry attempts to avoid infinite loops
Post-Import Validation
After import completes, validate the result.
Count verification
Compare expected product count to actual. If 10,000 products should have imported but only 9,500 exist, investigate the gap.
Spot check data
Randomly sample products and verify:
- All fields imported correctly
- Variants complete
- Prices accurate
- Inventory correct
- Images present
Collection assignment
Verify products appear in correct collections. Automated collection rules should populate based on tags and product types.
Search and filtering
Test that products are searchable and filterable. Large catalog imports can temporarily affect search index performance.
Working with LiftKit Digital
LiftKit Digital has migrated catalogs with tens of thousands of SKUs. We build automated migration pipelines with validation, error handling, and staged imports.
For large catalog migrations, see Shopify migration. To discuss your migration scope, get in touch.