Bestellungen aus WooCommerce in FileMaker importieren

Der 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.
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].
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].
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.
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
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.
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 99,00 Euro in unserem Onlineshop erwerben, die sich problemlos in Ihre eigenen FileMaker Datenbanklösungen integrieren läßt.
Verwandte Beiträge
- FileMaker Server Script aus FileMaker Runtime ausführen.
Mit FileMaker lassen sich problemlos Scripte entfernter FileMaker-Datenbanken starten und bei Bedarf entsprechende Parameter übergeben. Einfach die entfernte Datei als externe Datenquelle einrichten und das Script der entfernten Datenbank über den Script-Editor aufrufen. Anders verhält es sich mit einer in FileMaker Pro Advanced erstellten Runtime. Da Runtime-Lösungen nicht netzwerkfähig sind,…
- FileMaker Kurz-Tipp: Importieren ganzer Datentabellen
Wer FileMaker-Datenbanken entwickelt, wird über kurz oder lang und nicht nur einmal Datentabellen von einer Lösung in eine andere importieren wollen. Außerdem kann es vorkommen, dass Datentabellen aus anderen Datenbanksystemen wie z.B. mySQL oder anderen über ODBC ansprechbare Datenbanken übernommen werden sollen. Mit den aktuellen FileMaker-Versionen kann eine Tabelle eines…
- Update auf FileMaker Pro 13.0v9 veröffentlicht
FileMaker hat heute einige Sicherheitsupdates für FileMaker 13 veröffentlicht. In ca. zwei Wochen wird das Sicherheitsupdate auch für FileMaker 12 veröffentlicht. Das heute erschienene Update betrifft FileMaker 13 Pro/Advanced und FileMaker Server. FileMaker betont, dass die Updates auf jeden Fall in der korrekten Reihenfolge installiert werden müssen, weil anderenfalls FileMaker…
- Smartbook: Datenbankmanagement mit FileMaker Pro 11
Autor Horst-Dieter Radke bietet auf 368 Seiten eine profunde Einführung in die Arbeit mit FileMaker Pro 11 und macht dabei aus Einsteigern angehende Experten. Dabei beschäftigt sich der Autor mit diesen Themen: Datenbankgrundlagen: Was müssen die Leser über Datenbanken wissen? Datenbankentwicklung: Wie entsteht eine FileMaker-Datenbank? Datenbanken nutzen - Wie erfasst,…
Diese Seite teilen:
ERP-Software so flexibel wie Ihr Unternehmen.
Wir beraten Sie gern.
Anpassbare ERP-Software für Mac, Windows und iOS.
