Storefront engineering inside production Plus themes
Shopify Plus personalization & recommendations
Implemented a recommendation and personalization application across live Shopify Plus themes — PDP and homepage carousels, search, collection filtering, bundles, quick view and cart upsells.
- Context
- Worked on Shopify storefronts and integrations for international DTC brands including GUESS Australia, rag & bone Australia and Betsy & Adam.
- Discipline
- Shopify Plus · Theme Engineering · Integrations
- Core tech
- Shopify Plus · Liquid · JavaScript · GraphQL

What I worked on
- Integrating the recommendation experience into existing themes and supplying the product data it needed.
The challenge
The recommendation application consumed storefront interaction data — product views, search queries, add-to-cart events, clicks and previous orders — but often needed product data it did not hold, inside themes that already had their own cart and state logic.
Implementation
- 01Surfaces implemented: PDP recommendation carousel, homepage carousel, search popup, search page, collection page, filtering experience, bundle widget, quick view and cart upsell.
- 02Missing product data pulled from Shopify APIs and existing Shopify sources — metafields, product tags, collections, related products — through GraphQL.
- 03Data fetching consolidated so required product data comes back in fewer GraphQL requests instead of repeated per-item calls.
- 04Liquid logic optimised and placeholders used where appropriate to improve perceived loading and reduce layout shift.
- 05For cart upsells, the theme's existing cart JavaScript and state management was read first, then upsell behaviour was integrated into that flow rather than running a competing cart.
- 06Cart recommendations refresh when cart contents change, with API calls kept to the minimum needed.
- 07Rebuy-related cart customisation implemented and made to coexist with the other apps already installed.
Engineering details
- Interaction signals: views, searches, add-to-cart, clicks, past orders
- Fewer, wider GraphQL queries over repeated calls
- Placeholders and Liquid tuning for CLS and perceived speed
- App coexistence inside busy production themes
Technology
- Shopify Plus
- Liquid
- JavaScript
- GraphQL
- Storefront API
- Admin API
- Metafields
- Core Web Vitals