WorkCase study 03

Love Wedding Bands

Custom-priced fine jewellery, moved from Magento to Shopify

DevelopmentSEOLive site
Magento 2, Shopify, Laravel API

Quick facts

Industry
Fine jewellery e-commerce (USA): wedding bands, engagement rings, anniversary bands and fine jewellery
Our role
Ran and optimised the production Magento 2 store, then migrated it to Shopify with custom Shopify apps and a Laravel pricing and variation service
Stack
Magento 2, Shopify, Laravel API

Summary

An online store for made-to-order rings and jewellery, where every price is calculated live from metal, ring size, width, stone weight and labour cost. We first ran and tuned the store on Magento 2, then moved the whole business to Shopify, with the complex product logic living in a custom Laravel service.

The problem

Every ring is configurable: several metals (10K, 14K, 18K, platinum), dozens of sizes, widths and stone options, so a single ring has hundreds of possible variants that a fixed-price catalogue cannot handle. On Magento this made pages slow (rendering one ring's options could use up to about 1.2 GB of memory), and duplicate URLs, broken sitemaps and missing structured data were hurting search and Google Shopping. The platform had become hard to run, so the business decided to move to Shopify, but Shopify's standard variant model cannot express hundreds of formula-priced combinations per product.

The storefront is public. The custom Shopify apps and the Laravel admin are private, and we can't share access to the dashboards because of client confidentiality.

What we built

Key features

01

Formula-based pricing engine

Each product type (engagement, wedding, anniversary, his & hers, pendants, classic bands) has its own calculator. Metal weight comes from ring geometry and metal density, stones are priced by carat range from admin-managed tables, and labour, setting, shipping and a per-category margin are added on top.

02

Laravel variation and pricing service

Metals, sizes, widths, stones and cost tables live in a custom Laravel app instead of in Shopify variants. A fast Laravel API returns the valid options and the live price for any configuration.

03

Custom Shopify apps

Connect the Shopify storefront and its "design your own" ring, pendant and earring flows to the Laravel service, so shoppers build a piece, see the right price and check out on Shopify.

04

Magento → Shopify migration

Products, customers and order history moved across, with old Magento URLs mapped and redirected so search rankings carried over.

05

Production systems connected

Delivery tracking, fulfilment and inventory systems connected to the new store, so made-to-order pieces flow from order to workshop to shipment.

06

SEO and Google Shopping

Canonical URLs, clean XML and image sitemaps, JSON-LD structured data (product, organisation, breadcrumb, FAQ), and a Google Merchant feed that carries calculated prices, first on Magento and then rebuilt for Shopify.

How we solved it

Challenges

  1. 01
    Challenge

    Pricing hundreds of metal, size and stone combinations per ring on a platform built for fixed-price variants.

    Solution

    Laravel became the pricing authority. Shopify holds the product and the order; the custom apps ask the Laravel API for options and price as the shopper configures a piece, so every combination is priced from the current cost tables without creating hundreds of Shopify variants.

  2. 02
    Challenge

    Changing platform without losing organic traffic built up over years on Magento.

    Solution

    Every indexed Magento URL was mapped to its Shopify equivalent with permanent redirects. Canonical rules, sitemaps, structured data and the Merchant feed were rebuilt so search engines saw one clean URL per product from day one.

  3. 03
    Challenge

    Keeping the Magento store fast while it was still live: option rendering caused PHP timeouts under load.

    Solution

    Heavy swatch and 360° viewer HTML was pre-rendered into a file cache and served from disk, with a light placeholder on a cache miss. Queue-based crawler commands with CPU limits and Varnish ban-and-rewarm scripts kept the cache full without overloading the server.

Results

  • The store now runs on Shopify, with complex configurations and pricing served by the Laravel API.
  • Accurate live prices across hundreds of metal, size and stone combinations per product, recalculated from admin-managed cost tables.
  • Category pages on Magento served from cache instead of rendering options live on every request.
  • SEO carried across the migration: redirects, canonical URLs, clean sitemaps, structured data and a Google Shopping feed with calculated prices.
  • About 100 production releases on Magento through a pull-request-based staging workflow.

Stack

Shopify
Shopify storefront, custom Shopify apps, Shopify APIs
Backend
Laravel pricing and variation service with a REST API, MySQL
Magento (before)
Magento 2.4.7, PHP 8, MySQL, Elasticsearch, 15+ custom modules
Performance
Varnish full-page cache and warmer, Nginx, PHP-FPM, deferred JavaScript and bundling
Payments
Authorize.Net (incl. Apple Pay), Square, Affirm
SEO / marketing
Google Merchant feeds, JSON-LD schema, XML image sitemaps, 301 redirect mapping
Start a project

Want results like these?

Send a short brief. You'll hear back from a senior team member within one working day.

Services needed
Budget range

We only use your details to reply. See our privacy policy.

Brief received.

Thanks. Someone from the team will reply within one working day.