如何将 WooCommerce 订单实时导出到 Google 表格
已发表: 2019-07-17在与 3rd 方服务集成时,WooCommerce 生态系统中提供了各种插件,可让您将信息传输到各种系统,从 Zapier 到 ConstantContact,再到帮助台系统(如 Help Scout)。
在 Tyche,我们过去已将一些插件与 Google 日历集成,因为我们的一些插件涉及预订或处理订单交货日期。 正是沿着这些思路,我想探索将 WooCommerce 订单与 Google 表格集成的想法。 这意味着任何进入的 WooCommerce 订单也会实时添加到 Google 表格中。
在开始写这篇文章之前,我正在研究可用于将 WooCommerce 订单信息直接添加到 Google 表格的内容。 有几篇文章和插件。
第一篇文章讨论了通过 WooCommerce Zapier 扩展将新的 WooCommerce 订单保存到 Google 表格中。 如您所知,Zapier 提供与 1500 多种云服务的集成。 这不是我想要的,因为我试图在不使用插件的情况下实现这种集成。
虽然 Woocommerce 提供了许多开箱即用的功能,但在 WooCommerce 中默认情况下,Woocommerce 订单无法导出到 Google 表格。
因此,在接下来的几个步骤中,我们将了解如何使用 Google 提供的 WooCommerce Webhooks & Apps Script 将 WooCommerce 订单实时导出到 Google 表格。
如何将 Woocommerce 订单导出到 Google 表格的分步指南
第 1 步:创建 Google 表格
您首先需要创建一个新的 Google 表格,用于导出您的所有 WooCommerce 订单。 创建完成后,您可以将要导出的字段添加到 Google 表格。
我在工作表中添加了 5 个字段:
- 添加日期 - 将此记录添加到 Google 表格中的日期
- 订单号 – 这是 WooCommerce 订单号
- 订单日期 - 下订单的日期
- 订单状态 – 下单后的订单状态
- 订单链接 – 链接到 WooCommerce 编辑订单页面
第 2 步:编写 Google Apps 脚本
创建工作表后,我们需要创建负责将数据添加到工作表的 Google Apps 脚本。 该脚本将从 WooCommerce Webhooks(我们将在后面的步骤中看到)获取数据,并且该数据将被解析并添加到工作表中。
您可以转到“工具”菜单并单击“脚本编辑器”。
打开脚本编辑器后,您将看到以下屏幕。
Google 具有此功能,如果脚本满足某些条件,它允许将脚本作为网络应用程序发布。 要求是:
- 它包含一个
doGet(e)
或doPost(e)
函数。 - 该函数返回一个 HTML 服务
HtmlOutput
对象或一个内容服务TextOutput
对象。
当外部应用程序发送 HTTP GET 请求时,Apps 脚本会调用 doGet(e) 函数,而当外部应用程序发送 HTTP POST 请求时,Apps 脚本会调用 doPost(e) 函数。 可以在此处找到有关 Google Scripts 网络应用程序和上述功能的详细说明。
以下是我在脚本中创建的 2 个函数:
添加上述代码后,我的 Google 脚本现在如下所示:
第 3 步:将脚本部署为 Web 应用程序
一旦编写了上述代码,我们就满足了将其部署为 Web 应用程序的要求; 这意味着实时导出我们的 Woocommerce 订单的脚本现已准备就绪。
注意:必须将此脚本部署为 Web 应用程序才能监听外部 GET 和 POST 请求。
要将脚本部署为 Web 应用程序,您需要选择发布 -> 部署为 Web 应用程序选项。
单击“部署为 Web 应用程序”将显示以下弹出窗口:
部署为 Web 应用程序时,重要的是每次部署时,在项目版本选项中选择“新建” 。 只有当您选择“新建”时,该迭代中所做的任何更改才会生效。
您需要在“将应用程序执行为”选项中选择“我”。 并且“谁有权访问该应用程序”应设置为“任何人,甚至匿名”。
单击“更新”后,将显示以下消息,表明该项目现在已成功部署为 Web 应用程序。 除此之外,它还将在“当前网络应用 URL”字段中显示一个 URL。 您需要复制此 URL,因为这是我们在下一步中使用 WooCommerce webhook 进行 Woocommerce 订单导出设置时将使用的 URL。

第 4 步:创建 WooCommerce 网络钩子
现在 Google Apps 脚本已设置并部署为网络应用程序,我们需要添加一个 WooCommerce 网络钩子,该网络钩子将在创建订单时触发。
您可以从WooCommerce -> 设置 -> 高级 -> Webhooks菜单中添加 webhook。 当您点击“添加 webhook”按钮时,您需要填写如下所示的字段:
上一步从“Current web app URL”字段复制的 URL 需要放在 webhook 的“Delivery URL”字段中。 这将在创建订单时将订单信息发送到交付 URL,我们的 Google Apps 脚本设置为侦听任何传入的 GET 或 POST 请求。 在当前情况下,所有订单信息都是通过 HTTP POST 传递的。
创建 webhook 后,它将出现在具有 Active 状态的 webhook 列表中:
您的设置中可能有也可能没有额外的 webhook。 我设置了另一个 webhook,当订单更新时会在 Slack 上发送通知。
第 5 步:采取一些行动的时间
在您的 WooCommerce 商店下订单后,在接下来的 1 或 2 分钟内,该订单的信息将出现在最后一行的 Google 表格中。
上述订单下单后,Google sheet 中出现相应信息大约需要 2 分钟:
当您继续在 WooCommerce 商店上接收订单时,Google 表格将自动将订单信息附加到最后填充的行下方。 我在上述订单号 1166 之后下了 4 个订单:
每次下订单后,Google 表格都会在 10 秒到 1 分钟内填充订单信息:
订单链接列目前是空白的,因为我没有在其中输入任何数据。 但是,您可以根据需要解析订单信息并从订单中填充任何信息,如订单总额、付款方式、产品等。
订单元数据
当 WooCommerce 触发 order.created 操作时,它会发送一堆有关订单的元信息。 您可以在下面找到所有信息,这些信息取自我的一份样品订单。 此元数据还包括交货日期和交货费用字段,这些字段是从我们的订单交货日期插件中添加的,用于自动化商店交货。 订单中有 2 个产品,一个简单产品和一个可变产品:
获取完整的 Woocommerce 订单信息
如您所见,我获取的上述信息非常有限。 以下示例演示了如何获取包含以下字段的详细订单信息:
订单号
订购日期
订单状态
产品名称
产品数量
产品总数
合计订单
帐单电子邮件
计费名字
计费姓氏
付款方式
邮寄方式
运输费用
我的 Google 表格现在看起来像这样:
我的用于获取上述所有信息的 Google Apps 脚本现在已修改如下所示(请记住每次更改 Google Apps 脚本时都将其部署为新的 Web 应用程序):
下订单后,工作表将开始填充,如下所示:
以下是我下的订单:
根据上述订单 #1214、1217 和 1220,您可以在下方看到创建的所有这些订单以及附加信息。
因此,在一些简单修改的帮助下,我们设法在 Google 表格中获得了完整的订单信息。
这是您可以用来在 WordPress 中导出 Woocommerce 订单的最简单、最直接的方法。 订单是实时导出的,无论何时下新订单,您都无需付出额外的努力。