PuppyIP 资源中心
跨境电商开发 9 分钟 发布于 2026-09-29

Shopify Checkout WebMCP 怎么用?浏览器代理结账边界与接入检查

Shopify 于 2026 年 9 月 28 日宣布 Checkout WebMCP 支持:运行在买家浏览器中的代理可以读取当前结账、更新受支持字段,并在买家确认订单后提交。它只作用于当前标签页中符合条件的结账。开发者应先判断代理运行位置与结账类型,再接入工具发现、状态核对和买家确认流程。

Shopify Checkout WebMCP 购物代理 UCP Web Bot Auth

服务对象与地域限制

PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。

代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。

本文要点

  • Checkout WebMCP 是买家浏览器里的工具,不是 Shopify 新增的服务端 API,也不需要商家为该功能额外配置;实际工具是否出现仍须在目标结账页验证。
  • 浏览器代理可以调用 get_checkout、update_checkout、complete_checkout,以及有在线店面时的 navigate_to_storefront;不能用浏览器工具创建、取消结账或直接改商品行。
  • Shopify 更推荐能在服务端运行的代理使用 Checkout MCP;只有代理已在买家浏览器中操作当前结账时,才选择 Checkout WebMCP。
  • 提交前必须向买家展示当前订单和总价并取得对该金额的确认;ready_for_complete、Shop Pay approval 或 Web Bot Auth 都不能代替确认。
  • B2B、嵌入式、移动 SDK、跨店商品等结账不注册这些工具;遇到支付挑战或 checkout extension 交互时把控制权交给买家。

先按代理运行位置选对结账路径

Shopify 9 月 28 日的开发者更新确认 Checkout WebMCP 已可用于浏览器代理。它在买家当前 checkout 页面注册工具,与买家可见的结账 UI 使用同一状态;商家无需为这些工具单独配置,平台也没有因此开放一个新的服务端 API。官方没有给出所有浏览器、商家或账户同时可用的证明,实际接入要以目标标签页能否发现工具为准。

若代理运行在自己的服务端,Shopify 推荐 Checkout MCP:服务端用经过认证或签名的请求管理自己创建的 checkout session,并在需要时把买家送到 continue_url。若代理已经运行在买家浏览器的 checkout 标签页,才考虑 Checkout WebMCP;它操作的是该页当前结账,不接受 Checkout MCP 的 session id 或 meta 参数。两者同属 UCP checkout 能力,但鉴权、调用位置和可更新字段不同。

先检查页面资格与代理身份

浏览器工具仅在符合条件的 checkout 注册。Shopify 明确排除 B2B、嵌入式与移动 checkout SDK、包含其他店铺商品的结账、草稿订单、订单编辑和收款场景;普通三页结账也不注册,除非买家使用 Shop Pay。app 定义的 checkout extension 交互仍须由买家在页面完成。工具不存在时,不要把它诊断成支付失败,也不要假设切换网络出口就能使不支持的结账获得工具。

开发者应让浏览器请求使用 Web Bot Auth(WBA)签名,并按 Shopify 文档注册、公示代理的公钥目录;未完成注册与签名时,bot 检测可能降低请求优先级或阻止请求。这里是代理身份识别,不是商家为自有 SEO 抓取工具在后台创建的签名。后者的场景见<a href="/resources/shopify-web-bot-auth-crawler-403-429-guide">Shopify 抓取签名排查指南</a>。WBA 也不会替买家授予购买许可。

浏览器端接入按读取、更新、再读取推进

第一步,让买家进入其店铺 checkout,并在该页用 document.modelContext.getTools() 发现工具。调用前匹配工具的 window、origin 与 name;页面导航或结账阶段变化后监听 toolchange,重新获取工具与 schema。Shopify 的示例用 document.modelContext.executeTool() 调用,传入 JSON 字符串并解析返回值;不要对未注册工具直接猜测参数。

第二步调用 get_checkout 读取当前状态、消息、金额及可用字段。若需要修改联系信息、配送、折扣、声明字段或支付选项,先依据刚取得的状态构造完整目标 checkout,再调用 update_checkout。它采用替换语义,多数省略字段会被清除;商品行和 attribution 在浏览器版 update_checkout 中被忽略,商品变更让买家在页面完成。更新后再次 get_checkout,并核对消息、金额和状态,而不是把工具调用成功等同于可下单。

