Shopify Functions

Shopify 校验 Function 返回了 errors 结账却不拦

现象#

函数里 push 了三条错误,结账页一条都没出现;Dev Dashboard 的 Function 日志显示运行成功,展开 output 后 errors 数组确实有三条。

原因#

  • 新 target 要求错误放在 operations[].validationAdd.errors
  • target 指向不存在的路径时结账端无法定位,消息被丢弃也不报 schema 错
  • message 为空串或超出长度限制时整条错误被忽略,运行状态依然是 success
  • 函数只在特定 buyerJourney.step 抛错,购物车阶段的错误带不到结账页

处理步骤#

  1. 输出改成 { "operations": [ { "validationAdd": { "errors": [...] } } ] }
  2. target 用文档列出的路径,如 $.cart.buyerIdentity.email
  3. 每条错误只讲一个可修正的问题,文案写清怎么改,不要用 validation failed
  4. 在 buyerJourney.step 为 CHECKOUT_COMPLETION 时才返回错误
  5. 用 Storefront API 的 cartLinesAdd 触发,确认返回 VALIDATION_CUSTOM

验收标准#

结账页在对应字段下方出现配置的文案且无法继续付款,Storefront API 购物车返回 VALIDATION_CUSTOM 错误码。

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