settings_data.json

settings_data.json 文件包含了基于 settings_schema.json 中定义的设置项而保存的主题设置值。

比如,你可以使用下面这个主题设置,让商家选择页面背景色:

  1. {
  2. "name": "Colors",
  3. "settings": [
  4. {
  5. "type": "color",
  6. "id": "color_page_bg",
  7. "label": "Page background",
  8. "default": "#FFFFFF"
  9. }
  10. ]
  11. }

这会在 settings_data.json 中添加一个 color_page_bg 的条目:

  1. ...
  2. "color_page_bg": "#FFFFFF"
  3. ...

提示

在这个例子中,color_page_bg 的值是 #FFFFFF,是因为设置了 default 默认值属性。

每当商家在主题编辑器中修改 color_page_bg 的值时,settings_data.json 就会更新为新的值。

所在位置

settings_data.json 文件位于主题的 config 目录下:

  1. └── theme
  2. ...
  3. ├── config
  4. ├── settings_data.json
  5. └── settings_schema.json
  6. └── locales

数据结构

settings_data.json 文件包含以下顶级对象:

对象 描述 是否必需
current 包含当前在主题编辑器中保存的所有设置值。
presets 包含每个 theme style 的对象。每个对象的格式与 current 相同。
platform_customizations 包含 平台控制设置 的设置值。 否 - 如果商家使用了平台控制的设置,Shopify 会自动添加这个对象。

例如:

  1. {
  2. "current": {
  3. "color_page_bg": "#FFFFFF",
  4. ...
  5. },
  6. "presets": {
  7. "preset-name": {
  8. "color_page_bg": "#000000",
  9. ...
  10. }
  11. }
  12. }

用法

在使用 settings_data.json 文件时,你应该熟悉以下概念:

Theme styles

Theme style 是一组主题设置的默认值,让商家在开始使用时能方便地 更改主题的整体外观和风格

选择某个 theme style 会更新 current 对象为对应的 style 设置值。但只有来自 presentational settings 的值会被更新。

Presentational settings

Presentational settings 指的是与主题视觉外观相关的设置。比如文字颜色和字体,或者某个元素是否可见。

以下这些输入类型属于 presentational settings。当切换 theme style 时,这些值会被覆盖:

Platform-controlled settings

在主题编辑器中,Shopify 提供了一个 自定义 CSS 设置,可用于主题级别和区块级别。商家在主题级别添加的任何自定义 CSS 都会存储在 platform-customizations 对象的 custom_css 属性中。

这个设置是为了让用户在不修改主题代码的情况下自定义店铺外观。作为主题开发者,你不应该添加这个设置,也不要在设置好之后修改它的值。你应该使用专门的 CSS 资源文件stylesheet Liquid 标签,并通过 theme settings 在这些地方引入 CSS 的自定义选项。

限制

  • settings_data.json 文件的大小不能超过 1.5MB。
  • 一个主题最多只能包含五个 style。