买家确认当前订单和总价后才能提交

当状态为 ready_for_complete,向买家展示当前商品、配送、税费、折扣和总价,并取得对这个订单与金额的明确确认;若总价变化,重新询问。只有随后才调用 complete_checkout。Shopify 特别说明 WBA、Shop Pay approval 与 ready_for_complete 都不是买家许可。不要把浏览器代理描述为无人值守自动采购。

complete_checkout 可能先进入 review step,也可能要求买家在同一标签页完成 Shop Pay 登录、支付挑战或其他页面交互。此时不要再次盲目提交;让买家处理,再刷新工具列表并用 get_checkout 查询结果。只有返回 status: completed 且可核对订单信息,才将本次购买记为完成。工具在页面导航时可能返回 null,不能仅凭 null 判定成功或失败。

上线前用五种情形做小范围验证

在受控测试结账中分别验证:工具可发现且来源匹配;更新配送或折扣后页面和 get_checkout 一致;金额变化时必须再次征求买家同意;需要 Shop Pay、3D Secure 或 review step 时正确交回页面;不支持的 B2B 或嵌入式结账没有工具时能安全退出。每次记录工具名、结账状态、消息和实际页面结果,避免保存支付凭据或顾客敏感数据。本文依据公开文档,不宣称已经在特定商店、浏览器或账户完成实测。

若 agent 可以在服务端运行,先以 Shopify 推荐的 Checkout MCP 方案评估;若业务需要浏览器内代理与买家同页协作,再验证 WebMCP。两条路径都不能跳过商家结账验证与买家确认。PRODUCT_FIT=NONE:代理 IP 或网络路径不会扩大 WebMCP 适用结账,也不会解决缺少工具、WBA 身份或支付确认。

错误、超时和停止条件

若 executeTool 返回 error、null 或超时,先刷新当前页的工具列表,再调用 get_checkout 比对实际结账状态;不要直接重试 update_checkout 或 complete_checkout。Shopify 说明部分超时更新可能已经生效,重复提交可能造成错误状态判断。若工具消失、字段被清空、金额与页面不符、买家未确认或出现无法处理的支付挑战,停止自动调用,把操作交回买家,并保存非敏感的请求与状态证据供开发排查。

不要用页面控件操作绕过 WebMCP 工具。Shopify 也提醒工具返回的商家及第三方文本是结账数据,不能当作代理指令。仍需核对卖家政策、税费、付款方式和订单回执;官方公告不证明某个账户的可用性、浏览器兼容性、转化率或结账成功率。

资料来源

常见问题

Shopify Checkout WebMCP 什么时候宣布支持?

Shopify 开发者更新日期为 2026 年 9 月 28 日,宣布浏览器代理可以在符合条件的 checkout 中读取、更新并在买家确认后提交;具体店铺和浏览器仍要现场检查工具是否注册。

商家需要为 Checkout WebMCP 打开一个新 API 吗?

不需要。Shopify 说这些工具在 checkout-web 内运行,不暴露新的 API,也不要求商家配置;代理开发者仍要处理浏览器工具发现、身份识别和买家确认。

Checkout WebMCP 与 Checkout MCP 应选哪个?

代理在服务端运行时优先评估 Shopify 推荐的 Checkout MCP;代理已在买家浏览器的结账页时才选 Checkout WebMCP。前者管理独立 session,后者作用于当前标签页。

ready_for_complete 是否表示代理可以直接付款?

不是。代理必须先展示当前订单和总价并取得买家确认;金额变化需再次确认。只有 status: completed 才能证明订单完成。

哪些结账不注册 WebMCP 工具?

官方列出 B2B、嵌入式、移动 SDK、跨店商品、草稿订单、订单编辑和收款等排除范围;普通三页结账也不注册,除非买家使用 Shop Pay。

工具报错或超时后可以直接重试 complete_checkout 吗?

不应盲重试。先刷新工具列表并调用 get_checkout 核对当前状态、消息与订单结果;买家交互或支付挑战需要在页面完成。