Case study · HomeCEU
WordPress to Shopify Migration & Custom Product Configuration
Migration of a 1,000+ product catalog from WordPress to Shopify, with a JSON-based configuration approach for state and profession selections that worked around the variant limit of the time.
- Engagement
- Platform migration
- From → To
- WordPress → Shopify
- Catalog
- 1,000+ products
- Focus
- Data migration & product configuration
Business problem
HomeCEU was moving a large e-commerce store from WordPress to Shopify. Along with moving the data, many products needed customer-specific selections, such as state and profession, that did not map cleanly onto Shopify's product variant model.
Migration scope
The migration covered more than 1,000 products and the commerce data connected to them:
- Products
- Customer accounts
- Historical orders
- Product categories
- Discounts
- Content pages
Shopify limitations
At the time of the migration, Shopify allowed at most 100 variants per product. Treating every state and profession combination as its own variant would have hit that limit and made the catalog hard to maintain.
Shopify has since raised its variant limits. This approach was designed for the constraints that applied when the migration happened.
JSON configuration approach
Instead of creating a large number of variants, the state and profession options were stored in JSON. The storefront reads that structure to show the customer the right choices. The selected values are then submitted with the product as Shopify line item properties.
Line item properties travel with the cart line into checkout and the order, so the customer's selections are available after purchase without adding variants to the catalog.
{
"selections": {
"state": {
"label": "State",
"required": true,
"options": ["state-a", "state-b", "state-c"]
},
"profession": {
"label": "Profession",
"required": true,
"options": ["profession-a", "profession-b"]
}
}
}Custom application implementation
A custom Shopify application was developed to support the specialized product configuration and other store-specific business requirements. Storefront functionality was customized around the migrated catalog and the product-selection workflows.
Technical architecture
The selection flow stays within native Shopify cart and checkout behaviour. Configuration drives the UI, and line item properties carry the result.
Architecture
From customer selection to order
- 1Product page
Product Configuration
Storefront reads the configuration for the product
- 2State · Profession
Customer Selections
Customer chooses the options that apply
- 3Structured config
JSON Structure
Valid selections are defined in JSON, not as variants
- 4properties[…]
Line Item Properties
Chosen values are attached to the cart line
- 5Native checkout
Shopify Cart / Order
Selections carry through to the order
Technologies
- Shopify
- WordPress
- Shopify Liquid
- JavaScript
- JSON
- Line Item Properties
- Custom Shopify App
- Data Migration
My contribution
The sections above describe the project as a whole. This list covers only the work I did myself.
- Handled the technical migration work: store configuration, data mapping and validation.
- Migrated more than 1,000 products and the commerce data connected to them.
- Designed a JSON-based product configuration approach to work within Shopify's 100-variant limit as it applied at the time.
- Structured the state and profession selections in JSON.
- Built customer selection workflows that pass the chosen values through Shopify line item properties.
- Developed a custom Shopify application for specialized product configuration and store-specific business requirements.
- Customized storefront functionality for the migrated catalog and product-selection workflows.
This case study is a high-level summary. It contains no confidential client data, credentials, internal metrics or private screenshots. HomeCEU and other names are trademarks of their respective owners.
Working on something similar? I'd be glad to hear about it.