Shopify 校验 Function 返回了 errors 结账却不拦
现象#
函数里 push 了三条错误,结账页一条都没出现;Dev Dashboard 的 Function 日志显示运行成功,展开 output 后 errors 数组确实有三条。
原因#
- 新 target 要求错误放在
operations[].validationAdd.errors - target 指向不存在的路径时结账端无法定位,消息被丢弃也不报 schema 错
- message 为空串或超出长度限制时整条错误被忽略,运行状态依然是 success
- 函数只在特定
buyerJourney.step抛错,购物车阶段的错误带不到结账页
处理步骤#
- 输出改成
{ "operations": [ { "validationAdd": { "errors": [...] } } ] } - target 用文档列出的路径,如
$.cart.buyerIdentity.email - 每条错误只讲一个可修正的问题,文案写清怎么改,不要用 validation failed
- 在
buyerJourney.step为 CHECKOUT_COMPLETION 时才返回错误 - 用 Storefront API 的
cartLinesAdd触发,确认返回VALIDATION_CUSTOM
验收标准#
结账页在对应字段下方出现配置的文案且无法继续付款,Storefront API 购物车返回 VALIDATION_CUSTOM 错误码。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。