【问题标题】:zapier lookup to iterate through arrayzapier 查找遍历数组
【发布时间】:2023-03-27 17:40:02
【问题描述】:

我们正在使用 zapier 将发票从 Quickbooks Online (QBO) 推送到 ShipStation (SS)。除了 SKU 字段(由于某种原因 QBO 没有通过)之外,所有内容都映射得很好。因此,我使用 multi-zap 和 Formatter Utility 创建了一个查找,以将描述与我制作的描述/skus 表相匹配。

限制是 Formatter Utility 只会运行一次,并且不会遍历有效负载数组。技术支持告诉我这可以使用代码实用程序来完成,但我不知道该怎么做。想法?

【问题讨论】:

  • 你好!通常,获得支持的最佳方式是通过contact@电子邮件,但很高兴在这里查看一些代码内容。 Zapier Code 可以同时运行 Python 和 Javascript,你有偏好吗?
  • 我认为 JavaScript 更容易为人们所接受并且得到更广泛的支持。
  • 很好,有道理。我查看了数组实际上是如何发送的,最简单的可能是制作第二个 zap,它捕获一个 webhook 并为每个 SKU 执行 1 个 SS 输入。如果这有意义并且您对此很满意,我可以使用该代码发布答案。
  • 我不知道该怎么做,但如果你能让它发挥作用,这听起来是个不错的选择。非常感谢您的帮助!!

标签: quickbooks formatter utility zapier


【解决方案1】:

好的,所以这里最好的方法是有 2 个不同的 zaps。

Zap A 将移动有一个 QBO 触发器,通过您的过滤器,最后一步将是一个代码操作。 Zap B 将具有“Catch Webhook”触发器和 ShipStation 操作。让我们来看看它们。

Zap A 有一个接收输入数据的代码步骤。这将是用逗号分隔的所有 SKU。

代码步骤如下所示:

var skus = inputData.skus.split(',') // now it's an actual array
var otherZapUrl = 'https://zapier.com/catch/12345'

var lookupTable = {
  1: 'New York',
  2: 'Chicago',
  3: 'Los Angeles'
}

skus.map(function(sku){
  var payload = {
    sku: lookupTable[sku] || 'default',
    // other data you want to send along
    // name: inputData.name
  };
  fetch(otherZapUrl, {method: 'POST', body: JSON.stringify(payload)});
})

return [{status: 'ok'}] // this is so the editor doesn't complain

您的第二个 zap 将捕获 webhook 并填写您期望的 SS 字段。希望这很简单。

至于您需要做什么,您需要在 javascript 中重做您的查找表(抱歉)并将otherZapUrl 替换为 Zap B 端点的查找表。此外,请确保在代码的inputData 对象中指定要传递给 SS 的所有数据。

看起来怎么样?

【讨论】:

  • 这看起来很棒,而且它会工作......而且它需要相当多的时间和修补才能消除所有错误。完成后我会在这里尝试和更新。谢谢@xavdid!
  • 太棒了。如果您还需要什么,请告诉我!
  • 我正在处理这个问题,无法弄清楚如何匹配来自 QBO 的每个行项目的描述(zapier 将此对象称为“行销售项目行详细信息项目参考名称” ') 到 SKU。我假设 inputData.skus.split 会将“Line Sales Item Line Detail Item Ref Name”拆分为一个 js 数组。查找表不需要两个元素,一个描述(我们从 QBO 捕获的对象)和一个对应的 SKU 表来匹配?我不确定如何使用您的函数将数组对象链接到我需要硬编码到代码步骤中的 SKU。
猜你喜欢
  • 2012-06-02
  • 2019-02-25
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 2018-08-22
  • 2015-07-29
  • 2018-09-18
  • 2017-03-22
相关资源
最近更新 更多