Shopify Section Schema Generator
Build a section's {% schema %} JSON visually: settings, an optional block type, presets and max blocks, no hand-written JSON.
Your details
Your section file
<section>
{{ section.settings.heading }}
{{ section.settings.subheading }}
{{ section.settings.collection }}
{{ section.settings.columns }}
{{ section.settings.mobile_layout }}
{{ section.settings.show_view_all }}
</section>
{% schema %}
{
"name": "Featured collection",
"settings": [
{
"type": "text",
"id": "heading",
"label": "Heading",
"default": "Featured products"
},
{
"type": "richtext",
"id": "subheading",
"label": "Subheading"
},
{
"type": "collection",
"id": "collection",
"label": "Collection"
},
{
"type": "range",
"id": "columns",
"label": "Columns to show",
"min": 1,
"max": 6,
"step": 1,
"default": 3
},
{
"type": "select",
"id": "mobile_layout",
"label": "Layout on mobile",
"options": [
{
"value": "scroll",
"label": "Scroll"
},
{
"value": "collapse",
"label": "Grid"
}
],
"default": "scroll"
},
{
"type": "checkbox",
"id": "show_view_all",
"label": "Show a view all button",
"default": true
}
],
"presets": [
{
"name": "Featured collection"
}
]
}
{% endschema %}
Save this as a new file under sections/, then add {% section 'your-file-name' %} to a template, or use Add section in the theme editor if you added a preset.
Writing the settings list
Each line describes one setting: type | id | label | default, with a couple of types taking extra fields after that:
| Type | Line format | Example |
|---|---|---|
| Most types (text, richtext, url, image_picker, checkbox, color, product, collection…) | type | id | label | default | text | heading | Heading | Featured products |
| range | range | id | label | default | min | max | step | range | columns | Columns to show | 3 | 1 | 6 | 1 |
| select or radio | type | id | label | default | value1:Label 1,value2:Label 2 | select | layout | Layout | grid | grid:Grid,list:List |
Add a block type the same way in the second list, if your section needs repeatable blocks (like individual slides or product cards).
Adding the section to your theme
- 01
Save the file
Copy the output into a new file under sections/ in your theme, named to match what the section does.
- 02
Add it to a template
Reference it with
{% section 'your-file-name' %}in a JSON template, or use "Add section" in the theme editor if you turned on presets. - 03
Check the settings render
Open the theme editor and confirm every setting you defined shows up and edits the right thing on the page.
Questions people ask
What's the difference between settings and blocks?
Settings apply once, to the whole section (a heading, a background color). Blocks are repeatable, for things like a row of testimonials or product cards where a merchant can add, remove and reorder items in the theme editor.
Do I need to add a preset?
Only if you want the section to show up under "Add section" in the theme editor for JSON templates. Sections referenced directly in a template's Liquid code don't need one.
Can a section have more than one block type?
Yes, though this generator builds one block type per run. Add a second block type by copying the block object in the output JSON and giving it a different type value.
Why does my section not appear in the theme editor?
Check that the file is saved under sections/ with a .liquid extension, that the {% schema %} tag is valid JSON, and that you've added it to a template or given it a preset.
Related tools
Last reviewed 30 September 2026.
Sources: Shopify.dev: Section schema · Shopify.dev: Sections
