我们使用zapier将发票从Quickbooks Online(QBO)推送到ShipStation(SS)。除SKU字段外(因为某些原因,QBO未通过),一切都被正确映射。所以我创建了一个使用multi-zap和Formatter Utility的查找来将描述与我所做的描述/ skus表匹配。zapier查找迭代数组
限制是Formatter公用程序只运行一次而不是迭代通过有效载荷数组。技术支持告诉我这可以通过代码实用工具完成,但我不知道如何去做。想法?
我们使用zapier将发票从Quickbooks Online(QBO)推送到ShipStation(SS)。除SKU字段外(因为某些原因,QBO未通过),一切都被正确映射。所以我创建了一个使用multi-zap和Formatter Utility的查找来将描述与我所做的描述/ skus表匹配。zapier查找迭代数组
限制是Formatter公用程序只运行一次而不是迭代通过有效载荷数组。技术支持告诉我这可以通过代码实用工具完成,但我不知道如何去做。想法?
好吧,所以这里最好的办法是有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将抓住网络挂接,并填写您所期望的SS领域。希望这很简单。
至于你需要做什么,你需要重新在JavaScript中查找表(对不起),并将otherZapUrl
替换为Zap B端点。此外,请确保在代码的inputData
对象中指定了要传递到SS上的所有数据。
那看起来怎么样?
这看起来很棒,并且它会工作......并且需要相当多的时间和修补程序来压扁所有的错误。当我完成后,我会尝试更新。谢谢@xavdid! –
太好了。让我知道你是否需要其他东西! – xavdid
我正在处理此问题,但无法弄清楚如何将来自QBO(zapier将此对象称为'Line Sales Item Line Detail Item Ref Name')的每个订单项的描述与SKU匹配。我假设inputData.skus.split会将'Line Sales Item Line Detail Item Ref Name'拆分为一个js数组。 lookupTable不需要有两个元素,一个描述(我们从QBO捕获的对象)和一个相应的SKU表来匹配?我不确定如何使用函数将数组对象链接到需要硬编码到代码步骤的SKU。 –
嘿!通常情况下,获得支持的最佳方式是通过contact @ email,但很高兴通过这里的一些代码。 Zapier Code可以同时运行Python和Javascript,你有偏好吗? – xavdid
我认为JavaScript对于人们来说更容易获得并且得到更广泛的支持。 –
太棒了,有道理。我研究了数组是如何实际发送的,而最简单的事情可能是创建第二个捕获webhook的zap,并为每个SKU执行1个SS输入。如果这很有意义,而且你很酷,那么我可以用该代码发布答案。 – xavdid