Can we create static sections with Online Store 2.0?

Topic summary

Main issue: how to have a single “static” section in Shopify Online Store 2.0 that shares the same data across multiple JSON templates (e.g., product and collection).

Key clarifications:

  • In OS 2.0, sections added to JSON templates are separate instances; their settings don’t automatically share across templates.
  • Sections need presets to be addable in the theme editor. Without presets, they can be included manually in the JSON template and can’t be removed via the editor, but they still won’t share per-template instance data.
  • Shared/global data must come from global settings (settings_data.json) defined and referenced inside the Liquid section code, not via JSON properties in the template.
  • Removing the “settings” object from the JSON template doesn’t force global settings; the editor re-inserts it.

Workarounds/alternatives:

  • Move configurable fields to theme global settings and read them in the section’s Liquid.
  • Use standard Liquid (non-JSON) templates for pages that require a truly shared static section.
  • You can omit presets to simulate a static include, but it won’t behave like legacy homepage static sections.

Status: Limitation confirmed; no native shared section instance across multiple JSON templates. Clarification provided; discussion effectively resolved.

Summarized with AI on March 1. AI used: gpt-5.

I’m wondering if theres a way to create static sections with Online Store 2.0.

Previously this was created by adding a section with {% section ‘X’ %} to a template. But now that sections are defined in a .json template, it doesn’t appear that theres any way to add a static section to a json template which pulls data saved in settings_data.json.

For example, I have a section that was visible on the collection page and product page. Previously I could add the section to each template and it would share the same data. But now if I add the section to collection.json and product.json templates, the data is separated and my client would have to duplicate the section data across the 2 templates.

“static” sections have no presets, there’s also whether the setting should be move to global settings.

Section files must define presets in their schema to support being added to JSON templates using the theme editor. Section files without presets should be included in the JSON file manually, and can’t be removed using the theme editor.

Alternatively use standard liquid templates and not JSON templates for those pages that need this shared setting functionality.

Hi Paul,

I have tried adding a section with no present schema to a JSON template but it doesn’t seem to pull/save data from the global settings_data.json file.

For example, the section data in settings_data.json for promo-text data looks like this:

"promo-text": 
  { 
    "type": "example-1", 
    "blocks": { 
      "684a0848-9d15-4382-9bdb-75b8de3069a2": { 
        "type": "promo", 
        "settings": { 
          "content": "Example",
        }
      }
   }, 
  "block_order": [ "example-1", ], 
  "settings": { } 
}

And in the collection.json is:

{
  "sections": {
    "collection": {
      "settings": {
      }
    },
    "promo-text": {
      "type": "promo-text",
      "settings": {
      }
    }
  },
  "order": [
    "collection",
    "promo-text"
  ]
}

If I remove the ‘settings’ attribute from the promo-text object, the theme edit just addeds it again. Is there another attribute or something that I’m missing which tells the section to pull data from the global settings?

The section code is:

{% schema %}
  {
    "name": "Promo Text",
    "max_blocks": 10,
    "settings": [
    ],
	"blocks": [ 
	    {
	      "type": "promo",
		  "name": "Text Bubble",
		  "settings": [
			  {
				  "type": "textarea",
				  "id": "content",
				  "label": "Content",
			  }
		  ]
	  } 
    ]
  }
{% endschema %}

if pulling info from global settings they must be IN the LIQUID section itself not a json property referenced in a JSON template

Thanks for clarifying Paul. Its a shame we can’t include static sections in .json templates.

1 Like

Is a shame and it’s a confusing terminology problem, so you can add a shared “static” section between templates by removing the presets but it will not behave like a “static” section on the homepage /wrist.