Skip to main content
A Liquid theme is a package of text files, rendered on the server with Liquid. If you know Shopify themes, the layout is familiar.

Folders

Every theme needs layout/theme.liquid, templates/index.json and config/settings_schema.json.

Sections and schema

A section declares its settings and blocks in a {% schema %} block. The visual editor builds its settings form from it.
sections/hero.liquid
Rich text and HTML setting values are sanitised on the server when they are saved.

Objects

Filters

Escape every product and customer text with | escape. Titles and descriptions are written by people.

Tags

App blocks: add_to_cart, buy_now, cart_count, cart_drawer, checkout_button, powered_by, variant_picker.

Platform pages

Checkout, cart, sign-in, account and order tracking always run on PapelShip. You can design the page around them with a template that contains exactly one locked block:
templates/checkout.liquid
The block must sit directly in the template, not in a snippet. Theme JavaScript never loads on these pages, and card fields are always the platform’s.

Publishing

Saves are drafts: the live store keeps the published version until you publish.
  1. Edit a copy in the code editor or the visual editor. Saving (Ctrl+S) validates the file and keeps a version; the other editor shows the change right away.
  2. Preview the copy in the editor.
  3. Press Publish in either editor. It lists the unpublished files and validates every file of the theme first.
AI agents can save drafts but can’t publish. See AI agents (MCP).