Use a macro ONLYOFFICE para rastrear pedidos na Shopify
Neste artigo, construiremos uma macro que recupera os dados do pedido da Shopify e os insere em uma planilha.
Observação! A macro só está operacional dentro da versão desktop do ONLYOFFICE editors.
Sobre Shopify
Shopify é uma plataforma líder de comércio eletrônico que permite que indivíduos e empresas criem e gerenciem suas lojas online. Ele fornece um conjunto abrangente de ferramentas e recursos para ajudar os comerciantes a vender produtos, gerenciar estoques, processar pedidos e personalizar suas vitrines.
A API da Shopify funciona como uma interface poderosa que permite aos desenvolvedores interagir e ampliar a funcionalidade da Shopify. Ele fornece uma ampla gama de métodos e terminais que permitem aos desenvolvedores integrar perfeitamente seus próprios aplicativos, sistemas ou serviços com as lojas da Shopify.
Construindo a macro
Primeiro declaramos as seguintes variáveis:
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'
]
As variáveis TOKEN e SHOP_ID contêm o token real da API da Shopify e o ID da loja, respectivamente. A variável de URL contém o URL completo da solicitação de API para recuperar pedidos da loja da Shopify. A variável LABEL é um array contendo rótulos para as colunas da tabela. Especifica a ordem em que os dados serão exibidos na planilha. Cada rótulo corresponde a uma coluna na tabela.
Em seguida, incorporamos a função makeRequest para iniciar uma solicitação GET para o endpoint designado da API da Shopify:
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)
}
Nesta solicitação $.ajax , definimos os cabeçalhos necessários, incluindo o tipo de conteúdo e o token da API da Shopify. Também especificamos o tipo de dados e a URL como ponto de extremidade da API da Shopify para buscar pedidos.
Depois disso, tratamos a resposta com o 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)
Leva como parâmetro dados, que representam a resposta contendo as informações do pedido. A primeira linha da função verifica se a propriedade data.orders está indefinida. Se for, significa que não há ordens na resposta, então a função retorna antecipadamente. Em seguida, usamos o array LABELS e o método map para criar um novo array com cada rótulo como uma linha separada na tabela. Cada rótulo é encapsulado em uma matriz para representar uma única célula na tabela:
function successFunction(data) {
if (data.orders === undefined) return
let table = LABELS.map(label => [label])
})
Após isso recuperamos a planilha ativa no documento ONLYOFFICE e definimos um intervalo onde serão inseridos os dados do pedido. O intervalo é definido para abranger as células A1 a D, seguido pelo número de pedidos mais um. O data.orders.length + 1 é usado para contabilizar a linha de rótulos na tabela:
const oWorksheet = Api.GetActiveSheet()
const oRange = oWorksheet.GetRange(`A1:D${data.orders.length + 1}`)
Nesse bloco, um loop itera sobre cada objeto de pedido na matriz data.orders. Para cada pedido, as informações relevantes são colocadas na coluna correspondente do array da tabela:
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())
}
})
Vamos olhar mais de perto:
- order.id.toString() recupera o ID do pedido como uma string e o coloca na primeira coluna (tabela[0]).
- order.current_total_price e order.current_total_tax são colocados na segunda e terceira colunas (table[1] e table[2]), respectivamente.
- O endereço de entrega (order.shipping_address.address1) é verificado. Se existir, é enviado para a quarta coluna (tabela[3]). Caso contrário, o endereço de cobrança (order.billing_address.address1) é usado.
Por fim, a matriz da tabela é inserida no intervalo especificado no documento ONLYOFFICE. O método SetValue define os valores das células do intervalo, preenchendo a tabela com os dados do pedido:
oRange.SetValue(table)
reload()
Todo o código da macro é o seguinte:
(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()
}
})();
Esperamos que esta macro seja uma ferramenta útil para acessar e analisar as informações de pedidos da Shopify.
No entanto, observe que essa macro é apenas uma das muitas maneiras de usar nossos métodos de API. As macros do ONLYOFFICE são extremamente versáteis e convidamos você a experimentar e criar seus próprios scripts. Sinta-se à vontade para compartilhar suas ideias ou suas macros conosco. Estamos sempre abertos à discussão e cooperação. Boa sorte em seus esforços exploratórios!
Links úteis
Exemplos de macros do ONLYOFFICE
Obtenha informações de endereço detalhadas com a macro ONLYOFFICE
Crie sua conta gratuita no ONLYOFFICE
Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.