When data exists - but structure doesn’t
Data migration is often perceived as a straightforward process. But for growing eCommerce businesses, data can be incomplete or disconnected across multiple files.
In these cases, migration becomes more about reconstructing data.
This is exactly the challenge Davide Masserini, founder of DM di Masserini Davide in Italy, faced when he came back to Next-Cart. He was then a returning client who had previously trusted Next-Cart for multiple projects.
Davide brought a familiar requirement: importing product data into a new WooCommerce store from multiple CSV files.
However, the provided data contained critical gaps in product images, category structure, and migration limits. What followed was a collaborative migration process that transformed fragmented data into a complete WooCommerce catalog of over 2,000 products.
Understanding the migration context
Davide Masserini was not new to Next-Cart. He has relied on our service for various migration scenarios, including platform-to-platform transfers (e.g., J2Store to WooCommerce and Wix to WooCommerce) and structured data imports (e.g., spreadsheets into eBay).
This long-term relationship established a foundation of trust between both sides, allowing us to communicate clearly when new challenges arose.
In this case, Davide was working on a new WooCommerce store built on WordPress. The store was freshly installed, with no existing data. This is an ideal condition for a clean migration. Also, he provided access to the WordPress admin panel, cPanel, and the CSV files that had already been reviewed.
The objective was to import product data and categories into the WooCommerce store.
The dataset included 2,254 products distributed across multiple CSV files. The files contained essential product information, but the team soon discovered something was missing for a complete migration.
The first challenge: Missing product images
The team immediately realized the absence of product image URLs in the CSV files.
In a typical migration, image URLs are included directly in the dataset, allowing the migration tool to fetch and assign them automatically. Here, however, the images were not linked.
Instead, there was an indirect relationship between products and image files. In the CSV structure, each product was associated with a field named “CodeEdition.” But in a separate CSV file that contains file data, image filenames followed the pattern:
FileName = CodeEdition + ".jpg"
This insight provided a pathway to reconstruct image links by mapping product codes to their corresponding filenames.
However, the situation became more complicated when the team attempted to access these images using the reconstructed filenames.
The expected URLs did not return valid results. The reason was that many of the original product images were no longer accessible on the source system.
What remained on the live website were only cropped versions of the images. They were smaller, lower-resolution files for display purposes rather than storage. Also, these images were embedded on product pages, but could not be easily retrieved via direct URLs.
At this point, the migration faced a critical decision: proceed without images, or find an alternative way to extract them.
A creative solution: Extracting images from product pages
With no access to original image URLs, the Next-Cart technical team proposed a customization solution: extracting images directly from the HTML content of product pages.
This approach involved scanning the product pages on the source website, then identifying image elements in the HTML, and finally programmatically retrieving their URLs.
In this way, the storefront was effectively treated as a data source, bypassing the limitations of the CSV files. Also, this method allowed the team to recover visual data that would otherwise have been lost during migration.
At the same time, Davide was clearly informed of the limitations regarding the extracted images when doing this solution:
- Lower in quality, as they were cropped versions.
- Smaller in size compared to the original uploads.
- Only available for active products on the storefront.
The transparency ensured the client understood both the benefits and the compromises involved.
After reviewing the options, Davide approved the solution as he prioritized the catalog’s completeness over image quality. This decision enabled the migration to move forward immediately.
Structuring the unstructured: Categories and product data
Another challenge emerged: a missing category structure. The CSV files did not include a catalog hierarchy, which is essential for organizing products within WooCommerce.
To address this, the Next-Cart team identified the “Type” column within the CSV as a substitute. By mapping this field to WooCommerce categories, they created a functional category structure.
This approach required carefulness to ensure consistency and usability. While it did not completely replicate the original catalog, it provided a logical framework for further refining post-migration.
In addition, product descriptions were also fragmented across multiple columns, such as “Contents” and “Description.”
The team decided not to import these fields separately, but to merge them into a single description field for each product.
This approach would improve the readability of product pages and ensure that no valuable information is lost in the process. It was a small but impactful decision that led to a better overall result.
The unexpected limitation: Entity limits
After preparing the data and customizing the migration tool, the team initiated the first migration run.
However, when Davide reviewed the results, he noticed the far fewer number of products, only 500, while the dataset had over 2,200 products.
In reality, the project had actually been set up with an entity limit of 500, which capped the number of products that could be migrated in a single run. This limitation was common in initial setups, but it needed to be addressed before proceeding with the full migration.
The team promptly explained the situation to the client and recommended upgrading the entity limit to accommodate the full dataset of 2,254 products.
Davide responded quickly, increasing the limit to 5,000 entities.
A phased migration approach and the outcome
Step 1: Test migration
The initial 500 products served as a validation phase. It allowed both the technical team and the client to review the data before scaling up.
Davide confirmed that the data “seemed fine” for the best phase.
Step 2: Full migration execution
With approval and the updated entity limit in place, the team proceeded to migrate the remaining products. The customized tool handled image extraction, category mapping, and data merging.
Step 3: Final review and completion
Once the migration was complete, Davide reviewed the resulting WooCommerce store. All products were present, data was correctly structured, and the store was ready for use.
The final result was a fully populated WooCommerce store with 2,254 products migrated. Each product includes essential data, reconstructed categories, and images - albeit in lower resolution.
More importantly, the migration preserved the integrity of the data while adapting to its limitations.
Customer feedback: A reflection of trust
Davide responded to the completed migration:
“I have used Next-Cart migration services on several occasions and I have to say their team is almost unbelievable. They always respond quickly and guide you through the often difficult task of the migration. I hope they will be able to keep their top level standard to this level for very long time. I am very satisfied with their service.”
This feedback highlights the project's technical success and the consistency in delivering a positive client experience.
In conclusion: Turning constraints into capabilities
This case study demonstrates the difficulties posed by fragmented and incomplete data in a migration. At the end, the initial dataset, with missing image URLs and an incomplete category structure, was ultimately rebuilt into a fully functional store with over 2,200 products.
There are several lessons we can learn from this project.
- First, data completeness should never be assumed; it should be validated early to uncover gaps.
- Second, deep analysis can reveal hidden relationships in the data, helping to develop workaround solutions.
- Third, flexibility is critical. When standard methods fail, customizing the migration tool is necessary to achieve the desired result.
- Fourth, clear communication throughout the process helps align expectations and enables informed decision-making.
- Ultimately, this case highlights that successful migration is not just about transferring data; it is about adapting to imperfections and applying the right technical and strategic solutions.