Composing Pages from Sections
JSON templates replaced monolithic product.liquid files. Each template file maps section instance IDs to section types and settings. Merchants customize section order and settings in the theme editor without touching code.
JSON
{
"sections": {
"main": {
"type": "main-product",
"settings": {
"enable_sticky_info": true,
"gallery_layout": "thumbnail"
}
},
"related": {
"type": "related-products",
"settings": {
"heading": "You may also like",
"products_to_show": 4
}
},
"newsletter": {
"type": "newsletter",
"settings": {
"heading": "Get course updates"
}
}
},
"order": ["main", "related", "newsletter"]
}- sections object — keys are unique instance IDs (any string you choose)
- type — must match a filename in sections/ (without .liquid)
- settings — default values; merchants override in the editor
- order array — controls vertical section sequence on the page
- Alternate templates: product.alternate.json → suffix 'alternate' in Admin
To create a landing page template, add templates/page.landing.json and assign it to a page in Admin → Pages → Theme template. Each alternate template can have a completely different section stack.
Tip: Section files must include a presets array in schema to appear in the 'Add section' picker.