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

能否通过Shopify API获取其他授权店铺的商品信息?

能否调用其他Shopify店铺的API获取商品信息?

完全可行,只要你已获得目标店铺所有者的明确授权,以下是具体实现方案及注意事项:

核心实现方案

1. 获取目标店铺的API访问凭证

每个Shopify店铺的Admin API需要独立的认证凭证,对方店铺所有者需在自己的店铺后台完成以下操作:

  • 创建自定义应用(Shopify当前推荐的方式)或私有应用;
  • 为应用分配read_products权限(读取商品的权限);
  • 生成对应的API密钥、密码(私有应用)或OAuth访问令牌(自定义应用)。

调用接口时,需在请求头中携带认证信息:

  • 私有应用使用Basic认证:将{API密钥}:{密码}做Base64编码后,放在Authorization头中,格式为:
    Authorization: Basic {Base64编码后的字符串}
    
  • 自定义应用使用Bearer认证:将OAuth访问令牌放在Authorization头中,格式为:
    Authorization: Bearer {访问令牌}
    

2. 调用目标店铺的商品API

你可以直接使用你提到的接口格式发起请求:

GET https://{{目标店铺名称}}.myshopify.com/admin/api/2024-01/products.json
  • 确认目标店铺支持你使用的API版本(如2024-01),避免版本不兼容;
  • 可通过URL参数优化查询结果:
    • limit=250:设置每页最大返回250条商品(Shopify允许的最大值);
    • page=1:分页获取数据;
    • status=active:仅返回上架状态的商品。

3. 更轻量化的替代方案:Storefront API

如果仅需获取商品的公开信息(无需后台私有数据),可以使用Shopify的Storefront API:

  • 对方店铺所有者生成Storefront Access Token;
  • 通过GraphQL接口查询商品,示例请求地址:
    POST https://{{目标店铺名称}}.myshopify.com/api/2024-01/graphql.json
    
    请求头携带X-Shopify-Storefront-Access-Token: {Storefront令牌},请求体用GraphQL语句指定需要的商品字段,比如:
    query {
      products(first: 25) {
        edges {
          node {
            id
            title
            handle
            variants {
              edges {
                node {
                  price
                  availableForSale
                }
              }
            }
          }
        }
      }
    }
    

关键注意事项

  • 严格遵守对方店铺的授权范围,不要申请或使用超出需求的API权限;
  • 注意Shopify的API速率限制:Admin API每分钟最多允许2个请求桶(每个桶对应一定数量的请求),Storefront API限制更宽松,需避免触发限流;
  • 所有操作需符合Shopify服务条款及相关数据隐私法规。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:26:16