Two tools let merchants extend Voyager beyond its built-in vocabulary: the Custom Liquid section (and the matching block insideDocumentation Index
Fetch the complete documentation index at: https://voyage-theme.fasil.in/llms.txt
Use this file to discover all available pages before exploring further.
main-product / featured-product), and the @app block type that hosts Shopify app blocks.
Together they cover three needs:
| Need | Tool |
|---|---|
| Drop arbitrary Liquid / HTML / CSS / JS on any page | Custom Liquid section |
| Drop arbitrary code into the PDP buy column | custom_liquid block inside main-product |
| Embed a Shopify app’s official app block | @app block type inside main-product / featured-product |
Custom Liquid (section) — sections/custom-liquid.liquid
Insertable Liquid section. The merchant types arbitrary code into the schema setting and the section renders it as-is. Useful for app snippets that don’t ship as app blocks, one-off embeds (calendar widgets, third-party players, custom JSON-LD), or quick per-page edits the merchant doesn’t want a dedicated section for.
Available on: All templates.
Section settings
Content
Arbitrary Liquid, HTML, CSS, or JS. Rendered inside a
<section class="custom-liquid"> wrapper with the merchant-set padding.Layout
Top padding in pixels. Range 0–200, step 4.
Bottom padding in pixels.
Section background color. Optional.
Blocks
None.When to use
Reach for Custom Liquid when:- An app doesn’t have an app block — many older Shopify apps still ship a Liquid snippet. Paste it here instead of editing theme files.
- You need a one-off embed — a Calendly widget, a YouTube playlist player, a third-party reviews badge.
- You want to drop custom JSON-LD on a page (alongside the page’s own structured data).
- A merchant is comfortable with code and wants to extend the storefront without theme edits.
@app instead (see below).
Custom Liquid (PDP block) — inside main-product
The main-product and featured-product sections each accept a custom_liquid block, identical in behavior to the section above but rendered inside the buy column. Lets merchants drop product-page-specific code (a reviews widget, a “made in” badge, a custom variant note) without needing a full section.
Block settings
Arbitrary Liquid / HTML / CSS / JS. Rendered as-is inside a
<div class="pdp__custom-liquid"> wrapper.When to use
Anything that needs to sit between the product’s price, variant picker, accordion, etc. Common patterns:- Trust badges — “Made in Italy” or “B Corp certified” with a custom SVG.
- Stock-level snippets — “Only 3 left in this size” from a third-party inventory app.
- One-off reviews badges — when the reviews app doesn’t ship a dedicated app block.
limit in the schema), so a merchant can drop multiple custom Liquid blocks at different positions in the buy column.
App blocks — @app block type
The @app block type is Shopify’s standard mechanism for letting installed apps inject UI into your sections. When a merchant installs an app that has an app block targeted at the product page, that block becomes available in the Add block menu of main-product (or featured-product) alongside Voyager’s built-in blocks.
Where @app is enabled
The @app block type is declared in the schemas of these sections:
| Section | File |
|---|---|
| Product | main-product.liquid |
| Featured product | featured-product.liquid |
{ "type": "@app" } in its block list.
How merchants add an app block
- Install an app that ships an app block for the product page (most reviews apps, subscription apps, currency converters, and “frequently bought together” apps do).
- In the Theme Editor, open the product template and click Add block inside the
Productsection. - Apps with available app blocks appear in the picker list. Click to add — the block appears in the buy column and the merchant can drag it into the desired position.
What renders
When an@app block is added, Voyager renders it inside a <div class="pdp__app-block"> wrapper:
Compatible apps
Any Shopify app that ships an app block targeted at the product page (product_blocks in the app’s shopify.app.toml) will appear. Common categories:
- Reviews — Yotpo, Judge.me, Loox, Stamped, Okendo, Shopify Product Reviews.
- Subscriptions — Recharge, Loop, Smartrr, Bold.
- Currency / language — Geolocation, Currency by Bold, Langify.
- Cross-sell / FBT — Frequently Bought Together apps, Wiser.
- Trust signals — Trust badges, security seals.
- Customizers — Product personalization, monogram tools.
custom_liquid block (see above).
Theme Store compliance note
Voyager’s PDP section declares@app to satisfy Shopify Theme Store §4 — the requirement that themes must support app blocks on the product page. Without @app, merchants installing an app that has a product-page block would have no way to add it without theme code edits.
Custom Liquid vs @app vs section — when to use which
A short decision tree for merchants and developers:
| Situation | Use |
|---|---|
| Shopify app, has an app block, wants to live on the PDP | @app block inside main-product |
| Shopify app, has an app block, wants to live on the home page or content page | Add a new section in the Theme Editor that supports @app — or use the App embeds feature for global injections |
| Shopify app, no app block, ships a Liquid snippet, wants to live on the PDP | custom_liquid block inside main-product |
| Shopify app, no app block, ships a Liquid snippet, wants to live anywhere | Custom Liquid section |
| Merchant-authored one-off code (embeds, custom JSON-LD, third-party widgets) | Custom Liquid section, or custom_liquid block on the PDP |
| Bespoke / advanced layouts that need a full section template | Build a new section file in sections/ (developer-only — outside the Theme Editor surface) |
Cross-reference
Product sections · main-product
The full list of
main-product blocks, including custom Liquid and @app.Customization · Apps and integrations
Guide to common app integrations and where each one tends to land.
Reference · Section schema tables
Every section’s schema in one compendium.