I worked in a full-time position as a Front-end Shopify Developer for Bristol-based agency Thought & Mortar from June 2024 until its closure in March 2026.

My duties included:

  • Developing custom solutions to meet the needs of a wide variety of clients through bespoke theme features;
  • Pushing the boundaries of Shopify with custom Liquid and JavaScript to overcome unique challenges;
  • Translating project briefs into comprehensive technical scope documents;
  • Bringing Figma designs to life with responsive CSS;

PerfectFit

PerfectFit were on Adobe Commerce and overly reliant on customers using their 'Harness Calculator' to find the right size harness for their dog. The customer would input their dog's breed/measurements and the calculator would link them to the appropriate harness, but there wasn't any recognition of the dog's breed or specific measurements after that, so it was easy to get confused as to which harness was recommended.

Dog breeds products

As part of their move from Adobe Commerce to Shopify, I theorised and implemented 'dog breed' products. We added them as products to their Shopify store, but they are never intended to actually be purchased. Instead, they are just a vector for purchasing the appropriate harnesses for that size of dog breed without disrupting the product structure PerfectFit were used to.

'Fit' metaobjects within a metafield store which size dog should have which sized harness, and when the 'Harness selector' inputs are changed by the customer, the Section Rendering API updates the UI around the appropriate harness.

An important SEO benefit was that it gave PerfectFit the perfect pages to rank for searches like 'harness for border collie' or 'husky harness'.

Challenges that I overcame implementing this system included:

Harness finder

We also kept the Harness Finder available as an additional avenue for customers to find the correct harness.

I coded the new version from scratch to work with the new dog breed pages, and added new Google Analytics 4 events that fire when a customer succeeds or fails to get a result.

These events carry all the form data as parameters, allowing PerfectFit to see which breeds/sizes are most commonly searched for. This will help inform them which new dog breeds they should add to the store and which new fits they should add for existing breeds.