Jessar PDP · structure audit & validation

The product page, section by section

RevShift × Jessar · 2026-06-17 · Validating what's on the page so we can decide what to replace, upgrade or fix.

The PDP scaffolding is rich — 14 content sections, all metafield-gated and fail-closed. But a full catalogue census (1,705 products) shows a hard truth: almost every section that carries visual appeal is populated on exactly one product — the toaster demo. What renders for the other ~1,700 is a stack of text-led attribute blocks. That's why the page reads boring, text-heavy and long. The structure isn't the problem; the content feeding it is — and a few sections genuinely overlap. This page lays out each section, what drives it, how much of the catalogue it actually shows on, and where the redundancy lives.

14
content sections in the stack (excl. gallery, nav, related)
8
text-dominant blocks that render on a typical SKU
3
image-led editorial sections — populated on 1 product
2
overlapping clusters to consolidate (see below)

What actually renders today

For ~99% of products, the page collapses to a near-identical text sequence because the editorial sections have no content to show. Section composition as it renders on a typical SKU right now:

8 TEXT-DOMINANT 2 MIXED 1 VISUAL
Text-dominant — headings, grids, lists, spec tables Mixed — one image + copy/facts Visual — image-led editorial
The single biggest lever: the page has a visual spine already built (Story, Up-close bands, Made-for tiles) — it's just starved. Feed it imagery + a few metaobject entries and the page transforms without new code. The second lever: four of the text blocks say overlapping things.

The stack, in render order

Render reality = share of the 1,705-product catalogue the section actually appears on. catalogue-wide partial demo only (1) static / same on all
1
Product Story Story
Editorial image + heading + body — the emotional "why this exists." Native image-with-text, now tied to the sticky nav.
jessar.story_image · story_heading · story_body
VISUALDEMO ONLY
0.1%1 product
2
Benefits line
Quiet one-line list of curated selling phrases with coral middots. A teaser before the detail sections.
jessar.benefits_line (curated short phrases)
TEXTDEMO ONLY
0.4%6 products
3
The Build The build
Materials/construction grid — eyebrow + heading + a 4-cell hairline grid of material facts.
derived: materials · color_finish · capacity · weight · heat · lid (first 4)
TEXTPARTIAL
~31%mostly kitchen
4
Why it earns its place Features
Top-3 feature bullets as numbered serif cards + the rest as a 2-column list. The workhorse selling section.
jessar.feature_bullets
TEXTCATALOGUE-WIDE
99.9%1,704 products
5
Function grid Functions
Machine-written functional specs (appliance/photometric/fit/ratings recipes) as a hairline grid.
jessar.functions (extracted JSON — staged, not pushed)
TEXTNEAR-ZERO
0.2%4 products
6
Up close (Feature bands) Up close
The marquee visual section — alternating full-bleed image + copy bands with Label:Value callouts. Skips any band without an image.
jessar.feature_bands → feature_band metaobjects (need imagery)
VISUALDEMO ONLY
0.1%1 product
7
Made for Made for
Trio of warm use-case tiles (eyebrow + serif heading + copy, optional image). "Where it belongs."
jessar.use_cases → use_case metaobjects
VISUALDEMO ONLY
0.1%1 product
8
Retail ready Retail ready
Box image + 2×2 logistics grid (inner pack / master carton / UPC / languages). The B2B "easy to stock" pitch.
qty_per_package · qty_per_container · barcode · box/3D media for the image
MIXEDWIDE (facts)
~99%image often missing
9
Specs panel Specs
Dark B2B spec table — SKU, UPC, capacity, materials, dimensions, care, cartons, line + certs strip + PDF/sample actions. Rows skip when empty.
native variant fields + many jessar.* fields
TEXTCATALOGUE-WIDE
~100%dense table
10
The Line
Sub-brand story + button (native image-with-text). Connects the product to its house line.
static copy in template (currently hard-coded "JS Gourmet")
MIXEDSTATIC
100%same on all
11
Heritage line
One-line brand heritage statement ("Family-run since 1996…").
static copy in template
TEXTSTATIC
100%same on all
12
Dealer CTA For retailers
B2B callout + "Become a Dealer" + partner wordmarks (Costco, Canadian Tire, Winners…).
static copy + partner blocks
TEXTSTATIC
100%same on all
13
FAQ (collapsible)
Four common-questions accordion (how to order, B2B, case packs, certification).
static copy (native collapsible-tabs)
TEXTSTATIC
100%same on all
+
Romance + Description in buy area
Also worth noting: the buy column already carries the romance paragraph and a Description accordion — both text, both catalogue-wide. More prose before the page even starts scrolling.
jessar.romance (99.9%) · product.description (99.9%)
TEXTCATALOGUE-WIDE
99.9%
Disabled in the template (kept for reference, not rendering): RS · Story (old custom) — superseded by the native Product Story above · Multicolumn — superseded by Retail ready. Neither counts toward the page today.

Where sections overlap

Two clusters do most of the work — one is redundant, one is empty.
Cluster A · the attribute pile-up

Four text blocks all answering "what is it / what's it made of"

Read: Build + Function grid + Benefits line are previews/subsets of content the Features section and Specs table already carry — three extra stops that add length and sameness without new information. Strong consolidation candidate.
Recommend · Merge

Keep Features (the human pitch) + Specs (the full table). Fold Build into Specs, retire the Function grid (near-empty), drop or absorb Benefits line into the hero.

Keep · Differentiate

Keep all four but give each a distinct visual treatment + clear job, and only render Build/Functions where data is genuinely rich.

Defer

Leave as-is for now; revisit after the visual spine is fed and we can judge length in context.

Cluster B · the visual spine (built, but empty)

The sections that make it beautiful are populated on one product

Read: This is the answer to "not enough visual appeal." The components exist and are production-ready; they're waiting on imagery + a few metaobject entries per product. This ties directly to the AI imagery program — every hero shot we generate can light up a Story / band / tile. No theme work required to transform the page.
Recommend · Feed it

Pick a pilot set, generate hero imagery, populate Story + 1–2 bands + Made-for tiles. Measure the page's feel with real content before cutting anything.

Make Line dynamic

Bind The Line to the sub-brand (metaobject) so it's true per product, not hard-coded — quick win.

Auto-image Retail

Ensure box/3D renders are alt-tagged so Retail ready always shows its packaging image.

The order question

Even once fed, the current order front-loads text. A typical reading path today: gallery → romance → FeaturesBuildRetailSpecs → Line → Heritage → Dealer → FAQ. That's four straight attribute blocks before anything breathes. Worth deciding a target rhythm (e.g. story/visual → proof → specs → B2B) once we know which sections survive.