Shopify CLI 与 Headless

Headless 站点结账跳不回 Shopify 域名怎么办

现象#

点结账后跳到 https://shop.com/checkout 并返回 404;打印 cart.checkoutUrl 发现它基于店铺主域拼出来,没有指向 Shopify 的结账域。

原因#

  • checkoutUrl 基于店铺主域生成,主域若解析到 headless 站,这个路径自然 404
  • /checkout 需要由 handleShopifyRoutes() 接管,没注册时请求落进前端路由
  • 店铺主域在后台没有指向 headless 域名,拼接时用了错误的 host
  • Markets 多域名场景下 checkoutUrl 跟随当前市场域,写死一个域会跳错

处理步骤#

  1. 先打印真实值:console.log(cart.checkoutUrl),确认 host 是不是结账域
  2. 根中间件注册 handleShopifyRoutes(),让 /checkout 交给 Hydrogen 处理
  3. 跳转用 window.location.href = cart.checkoutUrl,不要用 Link 或相对路径
  4. 后台把主域指向 headless 域名,或在 Markets 里为目标市场绑定正确域名
  5. 需要带 UTM 时只在 checkoutUrl 后追加查询参数,不要改 path

验收标准#

点结账后地址栏进入 Shopify 结账域,结账页正常带出购物车商品与金额,不再出现 404。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。