Shopify · Engineering case study

Made-to-Measure Shopify Platform

A body-measurement pattern-fitting system built into a Shopify theme, plus a full email-automation program that replaced every default transactional email with ten custom, on-brand flows.

Role
Shopify theme dev + email automation
Client
AU made-to-measure fashion brand
Platform
Shopify · Liquid (live)
Tools
Liquid, JS, Klaviyo API, Shopify CLI
shop · get fitted · pattern editor
ShopGet fittedCollectionsAccount
One shirt.
One story.
fitted in 10 minutes
delivered in 2 weeks

An illustrated recreation of the storefront, not real screenshots. This is an NDA client engagement. No brand name, logo, or product photography is reproduced anywhere on this page.

01Problem

A generic theme can't fit a made-to-measure product.

The brand sells made-to-measure shirts and suits. A customer's fit data (band, cup, height, sleeve, collar, and more) lives in a separate pattern-matching service, not in Shopify. The stock theme had no concept of it: no way to show a customer their saved patterns, edit one, or stop an add-to-cart that had no valid fit data behind it.

The constraint

Every read and write had to go through an external REST API the theme didn't control, inside a pure Liquid + vanilla-JS theme with no build pipeline. No React, no bundler, no shortcuts.

02Goal

Turn a stock theme into a fitting workstation.

The editor had to live inline on the product page, not in a separate app tab, and had to survive real customer behaviour: renaming a pattern, cloning one instead of overwriting it, bailing out mid-edit, and switching between a saved pattern and a fresh fitting without ever showing a broken state.

03Editor

An inline pattern editor, wired to an external API.

The flow below is the spine of the feature: a customer gets fitted once, then can reopen, tweak, rename, or clone that pattern straight from the product page.

Get Fitted
Edit Pattern
Save As New
Select Other
Add to Cart
Save As New, not overwrite

Cloning a pattern auto-renames it (date-stamped, with an incrementing suffix) instead of silently overwriting the original submission.

Gender filter that never blocks

Patterns are filtered to the product's gender when a match exists, but fall back to showing everything rather than hiding the editor when the account has none. A stricter version shipped first and was rolled back after it hid the dropdown too aggressively.

04Debugging

The theme bugs were in the small print.

A login redirect bug traced back to three copies of the same broken helper function layered on top of each other in the theme layout, each fighting the others with !important overrides. A "preferred store" menu going blank turned out to be a metafield-only lookup with no fallback, fixed with a local-storage read the profile page was already writing to.

Trust the deployed bytes, not your browser

A font-size change looked stuck at 12px in the browser no matter what shipped. Rather than chase a phantom CSS bug, the fix was verified against a raw pull of the live theme and the CDN asset bytes directly. It was rendering correctly. The browser's local rendering was the outlier, not the deploy.

05Email automation

Ten Klaviyo flows replaced Shopify's defaults.

Order confirmation, shipping, delivery, in-store collection, store pickup ready, password reset, welcome, account activation, and two appointment flows, all rebuilt as dynamic templates mapped to real Shopify order and customer data: line items, addresses, payment method, and per-item variant options like collar and cuff style.

Order Confirmationlive
Shipping Notificationlive
Delivery Confirmationlive
Order Collectedlive
Store Collection Readylive
Welcome Emaillive
Account Activationlive
Password Resetlive
Appointment Confirmationlive
Appointment Reminderlive
06On the phone

Get fitted from a phone, not just a desk.

Most customers start the fitting flow on mobile. The configurator and collection grid both reflow to a single column, with the same add-to-cart gating logic underneath.

One shirt. One story.
view collection
07Outcome

Shipped, live, and still evolving.

The fitting editor and all ten email flows are live in production. Every theme push went out behind a full backup and a git tag, so every round of client feedback could ship the same day without risking the storefront. It's an ongoing engagement: new rounds of fixes and refinements still come in and go out the same way.

Next case study
Spotter ELD