Links überspringen

Bestellungen aus WooCommerce in FileMaker importieren

FileMaker WooCommerce Schnittstelle

WooCommerce Schnittstelle für FileMakerDer WooCommerce Onlineshop erfreut sich nicht zuletzt Dank der enorm hohen Verbreitung von WordPress-basierten Webseiten immer größerer Beliebtheit. Für die WooCommerce-Plattform sind heute unzählige Plugins zur Erweiterung verfügbar, und es ist heute kein Problem mehr, WooCommerce für Deutschland rechtssicher einzurichten. WooCommerce verfügt, wie viele andere Onlineshop- und Websysteme ebenfalls, über eine RESTful API, über die auf Daten des Onlineshops zugegriffen werden kann. In diesem Beitrag stellen wir eine Anleitung mit einer kleinen FileMaker-Lösung vor, mit der Bestellungen aus einem WooCommerce Onlineshop in eine FileMaker-Datenbank importiert werden können. Die Lösung bedient sich dabei der WooCommerce RESTful API v3 und wandelt den gelieferten JSON-Datenstrom in für FileMaker lesbare Daten um. Um die Programmierung der Schnittstelle zu erleichtern, wird für die Anmeldung an der RESTful API und für das Auslesen der JSON-Daten das MBS FileMaker Plugin von Monkeybread Software verwendet. Die Beispieldatenbank ist exemplarisch und kann prinzipiell auch für andere Onlineshopsysteme wie z.B. Shopware, Magento oder Gambio GX3 eingesetzt werden.

Anmeldung an der WooCommerce RESTful API

Um Daten von einem WooCommerce-Onlineshop auslesen zu können, muß zunächst die RESTful API in WooCommerce aktiviert werden. Diese Einstellung kann im WordPress-Backend unter [WooCommerce > Einstellungen] im Register [API] vorgenommen werden.

REST-API in WooCommerce aktivieren

Klicken Sie auf die Schaltfläche [Änderungen speichern], um die Aktivierung der Schnittstelle zu bestätigen. Im nächsten Schritt erzeugen Sie einen neuen API-Schlüssel. Klicken Sie dazu auf das Register [Schlüssel/Anwendungen] und daraufhin auf die Schaltfläche [Schlüssel hinzufügen].

WooCommerce API Key erstellen

Im Feld [Beschreibung] können Sie eine beliebige Beschreibung hinzufügen. Wählen Sie einen Benutzer aus, dem der Zugriff auf die WooCommerce RESTful API gestattet werden soll. Je nach dem, ob der Benutzer auch Daten über die Schnittstelle in das Shopsystem schreiben soll, können Sie entsprechende Berechtigungen vergeben. Für die vorgestellte FileMaker-Lösung genügt die Berechtigung „Lesen“. Klicken Sie daraufhin auf die Schaltfläche [API-Schlüssel erstellen].

WooCommerce API-Schlüssel

Notieren Sie sich nun den Inhalt der beiden Felder „Schlüssel (Consumer Key)“ und „Geheimis (Consumer Secret)“. Dieser Schritt ist wichtig, denn Sie können den Inhalt dieser Felder in Zukunft nicht mehr einsehen, da die Schlüsseldaten maskiert gespeichert werden.

Schnittstelle in FileMaker zur WooCommerce REST API

Mit der in diesem Beitrag vorgestellten Beispiellösung können Shopbestellungen und verbundene Kundendaten wie Rechnungs- und Lieferanschrift aus einem WooCommerce Onlineshop in eine FileMaker-Datenbank übertragen werden. Die Beispieldatei (oder eigene Lösung) kann problemlos um weitere Funktionen und Tabellen erweitert werden. Folgende Endpunkte stellt WooCommerce für den Zugriff auf die RESTful API zur Verfügung:

  • Coupons
  • Customers
  • Orders (wird in der Beispieldatei genutzt)
  • Order Notes
  • Refunds
  • Products
  • Product attributes
  • Product attribute terms
  • Product categories
  • Product shipping classes
  • Product tags
  • Reports
  • Tax rates
  • Tax classes

Mit der WooCommerce RESTful API können also auch noch viele weitere Datenquellen mit FileMaker ausgelesen und/oder bearbeitet werden wie beispielsweise Gutscheine, Produkte, Produktattribute oder auch Steuerklassen. In unserer FileMaker-Beispiellösung verwenden wir den Endpunkt „Orders“, um Bestellungen aus WooCommerce in FileMaker zu importieren.

Beispiellösung benötigt das MBS FileMaker Plugin

Für die Entwicklung der Schnittstelle wurde in der Beispieldatei das MBS FileMaker Plugin von Monkeybread Software verwendet. Das Plugin bietet alle Funktionen, die für eine Schnittstelle mit RESTful API erforderlich sind. Alternativ könnten auch Funktionen des kostenlos erhältlichen Base Elements Plugin genutzt werden, wenn die Software entsprechend umprogrammiert wird.

Voreinstellungen in der FileMaker-Lösung

