API应用中文封面,突出主题开发主题

Shopify API应用

摘要

24 Shopify API应用

先判断问题出现在哪里

不要让人工去干机器该干的事。通过 Admin API 读写店铺数据,通过 Storefront API 构建前端体验,通过 Webhook 实现系统间的实时通信,彻底打通 Shopify 与外部 ERP/CRM 的任督二脉。

API应用的四项 Shopify 检查清单
API应用的四项 Shopify 检查清单

实战步骤

步骤 1:创建自定义应用获取 API 密钥

不要把店铺的后台账号密码给外部服务商,必须通过自定义应用发放权限极小的 Token。

操作路径Shopify后台 -> 设置 -> 应用和销售渠道 -> 开发应用 -> 创建应用

  1. 命名为“ERP库存同步系统”。

  2. 点击 配置 Admin API 范围,只勾选 write_inventoryread_products(权限给得越少越安全)。

  3. 点击 安装应用,系统会生成一串 shpat_ 开头的 Admin API 访问令牌(注意:此 Token 只显示一次,必须立刻复制保存!)

步骤 2:使用 GraphQL 高效批量更新库存

REST API 更新 1000 个 SKU 的库存需要发 1000 次请求,极易触发限流(Rate Limit)。必须改用 GraphQL 批量处理。

操作路径使用 Postman 或你的后端代码发起 POST 请求

// 请求 URL: https://{store-name}.myshopify.com/admin/api/2026-01/graphql.json
// Headers: {"X-Shopify-Access-Token": "shpat_xxxxxxxxxxxx", "Content-Type": "application/json"}

// GraphQL Mutation: 一次性更新多个位置的库存
mutation inventoryBulkAdjustQuantityAtLocation($inventoryItemAdjustments: [InventoryAdjustItemInput!]!, $locationId: ID!) {
  inventoryBulkAdjustQuantityAtLocation(inventoryItemAdjustments: $inventoryItemAdjustments, locationId: $locationId) {
    inventoryLevels {
      id
      available
      item {
        sku
      }
    }
    userErrors {
      field
      message
    }
  }
}

// Variables (传入的具体数据)
{
  "locationId": "gid://shopify/Location/1234567890",
  "inventoryItemAdjustments": [
    {"inventoryItemId": "gid://shopify/InventoryItem/11111111", "availableDelta": 50},
    {"inventoryItemId": "gid://shopify/InventoryItem/22222222", "availableDelta": -10}
  ]
}

步骤 3:配置 Webhook 实现订单实时推送

不要让 ERP 每隔 5 分钟来轮询 Shopify 有没有新订单,这会浪费大量服务器资源。让 Shopify 在客户付款成功的瞬间,主动把订单数据推给 ERP。

操作路径Shopify后台 -> 设置 -> 通知 -> 滚动到最底部 (Webhooks) -> 创建 Webhook

  1. 事件 (Event):选择 订单创建 (Order creation)订单付款 (Order payment)

  2. 格式 (Format):选择 JSON

  3. URL:填入你 ERP 系统的接收地址(如 https://api.your-erp.com/shopify/webhook/order)。

  4. Webhook API 版本:选择最新的稳定版(如 2026-01)。

常见误区与处理方法

误区一:无视 API 速率限制 (Rate Limits) 导致接口被封

写了个脚本,一秒钟向 Shopify 发送了 50 次请求去抓取订单数据。Shopify 的 GraphQL 接口采用漏桶算法(Bucket limit),一旦超限,会直接返回 429 Too Many Requests 错误,甚至临时封禁你的 IP。

规避方法:在你的后端代码中必须实现 重试机制 (Retry Logic) 和退避算法 (Exponential Backoff)。每次请求 Shopify 时,检查响应头中的 X-Shopify-Shop-Api-Call-Limit,如果发现即将触顶,强制让代码 sleep(2000) 暂停 2 秒再发。

误区二:Webhook 接收端没有验证 HMAC 签名

你的 ERP 开放了一个接收订单的 URL。黑客发现了这个 URL,伪造了一堆“已付款”的假订单 JSON 发给你的 ERP,导致仓库发出了价值 10 万美金的货。

规避方法绝对不能无条件信任收到的 Webhook 数据! Shopify 在发送 Webhook 时,会在 HTTP 请求头 X-Shopify-Hmac-Sha256 中附带一个签名。你的服务器接收到数据后,必须使用你在 Shopify 后台获取的 Webhook 密钥 (Client Secret) 对收到的 Body 进行 SHA256 哈希计算,比对结果是否与请求头中的签名一致。不一致的请求直接丢弃并报警。

API应用从判断到验证的三步执行路径
API应用从判断到验证的三步执行路径

FAQ

Shopify API应用应该先检查什么?

先确认业务阶段、数据基础和当前最需要解决的一个问题。不要同时改很多位置,先记录当前页面和数据,再处理最明确的问题。

需要马上安装新的 Shopify App 吗?

不一定。先判断主题现有功能、后台字段和少量代码能否解决。只有需要持续同步数据或复杂自动化时,再评估 App 的费用、脚本负担和卸载影响。

修改后怎么验证是否有效?

记录修改日期、页面 URL 和改动内容,再用实际页面、移动端、Google Search Console、Bing Webmaster Tools 或 GA4 检查结果。技术修改还要保留测试记录和回滚版本。

哪些情况不建议马上修改?

数据量太少、追踪没有配置、问题还没有复现,或者正在进行大型主题更新时,不建议一次性重做。先把问题拆开,确认影响范围后再改。

下一步阅读

分享这篇文章

阅读说明

这些文章更适合当作排查笔记,而不是万能模板。

这篇文章适合怎么读?

先看结论和步骤,再对照自己的网站情况判断是否适用。涉及代码或后台设置的部分,建议先在预览主题或测试环境里试。

可以直接照着改吗?

有些步骤可以直接参考,有些要看主题结构、App、页面内容和当前业务阶段。不要在正式主题上直接试,先备份或用预览主题验证。

代码片段需要注意什么?

不同主题的 section、snippet 和 CSS 结构不一样。复制代码前先确认文件位置和命名,改完后检查桌面端、移动端和购物流程。

后续还会补充吗?

会。内容会围绕建站流程、主题代码、页面优化、速度排查和工具实测慢慢补,不追热点,优先写实际遇到的问题。

我的情况和文章不一样怎么办?

可以先把网站链接、页面现象和你已经尝试过的操作记下来,再决定是继续自查,还是发来让我帮你判断问题类型。

继续看 Shopify 实操笔记

如果这篇文章解决了一部分问题,可以回到博客列表继续看相关笔记;如果情况不一样,再带着页面和现象来判断。

返回博客列表 发来问题