Verwenden Sie das ONLYOFFICE-Makro, um Bestellungen auf Shopify zu verfolgen

30 Juni 2023By Vlad

In der heutigen Zeit ist der elektronische Geschäftsverkehr ein wertvolles Instrument, um geografische Grenzen zu überwinden und einen konstanten Einkommensstrom zu erzielen. Daher ist die Verwaltung und Verfolgung von Bestelldaten ein wichtiger Bestandteil einer erfolgreichen Geschäftsstrategie. In diesem Artikel werden wir ein Makro erstellen, das Bestelldaten aus Shopify abruft und in eine Tabellenkalkulation einfügt.

Hinweis! Dieses Makro funktioniert nur in der Desktop-App von ONLYOFFICE.

Use ONLYOFFICE macro to track orders on Shopify

Über Shopify

Shopify ist eine führende E-Commerce-Plattform, die es Einzelpersonen und Unternehmen ermöglicht, ihre Online-Shops zu erstellen und zu verwalten. Es bietet eine umfassende Reihe von Tools und Funktionen, die Händlern helfen, Produkte zu verkaufen, den Bestand zu verwalten, Bestellungen zu bearbeiten und ihre Schaufenster anzupassen.

Die Shopify-API dient als leistungsstarke Schnittstelle, die es Entwicklern ermöglicht, mit Shopify zu interagieren und die Funktionalität von Shopify zu erweitern. Sie bietet eine breite Palette von Methoden und Endpunkten, die es Entwicklern ermöglichen, ihre eigenen Anwendungen, Systeme oder Dienste nahtlos in Shopify-Shops zu integrieren.

Erstellung des Makros

Zunächst deklarieren wir die folgenden Variablen:

 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'
    ]

Die Variablen TOKEN und SHOP_ID enthalten Ihren aktuellen Shopify-API Token bzw. Ihre Shop-ID. Die Variable URL enthält die vollständige URL für die API-Anfrage zum Abrufen von Bestellungen aus dem Shopify-Shop. Die LABEL-Variable ist ein Array mit Bezeichnungen für die Tabellenspalten. Sie gibt die Reihenfolge an, in der die Daten in der Tabelle angezeigt werden sollen. Jedes Label entspricht einer Spalte in der Tabelle.

Dann binden wir die Funktion makeRequest ein, um eine GET-Anfrage an den angegebenen Shopify-API Endpunkt zu starten:

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)
    }

In dieser $.ajax-Anforderung legen wir die erforderlichen Header fest, darunter den Inhaltstyp und das Shopify-API Token. Außerdem geben wir den Datentyp und die URL als Shopify-API Endpunkt für den Abruf von Bestellungen an.

Danach verarbeiten wir die Antwort mit 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)

Sie erhält data als Parameter, der die Antwort mit den Bestellinformationen darstellt. In der ersten Zeile der Funktion wird geprüft, ob die Eigenschaft data.orders undefiniert ist. Ist dies der Fall, so bedeutet dies, dass die Antwort keine Bestellungen enthält und die Funktion vorzeitig zurückkehrt. Dann verwenden wir das Array LABELS und die Methode map, um ein neues Array mit jedem Label als separate Zeile in der Tabelle zu erstellen. Jedes Etikett wird in einem Array gekapselt, um eine einzelne Zelle in der Tabelle darzustellen:

  function successFunction(data) {
        if (data.orders === undefined) return
        
        let table = LABELS.map(label => [label])
 
        })

Danach rufen wir das aktive Blatt im ONLYOFFICE-Dokument auf und definieren einen Bereich, in den die Auftragsdaten eingefügt werden. Der Bereich erstreckt sich von den Zellen A1 bis D, gefolgt von der Anzahl der Bestellungen plus eins: data.orders.length + 1 wird verwendet, um die Etikettenzeile in der Tabelle zu berücksichtigen.

 const oWorksheet = Api.GetActiveSheet()
 const oRange = oWorksheet.GetRange(`A1:D${data.orders.length + 1}`)

In diesem Block iteriert eine Schleife über jedes Auftragsobjekt im Array data.orders. Für jede Bestellung werden die relevanten Informationen in die entsprechende Spalte des Tabellenarrays übertragen:

 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())
            }
        })

Schauen wir uns das genauer an:

  • order.id.toString() ruft die Auftragskennung als String ab und fügt sie in die erste Spalte ein (table[0]).
  • order.current_total_price und order.current_total_tax werden in die zweite und dritte Spalte verschoben (table[1] and table[2]).
  • Die Lieferadresse (order.shipping_address.address1) wird geprüft. Wenn diese vorhanden ist, wird sie in die vierte Spalte (table[3]) verschoben. Andernfalls wird die Rechnungsadresse (order.billing_address.address1) verwendet.

Schließlich wird das Tabellen-Array in den angegebenen Bereich im ONLYOFFICE-Dokument eingefügt. Die Methode SetValue setzt die Werte der Zellen im Bereich und füllt die Tabelle mit den Auftragsdaten:

 oRange.SetValue(table)
 reload()

Der gesamte Makrocode lautet wie folgt:

(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()
    }
})();

Use ONLYOFFICE macro to track orders on Shopify

Wir hoffen, dass Sie dieses Makro als nützliches Werkzeug für den Zugriff auf und die Analyse von Shopify-Bestellinformationen betrachten werden.

Dieses Makro ist jedoch nur eine von vielen Möglichkeiten, wie Sie unsere API-Methoden nutzen können. ONLYOFFICE-Makros sind äußerst vielseitig, und wir laden Sie ein, zu experimentieren und Ihre eigenen Skripte zu erstellen. Sie können uns gerne Ihre Ideen oder Makros mitteilen. Wir sind immer offen für Diskussionen und Zusammenarbeit. Wir wünschen Ihnen viel Erfolg bei Ihren Versuchen!

Erstellen Sie Ihr kostenloses ONLYOFFICE-Konto

Öffnen und bearbeiten Sie gemeinsam Dokumente, Tabellen, Folien, Formulare und PDF-Dateien online.