Checkout UI 扩展装错包版本导致结账区块空白
现象#
依赖升级后 shopify app deploy 显示成功,结账页该区块却渲染成空白,Console 里 shopify.extension 是 undefined,编辑器里只剩应用名。
原因#
- 包版本与 API 版本编号不同,
2025-07对应 npm 的2025.7.x,装 latest 会跨版本 - 两个 ui-extensions 包的版本必须一致,混装时 hook 取不到宿主 API
- toml 根级
api_version决定宿主注入哪版 API,与 package.json 里的版本无关 - React 要停在 18,19 的调度会让扩展在远程 DOM 里挂载失败
处理步骤#
- 执行
npm ls查两个 ui-extensions 包,确认版本完全一致 - 按 toml 里的版本装依赖:
npm i @shopify/ui-extensions-react@2025-07 - import 路径统一写
@shopify/ui-extensions-react/checkout - 在区块里打印
shopify.extension.apiVersion,与 toml 里的值逐字比对 - 重新
shopify app deploy后到结账编辑器移除旧块,再添加一次
验收标准#
区块正常渲染,Console 里 shopify.extension.apiVersion 与 toml 的版本一致,编辑器里可以把该块拖到其他位置。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。