如何将此JavaScript代码添加到Zapier,以发出第三方礼物?

问题描述

我的电子商务网站需要运行JavaScript代码,以便第三者可以向客户发送礼物。 JavaScript代码可在“谢谢”页面上使用,但是在脚本运行之前我需要延迟几天,因此我尝试使用Zapier进行此操作。但是当在那里使用相同的代码时,Zapier会给出以下错误

Zapier无法将运行的javascript发送给Code。语法错误:意外令牌

Zapier支持无法帮助,我在Zapier的文档中找不到解决方案。

有人可以帮忙修改下面的短代码,以便Zapier可以运行它吗?

<script src="https://members.thirdparty.com/jsapi/fbDE_Voucher.min.js"></script>
<script>
window.onload = function(){
var fdDE_detail = {
"fbDE_sender":'12345-67890',"fbDE_fullname":"'"+inputData.CustName+"'","fbDE_email":"'"+inputData.Custemail+"'","fbDE_amount":inputData.VoucherValue,"fbDE_business":54321,"fbDE_message":'Thank you for your purchase!'
}
fbDEVoucher(fdDE_detail);
}
</script>

变量CustName,Custemail和VoucherValue来自先前的Zapier步骤。前两个必须在单引号内,第三个是整数(不需要引号)。请参见下图:

JavaScript code for Zapier

有人知道如何解决上述错误粗体字),以便此代码运行吗?

感谢您的帮助!谢谢。

解决方法

Zapier的代码在Node.js中运行,这与您的代码之前运行的基于浏览器的JS不同。

首先,<script>标签不可用,因为它是HTML。通过fbDE_Voucher.min.js输入的任何代码都需要分别加载。如果时间不太长,可以将其粘贴到代码窗口中(但是有更好的解决方案,请参见下文)。

也没有window全局变量,但是您还是不需要它。因此,要使它开始工作,它将类似于:

// doesn't work,fbDEVoucher is undefined
fbDEVoucher({
  fbDE_sender: "12345-67890",fbDE_fullname: inputData.CustName,// doesn't need to be re-wrapped in a string
  fbDE_email: inputData.CustEmail,fbDE_amount: inputData.VoucherValue,fbDE_business: 54321,fbDE_message: "Thank you for your purchase!",});

假设您的函数已经定义,这就是您所需要的。


这里最适合您的选择是创建自定义Zapier集成。与Code by Zapier步骤相比,这为您提供了功能更全的JS环境,并且控制能力大大提高。您可以包括上述文件并根据需要调用该函数。这里有关于此的文档:https://platform.zapier.com/