Shopify Section Schema Generator

Build a section's {% schema %} JSON visually: settings, an optional block type, presets and max blocks, no hand-written JSON.

Describe the result you need. AI will set up the tool and ask for any missing details.

Configure with AI

Enter to submit · Shift + Enter for a new line

Sent to AI. Leave out passwords and private customer data.

Your details

Your section file

custom-section.liquid
<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:

TypeLine formatExample
Most types (text, richtext, url, image_picker, checkbox, color, product, collection…)type | id | label | defaulttext | heading | Heading | Featured products
rangerange | id | label | default | min | max | steprange | columns | Columns to show | 3 | 1 | 6 | 1
select or radiotype | id | label | default | value1:Label 1,value2:Label 2select | 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

  1. 01

    Save the file

    Copy the output into a new file under sections/ in your theme, named to match what the section does.

  2. 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.

  3. 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.

Want this builtinto your store?

I'm Emmanuel, a Shopify and WooCommerce developer. If this tool pointed at something you'd rather have fixed for you (a faster store, cleaner product data, a migration, a custom feature), send me a note.

Emmanuel Asika

Emmanuel Asika

Shopify & WooCommerce developer, Dublin

I build and fix online stores: new builds, migrations, speed, SEO and the custom bits apps can't do.

hello@emmanuelasika.com

Last reviewed 30 September 2026.

Sources: Shopify.dev: Section schema · Shopify.dev: Sections