When MedSupply Partners decided to move from Magento 2.4.8 to BigCommerce B2B Edition, the migration wasn't just a data transfer. It was a business continuity exercise with real consequences — hospital procurement teams depend on accurate pricing and product data.
The Numbers
- 9,585 products loaded (from ~24,500 in Magento — deduplicated and cleaned)
- 107 categories created across 3 levels
- 4 customer groups with institution-specific pricing
- ~20,427 price list records upserted
- 3,836 parent images + 8,501 variant images migrated
- 3,840 products with hazard surcharge modifiers
Lesson 1: Clean Before You Migrate
Magento had 24,500 products. After deduplication, inactive product removal, and SKU normalization, we loaded 9,585. Migrating dirty data means debugging dirty data on a new platform — with less tooling.
Lesson 2: Pricing Is the Hard Part
BigCommerce B2B uses Price Lists mapped to Customer Groups. Each institution (VCU, Prendio, Dana-Farber, Penn State) has its own price list with contract pricing. Getting 20,427 price records right — with the correct currency, quantity breaks, and effective dates — required validation scripts that compared source and destination row by row.
Lesson 3: Images Are Slower Than You Think
Migrating 12,000+ images isn't a one-shot API call. BigCommerce rate-limits image uploads. We built a batched pipeline with retry logic and checkpointing — if it fails at image 8,000, it resumes from 8,001, not from scratch.
Lesson 4: Test with Real Buyers
Before go-live, we ran the full procurement flow with real cXML from Dana-Farber's Prodigo network. PunchOut → browse → add to cart → transfer back → order injection. That end-to-end test caught three issues that unit tests missed.
The migration took one quarter. The platform now runs on BigCommerce with a custom variant table (replacing the CWS vendor app), Cornerstone Light v2 theme, and Fowara's Tenant Portal handling punchout, QBO sync, and buyer management.