Produkte und Aufträge via ODBC/SQL vom Onlineshop in FileMaker und umgekehrt übertragen am Beispiel xt:Commerce / Gambio.
Ein Vortrag im Rahmen der FileMaker Konferenz 2012 in Salzburg, Österreich.
Demo-Datei Download unter: http://www.filemaker-konferenz.com/2012/downloads.php
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
FMK2012: Schnittstellen von FileMaker zu Onlineshop-Systemen von Markus Schall
1. FileMaker Konferenz2010
Schnittstellen von FileMaker zu
Onlineshop-Systemen.
Produkte und Aufträge via ODBC/SQL vom Onlineshop in FileMaker
und umgekehrt übertragen am Beispiel xt:Commerce / Gambio.
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
2. FileMaker Konferenz2010
Inhalt dieser Session:
1.
FileMaker und MySQL-Datenbanken
1.1
Die mySQL-Datenbank auf dem Webserver
1.2
ODBC-Manager unter Mac OS X
1.3
ODBC-Connector für mySQL installieren
1.4
Einrichtung des MySQL ODBC-Connectors unter Mac OS X
1.5
Einrichtung des MySQL ODBC-Connectors unter Windows
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
3. FileMaker Konferenz2010
Inhalt dieser Session:
2.
Importieren ganzer Datentabellen aus mySQL in FileMaker
2.1
SQL Abfrage für den Import erstellen
2.2
Neue Tabelle in FileMaker aus Datenimport erstellen
2.3
Import der Datentabelle aus xt:Commerce in FileMaker
2.4
Umbenennen der importieren Tabelle
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
4. FileMaker Konferenz2010
Inhalt dieser Session:
3.
Wichtigste Datentabellen zu Produkt- /Artikeldaten
3.1
Datenstruktur der Produkt- /Artikeldaten
3.2
Import von Artikeln aus xt:Commerce in FileMaker
3.3
Beispiellösung: Ein Teilscript pro Tabelle in xt:Commerce
3.4
Schaltflächenscript (Steuerscript für alle Importe)
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
5. FileMaker Konferenz2010
Inhalt dieser Session:
4.
Export von Artikeln aus FileMaker nach xt:Commerce
4.1
Scripte für den Export von Daten nach xt:Commerce
4.2
SQL-Statement für das Erzeugen eines neuen Datensatzes
4.3
SQL-Statement für das Update eines Datensatzes
5
Datenstruktur der Auftragstabellen
5.1
Welche Daten befinden sich wo?
5.2
Beispiellösung: Ein Teilscript pro Tabelle in xt:Commerce
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
6. FileMaker Konferenz2010
Inhalt dieser Session:
6
Datenstruktur der Kundentabellen
6.1
Welche Daten befinden sich wo?
6.2
Beispiellösung: Ein Teilscript pro Tabelle in xt:Commerce
6.3
Einzelne Datensätze importieren (Beispiel customers)
7
Schlussbemerkungen
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
7. FileMaker Konferenz2010
FileMaker und MySQL Datenbanken
1.1 Die mySQL-Datenbank auf dem Webserver
• Shop-Datenbank basiert auf einem mySQL-Server
• Shop greift direkt per PHP auf die mySQL Tabellen zu
• Zugriff auf dem Mac z.B. mit phpMyAdmin oder Sequel Pro*
• Zugriff mit FileMaker über eine ODBC Datenquelle
> Daten lesen über FileMaker Importfunktion
> Daten schreiben über Scriptbefehl „SQL Query ausführen“
* http://www.sequelpro.com
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
8. FileMaker Konferenz2010
ODBC-Manager für Mac OS X
1.2 ODBC-Manager unter Mac OS X
• ODBC-Manager für die Verwaltung von ODBC-Datenquellen
• ODBC-Manager ist nicht standardmäßig auf allen System installiert
> Download auf http://www.odbcmanager.net
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
9. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.3 ODBC-Connector für mySQL installieren
• mySQL ODBC-Connector 3.5.1 oder Actual Technologies
> ODBC Driver for Open Source Databases
> Download auf http://www.actualtech.com
> Lizenzkosten: 34,95 US-Dollar für bis zu 5 Verbindungen
> Mac OS X: Installation des Actual ODBC Pack
> Windows: Installation des mySQL ODBC-Connector 3.5.1
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
10. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.4 Einrichtung des ODBC-Connectors für mySQL
• Hinzufügen neuer Datenquelle im ODBC-Manager
> Actual Open Source Databases
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
11. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.4 Einrichtung des ODBC-Connectors für mySQL
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
12. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.4 Einrichtung des ODBC-Connectors für mySQL
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
13. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.4 Einrichtung des ODBC-Connectors für mySQL
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
14. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.5 ODBC-Connector unter Windows: Systemsteuerung
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
15. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.5.1 ODBC-Connector unter Windows: Datenquellen (ODBC)
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
16. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.5.1 ODBC-Connector unter Windows:
System-DSN oder Benutzer-DSN
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
17. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.5.1 ODBC-Connector unter Windows:
MySQL-Treiber für die Datenquelle auswählen
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
18. FileMaker Konferenz2010
ODBC-Connector für mySQL
1.5.1 ODBC-Connector unter Windows:
Verbindungsparameter mit Login und Passwort angeben
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
19. FileMaker Konferenz2010
Datenimport aus mySQL in FileMaker
2. Importieren ganzer Datentabellen aus mySQL in FileMaker
• Ablage > Datensätze importieren > ODBC-Datenquelle
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
20. FileMaker Konferenz2010
Datenimport aus mySQL in FileMaker
2.1 - SQL Abfrage für den Import erstellen
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
21. FileMaker Konferenz2010
Datenimport aus mySQL in FileMaker
2.2 - Neue Tabelle in FileMaker aus Datenimport erstellen
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
22. FileMaker Konferenz2010
Datenaufbau von xt:Commerce
2.3 - Import der Datentabelle aus xt:Commerce in FileMaker
• Datentabelle wird inkl. Feldnamen und Daten importiert
• Datentabelle heißt nach dem Import wie die ODBC-Datenquelle
> Nach Import ist Umbenennen der Tabelle notwendig
> Namensschema in Beispiellösung: xt_Tabellenname
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
23. FileMaker Konferenz2010
Datenaufbau von xt:Commerce
2.4 - Umbenennen der importieren Tabelle
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
24. FileMaker Konferenz2010
Datenaufbau von xt:Commerce
3 - Wichtigste Datentabellen zu Produkt- /Artikeldaten
• products: Artikel Stammtabelle
• products_description: Produktbeschreibung (ggf. mehrsprachig)
• products_attributes: Produktattribute mit Auf- und Minderpreisen
• products_options: Produktoptionen (für Produktattribute)
> products_options_values: Produktoptionswerte
> products_options_values_to_products_options (Auflösung)
• products_to_categories: Auflösung der Produktkategorien
• products_vpe: Verpackungseinheiten
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
25. FileMaker Konferenz2010
Datenaufbau von xt:Commerce
3.1 - Datenstruktur der Produkt- /Artikeldaten
Kundengruppen für
abweichende Preise
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
26. FileMaker Konferenz2010
Datenaufbau von xt:Commerce
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
27. FileMaker Konferenz2010
Artikelimport aus xt:Commerce
3.2 - Import von Artikeln aus xt:Commerce in FileMaker
• acht produktbezogene Tabellen aus xt:Commerce
products, products_attributes, products_description,
products_images, products_options, products_options_values,
products_options_values_to_products_options,
products_to_categories
• zwei kategoriebezogene Tabellen aus xt:Commerce
categories, categories_description
• Hersteller: manufacturers
• Preisgruppen: personal_offers_by_customers_status_0 bis 5
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
28. FileMaker Konferenz2010
Artikelimport aus xt:Commerce
3.3 - Beispiellösung: Ein Teilscript pro Tabelle in xt:Commerce
Gehe zu Layout [„xt_products“ (xt_products)]
Alle Datensätze anzeigen
Alle Datensätze löschen [Ohne Dialogfeld]
Datensätze importieren [Ohne Dialogfeld; DSN: gfm_xtc_test; SQL:
SELECT
`products`.`group_permission_0`,
`products`.`group_permission_1`,
`products`.`group_permission_2`,
`products`.`group_permission_3`,
[...]
FROM `products`
Gehe zu Layout [Originallayout]
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
30. FileMaker Konferenz2010
Datenexport nach xt:Commerce
4 - Export von Artikeln aus FileMaker nach xt:Commerce
• products_id als Primärschlüssel empfehlenswert
• Daten werden im entsprechenden xt:Commerce-Format übertragen
> Betragsfelder als Textfelder mit Punkt als Dezimaltrennzeichen
> Auch einige Zahlenfelder enthalten Felder im Format 0.0000
oder mit entsprechendem Wert
> Statusfelder enthalten meist 1 oder 0 als Statusanzeige
> Beschreibungsfelder enthalten i.d.R. HTML
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
31. FileMaker Konferenz2010
Datenexport nach xt:Commerce
4.1 - Scripte für den Export von Daten nach xt:Commerce
• Ein Teilscript pro Tabelle aus xt:Commerce empfehlenswert
• Gleiches Datenmodell wie die Daten, die sich in den MySQL-
Tabellen von xt:Commerce befinden.
> Felder müssen im gleichen Format übergeben werden
> Bei Mehrsprachigkeit können in einigen Tabellen wie z.B.
products_description mehrere Datensätze mit unterschiedlichen
language_ids vorkommen
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
32. FileMaker Konferenz2010
Datenexport nach xt:Commerce
4.2 - SQL-Statement für das Erzeugen eines neuen Datensatzes
Beispieltabelle: products_to_categories
"INSERT INTO `products_to_categories` (`categories_id`,
`products_id`)
VALUES ('" &
xt_products_to_categories::categories_id & "', '" &
xt_products_to_categories::products_id &
"')"
mySQL-Tabelle
Feld 1
Feld 2
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
33. FileMaker Konferenz2010
Datenexport nach xt:Commerce
4.3 - SQL-Statement für das Update eines Datensatzes
Beispieltabelle: products_to_categories
"UPDATE `products_to_categories` SET " &
"`categories_id` = '" &
gm_products_to_categories::categories_id & "'" &
" WHERE `products_id` = " &
gm_products_to_categories::products_id
mySQL-Tabelle
Feld 1
Abgleichsfeld
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
34. FileMaker Konferenz2010
Auftragsimport aus xt:Commerce
5 - Datenstruktur der Auftragstabellen
• Primärschlüssel: orders_id
• orders_products_attributes über orders_products_id
• Downloads: xt_orders_products_downloads
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
35. FileMaker Konferenz2010
Auftragsimport aus xt:Commerce
5.1 - Welche Daten befinden sich wo?
• fünf auftragsbezogene Tabellen aus xt:Commerce:
orders, orders_products, orders_total, orders_produts_attributes,
ggf. orders_downloads
• Auftrags-Stammsatz enthält Kunden-, Rechnungs- und
Lieferanschrift, E-Mail, Telefon, Zahlungsart, IP und ggf. Ust.-ID
• Positionen der Bestellung befinden sich in orders_products
> Bestellte Produktattribute in orders_products_attributes
• Gesamtsummen der Bestellung befinden sich in orders_total
• Downloadprodukte befinden sich in orders_downloads
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
36. FileMaker Konferenz2010
Auftragsimport aus xt:Commerce
5.2 - Beispiellösung: Ein Teilscript pro Tabelle in xt:Commerce
Gehe zu Layout [„xt_orders“ (xt_orders)]
Alle Datensätze anzeigen
Alle Datensätze löschen [Ohne Dialogfeld]
Datensätze importieren [Ohne Dialogfeld; DSN: gfm_xtc_test; SQL:
SELECT
`orders`.`account_type`,`orders`.`afterbuy_id`,
`orders`.`afterbuy_success`, `orders`.`billing_address_format_id`,
[...]
FROM `orders`
Gehe zu Layout [Originallayout]
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
37. FileMaker Konferenz2010
Kundenimport aus xt:Commerce
6 - Datenstruktur der Kundentabellen
• Primärschlüssel: customers_id
• countries über address_book::entry_country_ID
• customers zu address_book und memo 1:n
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
38. FileMaker Konferenz2010
Kundenimport aus xt:Commerce
6.1 - Welche Daten befinden sich wo?
• xt_customers ist Stammtabelle mit Primärschlüssel customers_id
• Adressen befinden sich in xt_adress_book (1:n über customers_id)
• customers_memo 1:n über customers_id, wenn gepflegt
• customers_info über customers_id, wenn gepflegt
• countries von address_book über countries_id
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
39. FileMaker Konferenz2010
Kundenimport aus xt:Commerce
6.2 - Beispiellösung: Ein Teilscript pro Tabelle in xt:Commerce
Gehe zu Layout [„xt_customers“ (xt_customers)]
Alle Datensätze anzeigen
Alle Datensätze löschen [Ohne Dialogfeld]
Datensätze importieren [Ohne Dialogfeld; DSN: gfm_xtc_test; SQL:
SELECT
`customers`.`account_type`,`customers`.`customers_cid`,
`customers`.`cutomers_date_added`,`customers`.`customers_dob`
[...]
FROM `customers`
Gehe zu Layout [Originallayout]
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
40. FileMaker Konferenz2010
Kundenimport aus xt:Commerce
6.3 - Einzelne Datensätze importieren (Beispiel customers)
Variable setzen [$customers_id =Hole(ScriptParameter)]
Gehe zu Layout [„xt_customers“ (xt_customers)]
Alle Datensätze anzeigen
Alle Datensätze löschen [Ohne Dialogfeld]
Datensätze importieren [Ohne Dialogfeld; DSN: gfm_xtc_test; SQL:
SELECT
`customers`.`account_type`,`customers`.`customers_cid`,
`customers`.`cutomers_date_added`,`customers`.`customers_dob`
[...]
FROM `customers`
WHERE customers_id = $customers_id
Gehe zu Layout [Originallayout]
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
41. FileMaker Konferenz2010
Session: FileMaker und xt:Commerce
7 - Schlussbemerkungen
• Je nach Nutzung des Onlineshops sind möglicherweise nicht immer
alle Tabellen mit Daten gefüllt
• Bestellstati aus FileMaker in xt:Commerce mit den Tabellen:
> orders_status
> orders_status_history
• Einzelne Datensätze am Einfachsten per ScriptParameter
> Wenn Parameter vorhanden, WHERE-Anweisung durchführen
Markus Schall • goFileMaker.de FileMaker Konferenz 2012 Salzburg
Schnittstellen von FileMaker zum Onlineshop. www.filemaker-konferenz.com
42. FileMaker Konferenz2010
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages
Patrick Risch FileMaker Konferenz 2012 Salzburg
101 für Switcher www.filemaker-konferenz.com