Curious what actually happens when you migrate a complex .NET ecommerce platform to BigCommerce? We’re sharing the raw, technical journey of how we navigated the architectural decisions, data mapping headaches, and unexpected roadblocks as we migrated Sunnyland Farms from .NET to BigCommerce. These are the details that don’t make it into the sales pitch—shared from the developer’s perspective.
Whether you’re working on a BigCommerce migration or just curious about the realities of enterprise platform migration, we’re sharing the blueprint you won’t find in any official documentation.
When approaching a complex ecommerce site migration, I consider three main pillars: the data layer, the front end, and the middleware.
The Data Layer of Migration
Coming from a .NET app, the data is most likely stored in a SQL database. Setting the best approach to migrate the data can be challenging, but a critical piece to success. Here’s how we made the process as painless as possible.
Product Migration
For the Sunnyland Farms site, product migration required careful work to structure the products with the functionality our client desired. Their old product structure where a Product table stored the ‘parent’ product, and a ProductVariations table that stored variations of those products.
We needed to avoid having too many parent/child relationships in a BigCommerce product. There was already one parent/child relationship between these two tables, and another layer of relationships between those product variations. To solve this problem, we normalized the data and broke out some of the child products in the variants table to their own product.
We used metafields to maintain relational logic across product pages. If you want to learn more about metafields, and how they can be used to solve problems like this, check out our blog article on that topic.
Once we understood the desired product structure, there were a few options to migrate the data.
- Use the built-in import tool in BigCommerce. This is the best way to handle product migration in my opinion if you don’t have a crazy number of products to migrate.
To use this tool, download the example product import from the BigCommerce admin page and format your data correctly in the file. Once formatted, simply upload the file to move the products.
- Use the REST APIs. We used their APIs when we needed to quickly update data on products without having to go through the file build and upload process. A big pro of handling migrations or updates through the API is you have complete control over the process. You can do things like add custom error logging, and create migration tables to track data being migrated. The drawback of going the API route is it requires more technical knowledge to get these set up.
Customer Migration
In this .NET to BigCommerce migration, we were migrating 1.3 million customers. Initially we planned to migrate these through the built-in BigCommerce file upload. This was a big mistake.
Uploading customers through the file upload is great for a smaller number of customers, but with this volume, the amount of files we needed to create would have taken 120 hours for this import assuming someone was there to push files in as others were done processing.
We had to pivot to find a more efficient migration process. We wrote some scripts to import customers through the API. I highly recommend migrating customers through the API unless you are working with a smaller number of customers.
Order Migration
The final important data type to take into account are orders. Of the three data types, this is the most complex to migrate. There is not a built-in way to migrate orders through a file upload like with products and customers. You need to use the BigCommerce orders API. The normalization process depends on how your existing order structure is set up. For Sunnyland Farms, we were working with four different tables: headers (the base order record), details (item level data on an order), shipments (shipping level data like destinations and shipping methods), and packaging (gift message / label type data). Whatever structure you’re working with, you’ll need to mold it to create your historical orders through the API.
API Migration Tips
Now that we’ve discussed the various data types and migration approach we used, I’ll share some tips that were super helpful as we migrated this data. All of our migration scripts were written in Python, however about any language you are comfortable with could work. Personally I would lean heavily into Python because automations and scripts like this are the language’s bread and butter.
Tip #1: Build Reusable API Functions
Create functions for each operation (GET, POST, PUT, DELETE) on customer and order endpoints. Without these, your codebase will get messy fast. Yes, it takes extra work upfront, but it pays off by keeping your logic clean and scalable. These functions will need to handle various scenarios, but that complexity is worth it for long-term clarity and control.
Tip #2: Log everything with precision
Set up a log table specifically for customer and order imports. Since BigCommerce generates new order IDs, we logged both the original legacy ID and the new one. We also added timestamps and error fields for failed records. This setup made it easy to validate data integrity and debug issues quickly. For metafields, we added sync status columns to ensure clean, consistent imports.
Tip #3 Batch wisely, parallelize simply.
Batching API calls speeds up the process, but make sure you stay within BigCommerce limits. To avoid the complexity of threading or multiprocessing, we used Python’s argparse to pass a –group argument when running the script. This let each job handle a specific subset of records (e.g., –group 1), dividing the workload cleanly. Each script also checked the log table to skip already-imported data, making it safe to run multiple jobs in parallel—no overlap, no lost progress, and no overengineering.
The Front End of BigCommerce
Stencil Framework
Working with BigCommerce’s Stencil framework has transformed our development experience in unexpected ways. What impresses me most is how it eliminates unnecessary complexity, allowing our talented front-end team at LimeLight to focus purely on crafting an exceptional user experience rather than wrestling with technical constraints.
The framework’s integration with BigCommerce’s admin panel works seamlessly—custom product fields are effortlessly accessible within templates, creating a truly unified development environment. But the real game-changer? Metafields. This somewhat hidden feature extends customization capabilities across all data types—products, customers, orders, and more. We leveraged this functionality to recreate Sunnyland’s distinctive shopping experience from their legacy site, solving complex requirements that would otherwise require custom coding.
For teams considering migration, I cannot overstate how Stencil’s architectural decisions fundamentally streamline the development process while expanding creative possibilities.
Built-In SEO Capabilities
Another great feature in BigCommerce is how the platform’s built-in SEO capabilities eliminate what’s typically a complex, high-risk component of any site migration.
BigCommerce incorporates SEO best practices directly into its architecture, with features like built-in microdata (rich snippets) that automatically enhance search listings with product ratings, pricing, and stock levels. As we made content changes, the platform automatically created 301 redirects and URL rewrites—a critical advantage when migrating thousands of pages from a legacy system.
The platform’s SEO infrastructure eliminated significant development overhead with automatically optimized URLs for product and category pages, while ensuring each page maintains a unique URL to prevent duplicate content issues. This built-in functionality saves countless hours of technical SEO work that is necessary with other solutions.
Security is another bonus in BigCommerce. The platform includes built-in HTTPS across all pricing plans, which not only instills customer confidence but directly supports search rankings since Google prioritizes secure sites. Our development team is particularly impressed with how cleanly these SEO essentials were implemented, allowing us to focus on customizing the user experience rather than building fundamental SEO architecture from scratch.
For our more complex SEO requirements, we appreciate having direct access to modify the robots.txt file, giving us granular control over which pages search engines can crawl and index—something many platforms restrict. This proved invaluable during our phased migration approach, allowing us to temporarily shield certain sections from indexing until they were fully optimized.
By leveraging these built-in capabilities, we significantly reduced the technical SEO component of our migration timeline while creating a stronger foundation for future optimization efforts—proving that sometimes the best solution is the one you don’t have to build yourself.
Our migration from a custom .NET platform to BigCommerce ultimately delivered what every technical team dreams of—a solution that enhances capabilities while reducing complexity. The combination of Stencil’s intuitive templating system and BigCommerce’s comprehensive SEO foundation creates an environment where our developers can focus on innovation rather than infrastructure. What began as a necessity-driven migration evolved into a strategic advantage, giving our team the freedom to craft tailored experiences while leaning on robust platform essentials that would otherwise take months to build from scratch.
For businesses facing similar migration decisions, the question isn’t whether you’ll sacrifice functionality for simplicity—it’s whether you’re prepared for how much more your team can accomplish when they’re liberated from maintaining the basics and empowered to create exceptional customer experiences instead.
The Middleware of BigCommerce
When our client faced the classic migration dilemma—abandon years of shipping analytics or delay their BigCommerce launch—we discovered a critical third requirement: their specialized label printing system with custom formatting couldn’t integrate with standard BigCommerce outputs.
Our custom middleware solution became the bridge between worlds, not only synchronizing shipping data with their legacy database but also transforming BigCommerce’s shipping information into precisely formatted labels their warehouse operations depended on. This case study reveals how we leveraged BigCommerce’s Custom Apps framework to create an invisible translation layer that preserved both historical shipping analytics and specialized label printing workflows, allowing the business to modernize their storefront without disrupting the fulfillment operations that customers never see but absolutely depend on.
BigCommerce’s flexible app development framework makes custom integration accessible regardless of your team’s technical preferences. Whether you’re building with Node.js and React for dynamic single-page applications, leveraging Python and Flask for data-intensive middleware, creating PHP solutions with Silex for traditional server-rendered applications, using Ruby and Sinatra for elegant API endpoints, or combining Laravel’s robust backend with React’s interactive frontend, BigCommerce provides consistent API access patterns and authentication mechanisms across all platforms. This technology-agnostic approach allows development teams to maintain their existing tech stack while extending BigCommerce’s native capabilities—particularly valuable when creating specialized middleware for shipping label generation, database synchronization, or other complex business requirements that bridge modern ecommerce with legacy systems. For our app we used Next.js since this is the framework that our team is most comfortable with.
Custom BigCommerce apps unlock transformative integration possibilities that extend far beyond the platform’s native capabilities. In our case, we engineered a sophisticated middleware solution that seamlessly connects BigCommerce’s modern commerce engine with Sunnyland’s business-critical legacy systems. By implementing webhook listeners for order creation events, we established a real-time data pipeline that automatically extracts essential shipping information and synchronizes it with their existing database—preserving both analytics functionality and specialized label printing operations without disruption.
The true innovation came through leveraging BigCommerce’s App Extensions framework, which allowed us to elegantly augment the admin interface with custom functionality precisely where staff needed it. This enabled the seamless application of Sunnyland’s specialized shipping codes and meticulously formatted gift messages directly within order workflows. The resulting system creates a transparent experience for staff while maintaining the complex data relationships their fulfillment operations depend on—proving that with thoughtful middleware design, businesses can embrace modern commerce platforms without sacrificing the specialized systems that differentiate their operations.
Strategic Vision + Practical Implementation
Our journey migrating Sunnyland Farms from a custom .NET platform to BigCommerce proved again that successful enterprise migrations require far more than just technical know-how—they demand strategic vision balanced with practical implementation. By methodically addressing the three critical pillars—data migration, front-end development, and custom middleware—we transformed potential roadblocks into opportunities for innovation. The specialized middleware we developed didn’t just preserve legacy functionality; it enhanced operational efficiency while Stencil’s intuitive framework freed our developers to focus on customer experience rather than infrastructure maintenance. What began as a necessary platform transition ultimately delivered something far more valuable: a scalable foundation that not only maintains business continuity but positions our client for future growth with significantly reduced technical debt and enhanced capabilities. The true measure of success wasn’t just completing the migration—it was creating a solution where both the business and its customers experienced only the benefits of change, never the disruption.