All docs

Guides

PDP Editorial Rich Text (Optional) — Configuration Guide

An optional storytelling block for the product detail page, displayed below the media gallery. Safe when empty.

PDP Editorial Rich Text (Optional) — Configuration Guide

This theme includes an optional Editorial Rich Text block that can be added to the PDP “Main product” section. It’s intended for storytelling / SEO-style content and is designed to be safe when empty.

Where it renders

  • Location: below the media gallery within the PDP main-product section.
  • It renders only when it has non-empty content.

How content is sourced

In the Theme Editor (Product template → “Main product” section), add the block:

  • Block type: Editorial rich text

Then choose a Source:

The Content field is a rich text setting that supports two modes:

a) Static rich text — same for every product

  • Type or paste content directly into the Content field in the Theme Editor.
  • Stored on the template/section settings, so it is the same for every product using the same product template.
  • Use this when you want one shared editorial block across many products.

b) Dynamic Source — per-product metafield

  • Click the database icon (Connect dynamic source) next to the Content field.
  • Pick a product metafield (typically a Rich text metafield in the custom namespace).
  • The block now renders that metafield's value, per product.
  • If the metafield is missing or blank for a product, the block will not render for that product.

To set up a per-product metafield:

  1. Go to Settings → Custom data → Products in Shopify Admin.
  2. Add a definition (typically of type Rich text) under the custom namespace.
  3. Fill the metafield value on each product that needs editorial content.
  4. Bind it on the Content field via the Dynamic Source picker (step b above).

Note: custom merchant-defined namespaces other than custom are no longer creatable from Shopify Admin. The Dynamic Source picker is the only supported integration path.

2) Source = Page

  • Uses the selected Page’s page.content.
  • Important: like static editor text, this will be the same for every product using the same product template, because the selected page is chosen at the template level.

Use this when you want to manage editorial content in one Page and reuse it across multiple products.

Width setting

The block includes a width mode:

  • Constrained: keeps content to a readable measure.
  • Full: allows the content area to span the available column width.

“No headings” rule

This block enforces a “no headings” output rule.

  • If content includes h1h6, the theme converts them to paragraphs.
  • This is done as a best-effort transform in Liquid, with a scoped JS fallback.

Practical notes:

  • You can still use paragraphs, links, lists, and basic inline formatting.
  • If you paste content from a CMS/page that includes headings, they will be flattened.

Troubleshooting

“The editorial text is the same on every product”

That’s expected when:

  • Source = Editor text, or
  • Source = Page

Both are configured at the template level.

To make it product-specific, switch Source to Product metafield and populate the metafield per product.

“Nothing shows up”

Common causes:

  • Source = Product metafield but the namespace/key is wrong.
  • The metafield exists but is empty for the current product.
  • Source = Page but no page is selected.

“My headings disappeared”

Expected: headings are intentionally converted to paragraphs for this block.

Implementation reference (for developers)

  • Liquid + schema: sections/main-product.liquid (block type: editorial_richtext)
  • Heading flattening (scoped): assets/editorial-richtext.js
  • Section lifecycle init/destroy: assets/main-product.js
  • Styles: assets/theme.css (scoped to the PDP)