Warenkorb
0
Wagen 0
Telefonische Beratung +49 (0) 441-30 43 76 40
Die auf der FileMaker-Plattform basierende ERP-Software gFM-Business, die auf Apple macOS, Windows und iOS lauffähig ist, enthält eine integrierte Onlineshop-Schnittstelle auf REST-API-Basis, mit der Kunden, Artikel und Shopbestellungen auf Knopfdruck zu gFM-Business übertragen werden können. gFM-Business unterstützt außerdem den automatischen Abgleich von Lagerbeständen mit den Artikeln des Onlineshops. Im Standardumfang werden derzeit die Shopsysteme Shopware 5.x, Gambio GX3 und WooCommerce für WordPress unterstützt.
Im Rahmen einer offenen Lizenz von gFM-Business Basic oder Professional kann die Onlineshop-Schnittstelle mit FileMaker Pro (oder -Advanced) auch um weitere Felder oder auch um ein weiteres Onlineshop-System erweitert werden. In diesem Artikel erläutern wir, wie die REST-API-basierte Onlineshop-Schnittstelle in gFM-Business aufgebaut ist und wie sie um weitere Felder oder auch um ein weiteres Shopsystem erweitert werden kann. Eine Dokumentation aller grundsätzlichen Definitionen und Standards in gFM-Business finden Sie hier.
Inhaltsverzeichnis
Die in der gFM-Business ERP-Software integrierte Onlineshop-Schnittstelle wurde strukturell einfach aufgebaut und besteht aus folgenden Komponenten:
Unter [Einstellungen > Onlineshop] können alle Onlineshops eingerichtet werden. Die dahinterstehende Tabelle ist die Tabelle „REST_API“ aus der Datei „gFMw_Stammdaten“. Wird ein neuer Onlineshop erstellt, werden alle Daten per Referenz aus der Tabelle „REST_API_Stamm“ bezogen, die sich ebenfalls in der Datei „gFMw_Stammdaten“ befindet. Wenn die Schnittstelle um ein weiteres Shopsystem erweitert wird, sollte auch in der Tabelle „REST_API_Stamm“ ein Stammdatensatz für dieses Shopsystem angelegt werden, um bei Nutzung mehrerer Onlineshops nicht jedes Mal alle Daten manuell eintragen zu müssen.
Die kleine Version gFM-Business Basic unterstützt standardmäßig nur die Verwendung eines Onlineshops. Dies kann prinzipiell auch so erweitert werden, dass auch gFM-Business Basic die Verwendung mehrerer Onlineshops erlaubt. Hierfür muß dann nur ein entsprechendes Portal zur Auswahl des Onlineshops wie in der Professional-Version implementiert werden. Alle Funktionen und Scripte unterstützen grundsätzlich auch in der Basic-Version mehrere Onlineshops und müssen für diese Funktion nicht zusätzlich erweitert werden.
Bei der Auswahl zu importierender Kunden, Artikel oder Shopbestellungen werden alle auf dem Shopserver vorhandenen Daten in einem Auswahlfenster angezeigt. Die hier angezeigten Daten werden in gFM-Business nur temporär in einer virtuellen Tabelle gespeichert und nach der Auswahl wieder verworfen. Das Konzept virtueller Tabellen wurde auf der FileMaker Konferenz 2015 von Arnold Kegebein vorgestellt. In einer virtuellen Tabelle werden eingehende Daten nicht in einzelnen Feldern, sondern nur in einem Wiederholfeld gespeichert. Die Anzahl der Wiederholungen entspricht dabei der Anzahl der in einer Tabelle anzuzeigenden Felder, ein Datensatz entspricht einem Datensatz der gelieferten Daten. Alle virtuelle Tabellen befinden sich in der Datei „gFM_Business.fmp12“.
Eine virtuelle Tabelle enthält folgende Felder (am Beispiel Artikel):
Die beiden anderen virtuellen Tabellen funktionieren prinzipiell genauso, mit dem Unterschied, dass in der Tabelle für Bestellungen nicht die Artikel-ID, sondern die Rechnungs- und Auftrags-ID und für Kunden die Kunden-ID für vorhandene Datensätze überprüft werden.
Für die Onlineshop-Schnittstelle gibt es in der Datei „gFM_Business.fmp12“ drei virtuelle Tabellen:
Damit in der gFM-Business ERP-Software nachvollzogen werden kann, welche Daten des Onlineshops den Daten in gFM-Business zugeordnet wurden, enthalten alle relevanten Tabellen folgende Felder:
Diese Felder sind in folgenden Tabellen aus gFM-Business enthalten:
Alle zur Onlineshop-Schnittstelle zugehörigen Scripte können im Suchfeld des Script-Editors unter Eingabe von „rest“ gefunden werden. Im Auslieferungszustand besteht die Schnittstelle insgesamt aus sieben Scripten:
Dieses Script dient zur Anmeldung am Server, auf dem der Onlineshop installiert wurde und wird mit den Parametern „Fremdsystem“ und „Endpunkt“ aufgerufen. Bevor eine Abfrage auf den Server des Onlineshops durchgeführt wird, muss immer zuerst dieses Anmeldescript ausgeführt werden, um sich vor der Abfrage auf dem Server anzumelden.
Fehleraufzeichnung setzen [ Ein ] AnwenderAbbruchZulassen setzen [ Aus ] # # >>>>>>>>>> SPRACHÜBERTRAGUNG Variable setzen [ $dg_001 ; Wert: SQLAusführen ( "SELECT \"Dialog_001\" FROM \"lg\" WHERE \"_fk_ScriptName\"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID\"=" & prf::_Sprache_ID ; "" ; "" ) ] Variable setzen [ $dg_002 ; Wert: SQLAusführen ( "SELECT \"Dialog_002\" FROM \"lg\" WHERE \"_fk_ScriptName\"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID\"=" & prf::_Sprache_ID ; "" ; "" ) ] Variable setzen [ $dg_003 ; Wert: SQLAusführen ( "SELECT \"Dialog_003\" FROM \"lg\" WHERE \"_fk_ScriptName\"='" & Hole(ScriptName) & "' AND \"_pk_Sprache_ID\"=" & prf::_Sprache_ID ; "" ; "" ) ]
Setzt die Fehleraufzeichnung und überträgt die Texte aus der Sprachtabelle für den Fehlerdialog, der angezeigt wird, falls die Anmeldung am Server fehl schlägt.
Variable setzen [ $fremdsystem ; Wert: StringSpalten(Hole(ScriptParameter); 1) ] Variable setzen [ $endpunkt ; Wert: StringSpalten(Hole(ScriptParameter); 2) ] Variable setzen [ $api_url ; Wert: SQLAusführen ( "SELECT \"API_URL\" FROM \"REST_API\" WHERE \"Name_Fremdsystem\"='" & $fremdsystem & "'" ; "" ; "" ) ] Variable setzen [ $login ; Wert: SQLAusführen ( "SELECT \"Consumer_Key\" FROM \"REST_API\" WHERE \"Name_Fremdsystem\"='" & $fremdsystem & "'" ; "" ; "" ) ] Variable setzen [ $pass ; Wert: SQLAusführen ( "SELECT \"Consumer_Secret\" FROM \"REST_API\" WHERE \"Name_Fremdsystem\"='" & $fremdsystem & "'" ; "" ; "" ) ]
Setzen aller notwendigen Variablen. Variablen für das Fremdsystem (Name des Fremdsystems, z.B. „WooCommerce“) und den Endpunkt (z.B. „Endpunkt für Artikel“) werden als Script-Parameter aus dem Userdialog übergeben. Die Variablen $api_url, $login und $pass werden aus der Tabelle „REST_API“ des eingerichteten Onlineshops aus der Datei „gFMw_Stammdaten.fmp12“ übernommen.
Alle weiteren Befehle dienen zur Anmeldung an einem Onlineshopsystem mit RESTful-API und ist i.d.R. für alle Systeme gleich. Das folgende Teilscript entspricht weitgehend dem mitgelieferten Beispiel des MBS FileMaker Plugin.
Mit diesem Script wird das Auswahlfenster angezeigt, mit dem anhand der auf dem Onlineshop vorhandenen Daten die zu importierenden Kunden ausgewählt werden können. Dieses Script kann mit folgenden Script-Parametern aufgerufen werden:
Mit diesem Script wird das Auswahlfenster angezeigt, mit dem anhand der auf dem Onlineshop vorhandenen Daten die zu importierenden Bestellungen ausgewählt werden können. Dieses Script kann mit folgenden Script-Parametern aufgerufen werden:
Mit diesem Script wird das Auswahlfenster angezeigt, mit dem anhand der auf dem Onlineshop vorhandenen Daten die zu importierenden Artikel ausgewählt werden können. Dieses Script kann mit folgenden Script-Parametern aufgerufen werden:
Dieses Script enthält alle Teilscripte für den Import und Export von Daten in Zusammenang mit Gambio-GX3-basierten Onlineshops. Alle Befehle werden in diesem Script über den ersten Parameter „Datenart“ gesteuert, der folgende Werte annehmen kann:
Dieses Script enthält alle Teilscripte für den Import und Export von Daten in Zusammenang mit WooCommerce-basierten Onlineshops. Dieses Script enthält die gleichen Befehlsparameter wie das zuvor beschriebene Script für Gambio-Onlineshops.
Dieses Script enthält alle Teilscripte für den Import und Export von Daten in Zusammenang mit Shopware-basierten Onlineshops. Dieses Script enthält die gleichen Befehlsparameter wie das zuvor beschriebene Script für Gambio-Onlineshops.
In den Schnittstellenscripten „REST_Shopsystem“ befinden sich alle Teilscripte, die für den Import von Daten aus dem Onlineshop erforderlich sind. In jedem relevanten Teilscript werden die vom Shop abzufragenden Daten zunächst in einer Variable gespeichert, z.B.:
Variable setzen [$artikel_nr ; Wert: MBS("JSON.GetStringValue"; MBS("JSON.GetObjectItem"; $objekt; "productModel" )) ]
Beim Setzen dieser Variable wird mit Funktionen des MBS-Plugins eine Abfrage auf das Feld [productModel] des Onlineshops durchgeführt. In diesem Fall handelt es sich um ein Textfeld, daher wird die Funktion „JSON.GetStringValue“ genutzt. Bei Zahlenfeldern wird entweder die Funktion „JSON.GetIntegerValue“ oder „JSON.GetDoubleValue“ eingesetzt. Die Datentypen sollten strikt unterschieden werden, weil die Funktion sonst nicht ausgeführt werden kann. Nachdem die Variablen für alle Felder gesetzt wurden, werden die in den Variablen gespeicherten Daten mit der MBS-Funktion „FM.InsertRecord“ in die Tabellen von gFM-Business geschrieben.
Um weitere Felder aus dem Onlineshop zu importieren, genügt es, einfach weitere Variablen für die gewünschten weiteren Felder zu erstellen und die Funktion „FM.InsertRecord“ für das Schreiben der Daten in die gFM-Business-Tabellen entsprechend zu erweitern.
Für alle Funktionen werden die aus dem Shop gelieferten Daten vollständig in der Variable $json gespeichert. Diese Variable enthält also immer den vollständigen JSON-Datenstream, der aus dem Onlineshop geliefert wurde. Die Variable $objekt enthält je nach Definition nur einen Teil der gelieferten Daten, also zum Beispiel einen Datensatz. Wenn Sie weitere Tabellen der REST-API-Schnittstelle aus dem Onlineshop oder auch aus Shop-Extensions hinzufügen möchten, müssen Sie innerhalb eines Importscriptes eine neue Abfrage mit dem jeweiligen Endpunkt auf die Schnittstelle durchführen. Der Übersichtlichkeit halber können Sie das JSON-Ergebnis dann auch in einer eigenen Variable speichern, z.B. „$json_extension_1“ und „$objekt_extension_1“.
Das Hinzufügen eines neuen und bisher von gFM-Business noch nicht unterstützten Onlineshops ist prinzipiell recht einfach und besteht aus folgenden Schritten:
Bei bestehenden Systemen empfehlen wir, für die Erweiterung der Shopschnittstelle das Produktivsystem zu duplizieren und die Entwicklung zunächst auf einem Testsystem durchzuführen, um mit späteren Testläufen nicht den echten Datenbestand zu gefährden.
Gerne stehen wir oder einer unserer Servicepartner Ihnen bei der Erweiterung der Onlineshop-Schnittstelle im Rahmen einer offenen Lizenz auch persönlich zur Verfügung. Dabei können wir Ihnen entweder die vollständige gewünschte Erweiterung implementieren oder Ihnen bzw. Ihrem Entwickler ein entsprechendes Coaching für die Erweiterung der Schnittstelle oder zu anderen Fragen rund um die gFM-Business ERP-Software anbieten. Sprechen Sie uns gerne an!
Mehr Informationen zur offenen Lizenz der gFM-Business ERP-Software
Jede neu erworbene Lizenz enthält ab dem 1. Februar 2020 ein Upgrade auf die künftige Version 5.0 der gFM-Business ERP-Software. Dieses Upgrade berechtigt Sie für den Bezug aller künftigen Updates von gFM-Business 5.
Seit Beginn der Testphase des CRM- und Warenwirtschaftssystems gFM-Business konnten wir viele Wünsche über weitere künftige Funktionen für gFM-Business registrieren. Für die optimale Strukturierung der Entwicklung neuer Funktionen und Module möchten wir Ihnen die Möglichkeit geben, die Reihenfolge der Entwicklung künftiger Funktionen zu beeinflussen und freuen uns über Ihre Stimme…
Heute haben wir die Unternehmenssoftware gFM-Business in aktualisierter Version 2.7.5 veröffentlicht. Die Fakturierung aller Versionen verfügt nun in jeder Belegart über eine Belegleiste am unteren Rand der Eingabemaske, auf der alle verbundenen Belege angezeigt und per Mausklick aufgerufen werden können. Für Angebote, Aufträge und Lieferscheine gibt es einen neuen "Erledigungsstatus",…
Alle Versionen von gFM-Business 4.0 verfügen über eine neue Schnittstelle zu Onlineshop-Systemen, mit der Kunden, Bestellungen und Artikel per Mausklick aus dem Onlineshop in die ERP-Software übertragen werden können. Der Import erfolgt dabei über moderne REST-API-Schnittstellen und steht ab sofort für Shopware-5-, Gambio-GX3- und WooCommerce-Onlineshops zur Verfügung. gFM-Business free und Basic unterstützen…
Hinzufügen von {{itemName}} zum Warenkorb
Hinzugefügt {{EinkaufsName}} zum Warenkorb