Skip to content
Rose City Commerce

Custom PDP Media Gallery Across Fender and Sub-Brands

Designed and evolved reusable React media architecture across Fender, Jackson, and PreSonus storefronts, preserving the core experience through an SFCC-to-Shopify Plus migration.

Custom PDP Media Gallery Across Fender and Sub-Brands screenshot
Built as part of Fender's in-house ecommerce engineering team and presented here as a professional case study.
Separated media rendering from commerce-platform adapters, reducing lock-in and avoiding a gallery rewrite during the migration.

Context

Fender, Jackson, and PreSonus needed rich product media across multiple storefronts while the commerce platform moved from Salesforce Commerce Cloud to Shopify Plus.

I treated the gallery as reusable frontend architecture rather than a platform-specific component. The rendering model stayed in place while commerce-specific data ingestion changed around it.

Problem

The original media experiences were difficult to evolve. Several brands shared core requirements but had different catalogs and storefront implementations.

Binding the gallery to SFCC data would have increased lock-in and forced a rewrite during the migration. The design also needed to accommodate new media and merchandising requirements over time.

Solution

Platform-Independent Media Model

Kept media rendering separate from commerce-platform ingestion. Adapters normalized product and media data before it reached React, so the gallery never depended on SFCC or Shopify response shapes.

When Shopify Plus replaced SFCC, the adapter changed while the rendering layer and core interactions largely remained.

React Within Commerce Storefronts

Built the original gallery as a React application injected into SFCC PDPs, then integrated it with Shopify Liquid storefronts.

React owned the interactive media layer; each commerce platform continued to own page composition and product context.

Rich, Variant-Driven Product Media

Because the gallery consumed normalized data, one rendering system could support varied media without introducing platform-specific behavior.

  • Product and variant images
  • Video and YouTube embeds
  • Variant-specific media changes
  • Bundle-product media
  • 360-degree product experiences
  • Shared behavior across Fender, Jackson, and PreSonus

Performance-Aware Evolution

The same boundary later supported the server-rendered primary-image and hydration strategy described in the Large-Scale Ecommerce Performance Optimization case study.

We improved initial rendering and Core Web Vitals without replacing the interactive gallery.

Architecture Ownership and Collaboration

I owned the architectural direction and balanced the long-term migration path with the media needs of Fender, Jackson, and PreSonus.

The project established a shared pattern for React inside commerce templates and avoided separate implementations for each brand.

Results

Platform and Product Impact

  • Preserved the gallery's core rendering and interactions through the SFCC-to-Shopify Plus migration
  • Reduced platform lock-in by separating normalized media data from rendering
  • Shared one implementation pattern across Fender, Jackson, and PreSonus storefronts
  • Supported images, video, YouTube, variant-driven media, bundles, and 360-degree experiences
  • Created a foundation for the later PDP performance and hydration improvements

Technical Highlights

  • Reusable React media architecture
  • Shopify Liquid integration
  • SFCC-to-Shopify Plus migration
  • Platform-independent data normalization
  • Fender, Jackson, and PreSonus reuse
  • Variant-driven rich media
  • Reduced platform lock-in
  • Performance-compatible architecture

Stack

ReactTypeScriptShopify PlusLiquidSalesforce Commerce Cloud
Custom PDP Media Gallery Across Fender and Sub-Brands | Rose City Commerce