Die Testversion für die FileMaker-Lösung der Schnittstelle zu einem WooCommerce Onlineshop können Sie hier herunterladen. Die Lösung liegt im .fmp12-Format für FileMaker 13 bis 15 vor und benötigt das MBS FileMaker Plugin mindestens in Version 4.4. Nachdem Sie das Zip-Archiv entpackt und die Lösung mit FileMaker gestartet haben, müssen Sie zunächst die Daten für die RESTful-API Ihres WooCommerce Onlineshops eintragen.

FileMaker Schnittstelle zur WooCommerce REST-API

Tragen Sie alle Daten in die mit gelber Farbe hinterlegten Felder ein:

  • API-URL – URL Ihres Servers und die Endung /wp-api/v3
  • Endpunkt – Standard: /orders
  • Startobjekt – Standard: orders
  • Consumer-Key – Consumer-Key, den Sie im WordPress-Backend erstellt und notiert haben
  • Consumer-Secret – Consumer-Secret, das Sie im WordPress-Backend erstellt und notiert haben

Wenn alle Daten korrekt eingetragen wurden, werden nach Klick auf die Schaltfläche [Datenimport] alle Bestellungen des angegebenen WooCommerce Onlineshops und die zugehörigen Kundendaten importiert.

Aufbau der FileMaker Beispieldatenbank

Die Beispieldatenbank für den Import von Shopbestellungen ist einfach aufgebaut und enthält folgende Datentabellen:

  • Bestellungen – Stammdatensatz einer Bestellung, enthält folgende Felder:
    • __ORDERS (Daten aus dem Startobjekt „orders“, dient nur zur Veranschaulichung)
    • _Bestellnummer (Bestellnummer aus WooCommerce)
    • _ID_Fremdsystem (Primärschlüssel [post_id] aus WooCommerce)
    • _pk_Bestellung_ID (Primärschlüssel)
    • Bemerkungen (Bemerkungen aus WooCommerce)
    • Bestellstatus
    • Betrag_Gesamt_brutto
    • Betrag_Gesamt_netto
    • Betrag_MwSt
    • Betrag_MwSt_Positionen
    • Betrag_MwSt_Versandkosten
    • Betrag_Rabatt
    • Betrag_Versandkosten
    • Betrag_Zwischensumme
    • Datum_Bestellung
    • E_Mail
    • JSON_Ausgabe (Globales Feld für Ausgabe der JSON-Daten, wird im Script verwendet)
    • Kunden_Nr_WC
    • LiAdr_Anschrift (Lieferanschrift)
    • LiAdr_Firma
    • LiAdr_Ländercode
    • LiAdr_Name
    • LiAdr_Ort
    • LiAdr_PLZ
    • LiAdr_Vorname
    • Mehrwertsteuersatz
    • ReAdr_Anschrift (Rechnungsanschrift)
    • ReAdr_Firma
    • ReAdr_Ländercode
    • ReAdr_Name
    • ReAdr_Ort
    • ReAdr_PLZ
    • ReAdr_Vorname
    • Status_bezahlt
    • Telefon
    • Versandmethode
    • Währung
    • Zahlungsmethode
  • PositionenTabelle von Bestellpositionen, enthält folgende Felder:
    • _Bestellnummer (Bestellnummer aus WooCommerce)
    • _pk_Position_ID (Primärschlüssel)
    • Anzahl
    • Artikel_Nr
    • Artikelbezeichnung
    • Betrag_MwSt
    • Betrag_netto
    • id (Primärschlüssel aus WooCommerce)
    • product_id (ID des Produktes in WooCommerce)
  • Einstellungen – Einstellungen zur WooCommerce RESTful API
    • Fremdsystem (Global) – Name des Fremdsystems (Nur verwendet bei Einsatz mehrerer Fremdsysteme)
    • rf_URL (Global) – URL des Servers mit Pfad zur API
    • rf_Benutzer (Global) – Benutzername/Consumer Key für RESTful API
    • rf_Passwort (Global) – Passwort/Consumer Secret
    • rf_Status_SSL (Global) – Status, ob SSL verwendet werden soll oder nicht
    • rf_Endpunkt (Global) – Endpunkt der RESTful API
    • rf_Startobjekt (Global) – Startobjekt innerhalb des Endpunktes

Die Tabellen „Bestellungen“ und „Positionen“ sind über den Schlüssel „_Bestellnummer“ miteinander verknüpft. Für die Integration in eigene FileMaker-Lösungen können die Felder in diesen Tabellen beliebig umbenannt werden. Die Tabelle „Einstellungen“ enthält keine Verknüpfung, weil alle Felder global definiert wurden. Wenn mehrere Drittsysteme mit RESTful API angebunden werden sollen, ist es empfehlenswert, die Felder nicht als globale Felder zu definieren und einen Primärschlüssel zur Auswahl des Fremdsystems hinzuzufügen.

Anmeldung an der RESTful API

