Shopify Function operations 写错无变化
现象#
本地 run 的输出看起来有内容,前台购物车完全没变化;Dev Dashboard 里这次运行状态是 success,展开 output 却只剩一个空 operations 数组。
原因#
- 每个 target 的键不同:配送要
deliveryOptionHandle,支付要paymentMethodId - operations 必须是数组,直接返回单个对象会被 schema 判为无效并回退成空
- 同一数组里混放 hide 与 rename 时只保留第一种,其余静默丢弃
- 折扣类 target 不用 operations,仍返回
discounts,混写就整体失效
处理步骤#
- 先确认 target:
cart.payment-methods.transform.run用 paymentMethodId - 返回值统一包成
{ "operations": [ ... ] },无变化时返回空数组 - 一个数组只放一种操作,需要同时隐藏与改名就分两轮判断
- 折扣函数保留
discounts结构,百分比写在value.percentage.value - 用
shopify app function run -j看完整 JSON,再按 schema 核对大小写
验收标准#
回放输出的数组长度与预期一致,结账页对应位置出现被隐藏或改名的项,日志状态不再是无变化。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。