如何使用 ONLYOFFICE 宏跟踪 Shopify 上的订单
如今,电子商务已成为打破地理障碍、促进源源不断的收入的宝贵工具。因此,管理和跟踪订单信息是成功业务战略的重要组成部分。在本文中,我们将构建一个宏,用于从 Shopify 检索订单数据并将其插入到电子表格中。
注意!该宏只能在 ONLYOFFICE 编辑器的桌面版本中运行。
关于 Shopify
Shopify 是一个领先的电子商务平台,允许个人和企业创建和管理他们的在线商店。它提供了一套全面的工具和功能,帮助商家销售产品、管理库存、处理订单和定制店面。
Shopify API 是一个强大的接口,允许开发人员与 Shopify 交互并扩展其功能。它提供了广泛的方法和端点,使开发人员能够将自己的应用程序、系统或服务与 Shopify 商店无缝集成。
构建宏
首先我们要声明以下变量:
const TOKEN = 'YOUR_API_TOKEN'
const SHOP_ID = 'YOUR_SHOP_ID'
const URL = `https://${ SHOP_ID }.myshopify.com/admin/api/2022-10/orders.json`
const LABELS = [
'order id',
'total price',
'tax',
'shipping address'
]
TOKEN 和 SHOP_ID 变量分别包含您的实际 Shopify API 令牌和商店 ID。URL 变量保存 API 请求的完整 URL,以从 Shopify 商店检索订单。LABEL 变量是一个包含表列标签的数组。它指定数据在电子表格中显示的顺序。每个标签对应于表中的一列。
然后,我们合并 makeRequest 函数以向指定的 Shopify API 端点发起 GET 请求:
function makeRequest() {
$.ajax({
method: 'GET',
headers: {
// 'Access-Control-Allow-Origin': '*',
'Content-Type' : 'application/json',
'X-Shopify-Access-Token': TOKEN
},
url: URL,
dataType: 'json',
}).done(successFunction)
}
在此 $.ajax 请求中,我们设置必要的标头,包括内容类型和 Shopify API 令牌。我们还指定数据类型和 URL 作为用于获取订单的 Shopify API 端点。
之后我们使用 successFuntion 处理响应:
function successFunction(data) {
if (data.orders === undefined) return
let table = LABELS.map(label => [label])
const oWorksheet = Api.GetActiveSheet()
const oRange = oWorksheet.GetRange(`A1:D${data.orders.length + 1}`)
data.orders.forEach(order => {
table[0].push(order.id.toString())
table[1].push(order.current_total_price)
table[2].push(order.current_total_tax)
// if missing field
if (order.shipping_address === undefined) {
table[3].push(order.billing_address.address1.toString())
} else {
table[3].push(order.shipping_address.address1.toString())
}
})
oRange.SetValue(table)
它以 data 作为参数,表示包含订单信息的响应。该函数的第一行检查 data.orders 属性是否未定义。如果是,则意味着响应中没有订单,因此函数提前返回。然后,我们使用 LABELS 数组和 map 方法创建一个新数组,其中每个标签作为表中的单独行。每个标签都封装在一个数组中以表示表中的单个单元格:
function successFunction(data) {
if (data.orders === undefined) return
let table = LABELS.map(label => [label])
})
之后,我们检索 ONLYOFFICE 文档中的活动工作表并定义将插入订单数据的范围。范围设置为从单元格 A1 到 D,后跟订单数加一。data.orders.length + 1 用于计算表中的标签行:
const oWorksheet = Api.GetActiveSheet()
const oRange = oWorksheet.GetRange(`A1:D${data.orders.length + 1}`)
在此板块中,循环迭代 data.orders 数组中的每个订单对象。对于每个订单,相关信息被推送到表数组的相应列中:
data.orders.forEach(order => {
table[0].push(order.id.toString())
table[1].push(order.current_total_price)
table[2].push(order.current_total_tax)
// if missing field
if (order.shipping_address === undefined) {
table[3].push(order.billing_address.address1.toString())
} else {
table[3].push(order.shipping_address.address1.toString())
}
})
具体如下:
- order.id.toString() 以字符串形式检索订单 ID 并将其推送到第一列 (table[0])。
- order.current_total_price 和 order.current_total_tax 分别推送到第二列和第三列(table[1] 和 table[2])。
- 检查送货地址 (order.shipping_address.address1)。如果存在,则将其推送到第四列(table[3])。否则,将使用帐单地址 (order.billing_address.address1)。
最后,将表数组插入到ONLYOFFICE文档中的指定范围内。SetValue 方法设置区域中单元格的值,并使用订单数据填充表:
oRange.SetValue(table)
reload()
整个宏代码如下:
(function()
{
const TOKEN = 'YOUR_API_TOKEN'
const SHOP_ID = 'YOUR_SHOP_ID'
const URL = `https://${ SHOP_ID }.myshopify.com/admin/api/2022-10/orders.json`
const LABELS = [
'order id',
'total price',
'tax',
'shipping address'
]
makeRequest()
function makeRequest() {
$.ajax({
method: 'GET',
headers: {
// 'Access-Control-Allow-Origin': '*',
'Content-Type' : 'application/json',
'X-Shopify-Access-Token': TOKEN
},
url: URL,
dataType: 'json',
}).done(successFunction)
}
function successFunction(data) {
if (data.orders === undefined) return
let table = LABELS.map(label => [label])
const oWorksheet = Api.GetActiveSheet()
const oRange = oWorksheet.GetRange(`A1:D${data.orders.length + 1}`)
data.orders.forEach(order => {
table[0].push(order.id.toString())
table[1].push(order.current_total_price)
table[2].push(order.current_total_tax)
// if missing field
if (order.shipping_address === undefined) {
table[3].push(order.billing_address.address1.toString())
} else {
table[3].push(order.shipping_address.address1.toString())
}
})
oRange.SetValue(table)
reload()
}
})();
我们希望此宏对您来说是一个用于访问和分析 Shopify 订单信息的有用工具。
但是,请注意,该宏只是您可以使用我们的 API 方法的多种方式之一。ONLYOFFICE 宏的用途极其广泛,我们欢迎您尝试并创建自己的脚本。请随时与我们分享您的想法或宏。我们始终对讨论与合作持开放态度。祝探索之路好运!
创建免费的 ONLYOFFICE 账户
在线查看并协作编辑文本文档、电子表格、幻灯片、表单和 PDF 文件。