Die FileMaker Beispiellösung enthält zwei Teilscripte, mit denen die Bestelldaten aus dem Onlineshop in FileMaker importiert werden können. Im Script „ts.Query_REST_API“ erfolgt zunächst die Anmeldung am Server. Dazu werden mit dem MBS-Plugin entsprechende cURL-Funktionen mit folgendem Ablauf aufgerufen:

  • Neue cURL-Session öffnen
  • URL für REST-API setzen
  • Logindaten setzen
  • Header-Option setzen
  • SSL setzen
  • Log-Messages einschalten
  • Abfrage ausführen mit Meldung bei Fehler
  • Ergebnis in das Feld [Bestellungen::JSON_Ausgabe] schreiben
  • cURL-Session schließen, Cleanup

FileMaker Script: 'ts.Query_REST_API'

JSON-Daten der Schnittstelle auslesen

Mit dem zweiten Teilscript „ts.Parse_JSON_Bestellungen_WC“ werden die vom Server gelieferten JSON-Daten ausgelesen und in die einzelnen Felder der Tabellen „Bestellungen“ und „Positionen“ eingetragen. Dabei werden zunächst alle Daten aus dem Startobjekt „orders“ (siehe Feld „Startobjekt“ in den Einstellungen) in die Variable $ordersJSON geschrieben. Darauf folgt eine Haupt-Ausführungsschleife zum Auslesen aller Bestellungen und eine weitere Ausführungsschleife für den Import aller Positionen zu einer Bestellung. Ein Zugriff auf den Server erfolgt in diesem Script nicht mehr.

FileMaker Teilscript 'Parse JSON'

Alle Felder der Lieferanschrift (shipping_address), Rechnungsanschrift (billing_address) und Belegpositionen (line_items) befinden sich in einer Baumstruktur und müssen mit dem Befehl:

MBS( "JSON.GetObjectItemTree"; json; names )

aus dem entsprechenden Baum ausgelesen werden. Alle anderen Felder können ganz normal mit den Funktionen MBS( „JSON.GetStringValue“; json ) oder MBS( „JSON.GetIntegerValue“; json ) ausgelesen werden.

Download FileMaker Beispiel-Datenbank

Die FileMaker-Beispieldatenbank können Sie hier herunterladen und mit einem beliebigen WooCommerce Onlineshop testen. Die öffentliche Version ist für die Bearbeitung von Felddefinitionen und Scripten gesperrt. Sie möchten mit der Beispiellösung sofort starten und die Lösung an Ihre eigenen Anforderungen anpassen? Dann nehmen Sie gerne Kontakt mit uns auf.

Schreiben Sie einen Kommentar zu Markus Schall Antworten abbrechen

  1. Das klingt nachdem, was ich suche. Ist denn der umgekehrte Weg auch möglich? Also Änderungen zurück in die mysql-DB schreiben?

    1. Die in der Beispiellösung verwendeten Plugins unterstützen selbstverständlich auch den umgekehrten Weg, mit dem Daten über die RESTful API in die WooCommerce-Datenbank geschrieben werden können.

  2. Nach der veröffentlichte FMP 16 mit integrierter RESTful API und Json, wäre es jetzt möglich mit WC zuverbinden ohne den MBC Plugin?

    1. Ja, mit FileMaker 16 sollte das Ganze nun auch ohne Nutzung des MBS Plugins möglich sein. Die Lösung läuft dann aber eben nur auf FileMaker 16 und nicht mit älteren Versionen.

      1. Sehr interessant, wird es notwendig sein Ihr Beispiel zu aktualisieren, um dies zu berücksichtige?

        1. Ja, wenn die Funktionen nativ mit den neuen FileMaker-16-Funktionen laufen sollen, müssen die MBS-basierten Funktionen entsprechend umprogrammiert werden.

          1. Hast du vor eine native FMP 16 version ohne MBS plugin zu realisieren?
            wenn ja bin ich sehr interessiert

          2. Nein, ich habe nicht vor, eine native FileMaker-Version dieser Lösung zu entwickeln, da ich für solche Funktionen grundsätzlich das MBS-Plugin nutze.

  3. Hallo, gibt es Erfahrungen ob die aktuelle Demo auch mit der aktuellen Woocommerce Version und fm 19 läuft? Danke

    1. Hallo, mit FileMaker 19 sollte die Software kein Problem haben – hier könnte man das Ganze aber wahrscheinlich auch mit Bordmitteln lösen, dann benötigt man nicht mehr zwingend das MBS FileMaker Plugin. In Bezug auf den Shop ist die Software nicht mehr auf dem neuesten Stand und muß ggf. für neuere WooCommerce-Versionen etwas angepaßt werden. Das Grundprinzip ändert sich dadurch jedoch nicht.

    2. Moin! Vom Grundprinzip her hat sich seit der Entwicklung bis heute nichts geändert, außer daß evtl. in der WooCommerce-Schnittstelle noch weitere Felder hinzugekommen sind.

Diese Seite teilen:

ERP-Software so flexibel wie Ihr Unternehmen.
Wir beraten Sie gern.

Anpassbare ERP-Software für Mac, Windows und iOS.

Sie sind hier: WooCommerce-Bestellungen per RESTful API in FileMaker importieren