Skip to content

settings_data.json

config/settings_data.json stores the values behind the theme's settings schema, along with data for statically rendered sections. The theme editor reads and writes this file as sellers customize the theme; it ships with the theme to provide the starting configuration.

json
{
  "current": {
    "logo": "logo.png",
    "favicon": "favicon.png",
    "logo_width": 90,
    "cart_type": "drawer",
    "sections": {
      "announcement-bar": {
        "type": "announcement-bar",
        "settings": {}
      },
      "header": {
        "type": "header",
        "settings": {
          "logo_position": "left",
          "sticky_header_type": "on-scroll-up"
        }
      },
      "footer": {
        "type": "footer",
        "settings": { "show_social": true }
      }
    }
  },
  "presets": {
    "Default": {}
  }
}

Top-level properties

PropertyTypeRequiredDescription
currentobject | stringYesThe active configuration. An object holds the values directly; a string names a key in presets to use instead.
presetsobjectYesNamed starting configurations, keyed by preset name. "Default": {} is the common minimum.

A current (or preset) object has two kinds of content.

Theme setting values

Any key other than sections is a theme setting value, keyed by the setting id from settings_schema.json. These populate the global settings object in Liquid.

json
"logo_width": 90,
"cart_type": "drawer"

Settings left out here fall back to the default declared in the schema.

sections

Data for statically rendered sections, keyed by a section ID. Each entry has the same shape as a section in a JSON template: type, settings, blocks, order, and disabled.

json
"sections": {
  "announcement-bar": {
    "type": "announcement-bar",
    "settings": { "auto_rotate": true },
    "blocks": {
      "block_one": {
        "type": "announcement_item",
        "settings": { "text": "Free shipping on all orders" }
      }
    },
    "order": ["block_one"]
  }
}

When a layout calls {% section 'announcement-bar' %}, the renderer looks up the entry whose type matches and renders the section with that data.

Editing

In normal use the theme editor owns this file. Hand-edit it only to set up the configuration a theme ships with, and keep every setting id and section type aligned with settings_schema.json and the section files.