Warenkorb
0
Wagen 0
Telefonische Beratung +49 (0) 441-30 43 76 40
Viele Betreiber von Onlineshops pflegen heute neben dem reinen Onlineshop auch Blogs, die oftmals auf dem beliebten Blog-System WordPress basieren. Ein Blog dient hierbei in der Regel zur Generierung neuer Besucher, die über die meist aktuellen Inhalte des Blogs aus Suchmaschinen auf den Blog gelangen. Letztlich möchte der Shopbetreiber aber nicht nur neue Besucherströme generieren, sondern vor allem auch neue Umsätze. Der traditionelle Weg besteht darin, Inhalte oder Artikel des Onlineshops auf dem Blog in den Artikeln oder über klassische Bannerwerbung zu verlinken. Ein anderer und neuer Ansatz ist, direkt auf dem Blog einen Onlineshop einzurichten, in dem die Besucher des Blogs direkt Produkte kaufen können, ohne den Blog verlassen zu müssen. Mit wpShopGermany ist für WordPress ein günstiges Onlineshop-Plugin erhältlich, das in deutscher Sprache vorliegt und den Ansprüchen des deutschen Markes gerecht wird. Das Plugin ist bereits ab 18,95 Euro in einer Light-Version und für 99,99 Euro als Enterprise-Version für beliebig viele WordPress-Blogs erhältlich. In diesem Artikel wird erläutert, wie die Produkte aus dem Onlineshop, in diesem Fall xt:Commerce, ihren Weg in das WordPress-Shopsystem finden. Als Schnittstelle wird für diesen Zweck eine FileMaker-Datenbank genutzt.
Im Artikel FileMaker und MySQL am Beispiel xt:Commerce wurde bereits erläutert, wie in eine FileMaker-Datenbank eine Schnittstelle zum Onlineshopsystem xt:Commerce integriert werden kann. Für diesen Zweck wurde eine ODBC-Datenquelle zur MySQL-Datenbank von xt:Commerce eingerichtet, über die ein voller Zugriff auf alle Datentabellen des Onlineshops zur Verfügung steht. In diesem Artikel wird davon ausgegangen, daß eine Datenbank existiert, die die Tabellen und Dateninhalte der xt:Commerce-Datenbank enthält. Wie die interne Verknüpfung und der Beziehungsgraph einer solchen FileMaker-Datenbank aussehen kann, wurde in diesem Artikel auf xtc:load beschrieben. So könnte eine FileMaker-Lösung mit Integration von Artikeln aus xt:Commerce aussehen:
Um eine FileMaker-Datenbank um eine Schnittstelle zum WordPress-Shopsystem wpShopGermany zu erweitern, ist eine zusätzliche ODBC-Datenquelle zur MySQL-Datenbank von WordPress erforderlich. Diese wird prinzipiell genauso eingerichtet wie im erstgenannten Artikel beschrieben. Nach der Einrichtung der ODBC-Datenquelle besteht voller Zugriff auf die Datentabellen von WordPress und vom wpShopGermany Plugin. Dieser Artikel behandelt lediglich den Export reiner Produktdaten ohne Produktvarianten oder Attribute. Alle dynamischen Daten von wpShopGermany werden in folgenden Datentabellen gespeichert:
Um die reinen Artikeldaten in wpShopGermany zu importieren, benötigen wir ausschließlich die Tabelle
wp_wpshopgermany_products.
In dieser Tabelle sind alle Stammdaten eines Shopartikels enthalten. Zugeordnete Artikelbilder befinden sich auf Dateiebene im WordPress-Verzeichnis
../wp-content/uploads/produktbilder.
In diesem Verzeichnis befindet sich für jeden Artikel, der ein Produktbild enthält, ein Verzeichnis mit dem Namen der jeweiligen Artikel-ID. In diesem Verzeichnis befinden sich dann die zum Artikel zugeordneten Produktbilder.
Um die Artikeldaten aus FileMaker problemlos in die MySQL-Datenbank von wpShopGermany exportieren zu können, werden in der FileMaker-Datenbank, die bisher nur die Felder aus xt:Commerce enthält, weitere spezifische Felder für wpShopGermany benötigt. Öffnen Sie hierfür die Datenbankverwaltung der Felddefinition und fügen Sie folgende Felder hinzu:
Das erste Feld muß bei einem Standard-Shop auf WordPress den Wert „normalprodukt“ enthalten, das Template-Feld enthält standardmäßig den Wert „standard.phtml“. Das Kategorie-Feld enthält die in wpShopGermany zugeordnete Kategorie, die im WordPress-Shopsystem unter „Produktgruppen“ eingerichtet werden können.
Wurden die genannten drei Felder in der FileMaker-Datenbank, die die Artikel aus xt:Commerce enthält, angelegt, können wir nun mit dem Export der Produkte in die Datenbank von wpShopGermany beginnen. Die Tabelle wp_wpshopgermany_products besteht aus folgenden Feldern:
Um die Daten aus der FileMaker-Datenbank direkt in die MySQL-Datenbank von wpShopGermany zu schreiben, erstellen wir für diesen Zweck nun ein Script im ScriptMaker, das ein entsprechendes SQL-Statement enthält, um die Artikel aus der FileMaker-Datenbank in die MySQL-Datenbank von xpShopGermany zu schreiben. Dies geschieht mit folgendem Befehl:
SQL Query ausführen [Ohne Dialogfeld; DSN: ODBC-Datenquelle; Berechneter SQL-Text:
"INSERT INTO `wp_wpshopgermany_products` (`id`, `cdate`, `name`,`anr`, `typ`, `preis`, `mwst`, `fmenge`, `beschreibung`,`pgruppe`, `ptemplate_file`, `weight`,`stock`, `stock_count`, `deleted`, `downloadplus`, `lang_parent`) VALUES ('" & xtc_products::products_id & "', '" & LiesAlsText(ZeichenRechts(Hole(SystemDatum); 4) & "-" & ZeichenMitte(Hole(SystemDatum); 4; 2) & "-" & ZeichenLinks(Hole(SystemDatum); 2) & " " & Hole(SystemUhrzeit)) & "', '" & Austauschen(xtc_products::products_name; """; """) & "', '" & xtc_products::products_model & "', '" & xtc_products::wpShopGermany_Produkttyp & "', '" & Falls( MusterAnzahl ( LiesAlsText(xtc_products::xCal_Preis_brutto) ; "," ) = 0; LiesAlsText(xtc_products::xCal_Preis_brutto) & ".00"; ZeichenMitte(xtc_products::xCal_Preis_brutto; Position(xtc_products::xCal_Preis_brutto; "," ; 1 ; 1 ) ; 1) = ","; LiesAlsText(Austauschen(xtc_products::xCal_Preis_brutto; ","; ".")) & "0"; LiesAlsText(Austauschen(xtc_products::xCal_Preis_brutto; ","; "."))) & "', " & "1" & ", " & "'0.00" & "', '" & Austauschen(xtc_products_description::products_short_description; """; """) & "', " & xtc_products::wpShopGermany_Kategorie & ", '" & xtc_products::wpShopGermany_Template & "', '" & "0.00'" & ", " & "0" & ", " & "0" & ", " & "0" & ", " & "0" & ", " & "0)"]
In diesem SQL-Statement wird davon ausgegangen, daß die oben genannten drei zusätzlichen Felder angelegt wurden und die Feldbezeichnungen der Shopartikel denen aus xt:commerce entsprechen.
Achtung! Bitte beachten Sie, daß die Felder für den Artikelnamen und die Artikelbeschreibung ggf. auch Anführungszeichen oder Apostrophe enthalten können. Um die Funktion des SQL-Statements zu gewährleisten, das für seine Funktion ebenfalls Apostrophe enthält, sollten Sie diese Zeichen für die Verwendung im SQL-Statement in HTML-Entities umwandeln.
Da der Artikelpreis in xt:Commerce davon abhängt, ob für den jeweiligen Artikel ein Sonderpreis existiert, wurde er in der Formel <<xCal_Preis_brutto>> berechnet:
Wenn(IstLeer(xtc_specials::specials_new_products_price); Austauschen(products_price; "."; ","); (Austauschen(xtc_specials::specials_new_products_price; "."; ",")) * 1,19 )
Wie bereits erwähnt, befinden sich die einem Artikel zugeordneten Bilder in wpShopGermany jeweils in einem Verzeichnis, das den gleichen Namen trägt wie die Artikel-ID. Da FileMaker mit Bordmitteln weder Bilder aus einer URL in ein Medienfeld übertragen noch Verzeichnisse anlegen kann, benötigen wir für den folgenden Schritt das URL-Plugin und das File-Plugin von Troi. Beide Plugins können voll funktionsfähig aber zeitbeschränkt auf der Website des Herstellers kostenlos heruntergeladen werden. Troi bietet viele Varianten der Lizensierung von FileMaker-Plugins an.
Um das benötigte Verzeichnis mit dem Namen der Artikel-ID zu erzeugen, bedienen wir uns der Funktion „TrFile_CreateFolder“ des Troi File Plugins, nachdem wir zuvor den vollständigen Pfad des Verzeichnisses in eine Variable geschrieben haben. Beide Funktionen sehen dann folgendermaßen aus:
Variable setzen [$FM_Pfad; Wert: "filemac:/PfadAufIhremRechner/" & xtc_products::Product_ID] Variable setzen [$Dateiname; Wert: $FM_Pfad & "/" & xtc_products::products_ID & ".jpg"]
In xt:Commerce wird der Dateiname des zum Artikel zugehörigen Bildes im Feld <<products_image>> gespeichert. Die gesamte URL für den Aufruf des Artikelbildes lautet in FileMaker:
"http://IhrShop.de/images/product_images/info_images/" & xtc_products::products_image.
Als Nächstes legen wir in der FileMaker-Datenbank ein Medienfeld mit dem Namen <<Bildcontainer>> an. Mit der Funktion „TURL_Get“ kann das Bild nun vom Webserver in das erstellte Medienfeld übertragen werden:
Feldwert setzen [xtc_products::Bildcontainer; Wenn(xtc_products::products_image <> ""; TURL_Get(""; "http://IhrShop.de/images/product_images/info_images/" & xtc_products::products_image ); "")
Nach dieser Funktion im Script befindet sich das Artikelbild des xt:Commerce-Artikels im FileMaker-Medienfeld mit dem Namen „Bildcontainer“. Von diesem Feld aus kann das Bild nun mit der Funktion
Exportiere alle Feldwerte [xtc_products::Bildcontainer; "$Dateiname"]
in ein beliebiges Verzeichnis exportiert werden. Alle erzeugten Verzeichnisse mit den Bildern können anschließend einfach per FTP in das WordPress-Verzeichnis
../wp-content/uploads/produktbilder.
übertragen werden. Mit einem FTP-Plugin läßt sich selbstverständlich auch dieser Schritt direkt in FileMaker automatisieren.
Mit den genannten Maßnahmen sind wir nun in der Lage, einen einzelnen Artikel inklusive Produktfoto von xt:Commerce nach wpShopGermany zu exportieren. Damit alle aufgerufenen Artikel auf einen Schlag exportiert werden können, kann nun einfach im Script eine Schleife um die bisher programmierten Funktionen herum implementiert werden. Das vollständige FileMaker-Script sähe dann beispielsweise folgendermaßen aus:
Mit diesem Script ist es möglich, alle aufgerufenen Datensätze in der Datenbank mit den Artikeln aus xt:Commerce in einem Rutsch in das WordPress-Shopsystem wpShopGermany zu exportieren, inklusive Abfrage an den Benutzer, ob er diese Aktion wirklich durchführen möchte. Eine vollständige Lösung wird an dieser Stelle ausdrücklich nicht zur Verfügung gestellt, weil der Entwicklungsvorgang dieser Schnittstelle sehr stark von den individuellen Eigenschaften der eingesetzten FileMaker-Datenbank abhängig ist. Wer in seiner Datenbank weitere dynamische Daten hat wie unterschiedliche Mehrwertsteuersätze, Artikelgewicht oder den Lagerbestand führt, kann diese Daten mit einfachen Modifikationen ebenfalls in das WordPress-Shopsystem wpShopGermany exportieren.
Im Rahmen eines Projektes hatte ich die Aufgabe, mit FileMaker mehrere Drucker zu bedienen, bei denen auch Papierfächer einzeln angesteuert werden sollen. Dies ist am Einfachsten realisierbar, wenn die Druckereinstellungen jeweils in einem Script gespeichert werden, das die Dokumente mit dem Scriptbefehl Drucken [Wiederherstellen] auch sofort auf dem Drucker ausgibt.…
Vom 8. bis zum 10. Oktober 2015 fand die FileMaker Konferenz FMK2015 statt, die in diesem Jahr mit einem Besucherrekord aufwarten konnte. Insgesamt 206 Teilnehmer haben sich im Hamburger Novotel City Hamburg eingefunden, um 23 Referenten in 35 Sessions gespannt zuzuhören. Auch FileMaker selbst war mit 14 Mitarbeitern aus den…
Am 1. August 2013 hat der in Hamburg ansässige K&K Verlag des FileMaker Magazins zum "FileMaker Stammtisch Spezial" in seine neuen Verlagsräume eingeladen. Seit 1994 veröffentlicht der K&K-Verlag das FileMaker-Magazin, das sich seitdem in der deutschsprachigen FileMaker-Szene zu einer Institution entwickelt hat. Kürzlich hat der K&K Verlag neue Räumlichkeiten in…
Hinzufügen von {{itemName}} zum Warenkorb
Hinzugefügt {{EinkaufsName}} zum Warenkorb
Das ist ja mal eine super Sache! Habe alles sogar mit der Demo von Filemaker zum laufen gebracht! Nun wirds Zeit Filemaker zu kaufen :-)
Autsch ist das ne lange Anleitung.
Ich selbst bin schwer begeistert von wpShopGermany, bis auf ein paar Kleinigkeiten ist dies das perfekte Shop Plugin für kleine Nischen Shops.
Das mit dem Filemaker ist mir so komplett neu, aber es sieht auf jeden Fall danach aus als sollte man das mal testen.
Interessanter Ansatz. Die Anleitung funktioniert einwandfrei, und lässt sich sicherlich auch auf andere Systeme anwenden. Ich habe mir wpShopGermany eine Weile nicht mehr angesehen – Ist das Plugin nun wirklich rechtssicher, oder sind noch Eigenheiten wie der Onepagecheckout enthalten?
Mein nächster bzw. erster Shop wird sicherlich auch auf WordPress laufen… wie jedes andere Projekt auch. ;) Bin mir allerdings unsicher, ob man von XT wirklich so leicht zu WordPress migrieren kann bzw. sollte (URL-Struktur, Schnittstellen…)
Was ich leider nicht so richtig herauslese, ist die Frage ob es eine Schnittstelle zu einem Wartenwirtschaftsprogramm wie zum Beispiel Orgamax gibt?
Solange technische Möglichkeiten für FileMaker existieren, auf die entsprechenden Datentabellen zuzugreifen, sind prinzipiell Schnittstellen zu allen Systemen möglich. Einige Systeme wie z.B. Magento lassen jedoch einen direkten Zugriff auf die Tabellen nicht zu, stellen dafür aber eine API zur Verfügung, die dann in den meisten Fällen ebenfalls für einen Datenzugriff genutzt werden kann.