Skip to content
Bearded Coder

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.

json
{
  "selections": {
    "state": {
      "label": "State",
      "required": true,
      "options": ["state-a", "state-b", "state-c"]
    },
    "profession": {
      "label": "Profession",
      "required": true,
      "options": ["profession-a", "profession-b"]
    }
  }
}
Illustrative, simplified structure. Not production data.

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

  1. 1Product page

    Product Configuration

    Storefront reads the configuration for the product

  2. 2State · Profession

    Customer Selections

    Customer chooses the options that apply

  3. 3Structured config

    JSON Structure

    Valid selections are defined in JSON, not as variants

  4. 4properties[…]

    Line Item Properties

    Chosen values are attached to the cart line

  5. 5Native checkout

    Shopify Cart / Order

    Selections carry through to the order

Selections are described in a JSON structure and attached to the cart line as line item properties, so they reach the order without needing extra variants.

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.