Bestellungen aus WooCommerce in FileMaker importieren

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
  • Positionen – Tabelle 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 können Sie eine offene Lizenz der Beispiellösung mit vollem Administratorzugriff zum Preis von 59,00 Euro in unserem Onlineshop erwerben, die sich problemlos in Ihre eigenen FileMaker Datenbanklösungen integrieren läßt.

FileMaker Beispieldatei jetzt kaufen

Diesen Beitrag bewerten:

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Bisher noch keine Bewertungen vorhanden)
Loading...

Über den Autor

Markus Schall
Entwicklung von FileMaker-Datenbanken seit 1994, Modifikation und Erweiterung von FileMaker-Lösungen, Konvertierung von FileMaker-Datenbanken von .fm, .fp3, .fp5 (FileMaker 2-6) oder .fp7 (FileMaker 7-11) zu .fmp12 (FileMaker 12-15), Schnittstellen zu Drittsystemen wie Onlineshops, CMS oder andere Datenbanken. Entwicklung individueller FileMaker-Datenbanksysteme auf Basis des gFM-Business-Frameworks mit persönlicher Beratung aus Oldenburg. Betreiber des Online-Fachportals goFileMaker.de, Entwickler des CRM- und Warenwirtschaftssystems gFM-Business. Mitglied in der FileMaker Business Alliance, FileMaker Developers Subscription und FMM Experte. Gewinner eines FMM Award 2011, vergeben durch das FileMaker Magazin.

2 Kommentare

  1. Fabian

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

    1. Markus Schall (Beitrag Autor)

      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.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.