You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Shopify API获取主题配置的首页Banner及广告数据?

如何通过Shopify API同步主题后台设置的Banner及广告信息到移动端应用

完全可以通过Shopify的Storefront GraphQL API或Admin REST API实现这个需求,具体操作分两种场景说明:

一、使用Storefront GraphQL API(推荐移动端前端直接调用)

因为你正在基于Storefront GraphQL开发应用,优先用这个API——它专为前端展示场景设计,无需管理员权限,仅需店铺的Storefront Access Token即可调用。

1. 提取首页Sections中的Banner/广告数据

多数Shopify主题会用Sections组件构建首页Banner、广告模块,你可以直接查询首页的所有Sections,根据组件类型筛选目标数据:

query FetchHomepageContent {
  shop {
    currentPublication {
      homepage {
        sections {
          nodes {
            type
            settings
            blocks {
              nodes {
                type
                settings
              }
            }
          }
        }
      }
    }
  }
}
  • 解析逻辑:根据返回的type字段(比如主题定义的hero-banner、promo-ad等)定位目标组件,从settings或blocks[].settings中提取图片URL、跳转链接、文案等信息。
  • 图片URL处理:如果返回的是相对路径,拼接成完整CDN地址:https://{你的店铺域名}.myshopify.com{相对路径}。

2. 获取主题自定义元字段中的广告数据

如果商家通过主题的自定义元字段存储Banner/广告信息,可直接查询主题的Metafields:

query FetchThemeMetafields {
  shop {
    currentTheme {
      metafields(namespace: "custom", keys: ["top_banner", "mid_promo"]) {
        nodes {
          key
          value
          type
        }
      }
    }
  }
}
  • 说明:namespace和keys需要和主题后台配置的元字段对应;如果元字段类型是json,需将value解析为JSON对象后使用。

二、使用Admin REST API(适合后端中转调用)

Admin API能获取更全面的主题配置,但需要店铺管理员权限,绝不能在移动端前端直接调用(会泄露敏感密钥),适合通过你的后端服务中转请求。

1. 获取主题完整配置数据

调用GET /admin/api/2024-07/themes/{theme_id}.json,响应中的theme.settings_data是存储所有主题设置的JSON字符串,包含Banner、广告的配置:

{
  "theme": {
    "id": 123456789,
    "settings_data": "{\"sections\":{\"hero-banner\":{\"type\":\"hero-banner\",\"settings\":{\"image\":\"/cdn/shop/files/summer_banner.jpg\",\"heading\":\"Summer Flash Sale\",\"button_link\":\"/collections/summer-collection\"}}}}"
  }
}
  • 操作:解析这个JSON字符串,提取目标Banner/广告的配置项即可。

2. 查询主题自定义元字段

调用GET /admin/api/2024-07/themes/{theme_id}/metafields.json,可获取主题的所有自定义元字段,筛选出需要的Banner/广告数据即可。

关键注意事项

  • 不同主题的Sections类型、配置字段名存在差异,建议先在Shopify GraphQL Playground(Storefront环境)或Admin API测试工具中验证查询结果,再调整解析逻辑。
  • Storefront API的权限范围需包含read_themes,确保能正常获取主题相关数据。

内容的提问来源于stack exchange,提问作者Mitul Bhadeshiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:50:37