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:
1) Source = Editor text (recommended for shared content and per-product metafields)
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
customnamespace). - 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:
- Go to Settings → Custom data → Products in Shopify Admin.
- Add a definition (typically of type Rich text) under the
customnamespace. - Fill the metafield value on each product that needs editorial content.
- Bind it on the Content field via the Dynamic Source picker (step b above).
Note: custom merchant-defined namespaces other than
customare 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
h1–h6, 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)