You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zapier-输入数据排序:Shopify自定义产品属性匹配需求

解决Zapier中Shopify自定义产品属性的名称与值匹配问题

我之前帮好几个开发者处理过这个Zapier+Shopify的痛点——Shopify确实会把自定义产品属性拆成两个平行数组Line Items Properties Names和Line Items Properties Values传递给Zapier,导致直接用起来特别麻烦。下面给你一套实操性极强的解决方案:

核心思路

这两个数组是索引一一对应的:Names数组里第N个元素,必然对应Values数组里第N个元素。我们只需要用Zapier的「Code by Zapier」工具写一段简单代码,就能把它们配对成结构化的键值对,方便后续步骤直接调用。

具体实现步骤(以JavaScript为例)

  1. 在Zapier流程中添加一个「Code by Zapier」步骤,选择「Run JavaScript」
  2. 在「Input Data」里定义两个变量:
    • propNames:关联Shopify触发步骤里的「Line Items Properties Names」字段
    • propValues:关联Shopify触发步骤里的「Line Items Properties Values」字段
  3. 粘贴以下代码:
// 初始化空对象存储配对后的属性
const pairedProps = {};

// 按索引遍历数组,配对名称与值
for (let i = 0; i < propNames.length; i++) {
  // 跳过空属性名,避免无效键
  if (propNames[i]) {
    pairedProps[propNames[i]] = propValues[i] || "";
  }
}

// 返回结构化结果,后续步骤可直接调用
return { pairedProperties: pairedProps };
  1. 运行测试后,你会得到一个清晰的结构化对象。比如输入是:
    • propNames: ["Size", "Custom Engraving", "Color"]
    • propValues: ["L", "Happy Birthday", "Navy"]
      输出会是:
    {
      "pairedProperties": {
        "Size": "L",
        "Custom Engraving": "Happy Birthday",
        "Color": "Navy"
      }
    }
    

进阶需求处理

如果你的需求不止于基础配对,比如:

  • 只想保留特定属性(比如只提取"Size"和"Color"):可以在循环里加判断条件过滤
  • 要把属性转为数组形式(方便批量操作):把pairedProps改成数组,循环时push{name: propNames[i], value: propValues[i]}
  • 处理多订单项场景:在外层加循环,遍历每个订单项的属性数组即可

注意事项

  • 正常情况下Shopify会保证两个数组长度一致,但代码里的propValues[i] || ""能避免异常数据导致的报错
  • 如果你更熟悉Python,逻辑完全一致,用字典推导式就能实现:
prop_names = input_data['propNames']
prop_values = input_data['propValues']
paired_props = {name: prop_values[i] for i, name in enumerate(prop_names) if name}
return {'pairedProperties': paired_props}

内容的提问来源于stack exchange,提问作者Fabian C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:45:39