Mapping-Tabellen
Mittels Mapping-Tabellen können die im OpenImmo-XML-Format übertragenen Immobiliendaten den passenden Eigenschaften und Kategorien der WordPress/Theme-Installation zugeordnet werden.
Die Tabellen werden mit einer Tabellenkalkulation (LibreOffice bzw. OpenOffice Calc) erstellt und anschließend als CSV-Datei exportiert.
Mapping-Tabellen für verschiedene unterstützte Themes sind im Plugin enthalten und können als Vorlage für eigene Tabellen mit individuellen Anpassungen verwendet werden.
Zuordnung
Jede Zeile der Mapping-Tabelle steht für die Zuordnung zu einem Wert der OpenImmo-XML-Datei bzw. eines bestimmten Attributs.
Sind Werte in der OpenImmo-XML-Datei nicht vorhanden, dann können mit der Mapping-Datei auch nicht verarbeitet werden. Möchte man diese Felder dennoch verarbeiten, dann müssen Filter verwendet werden. Ein Beispiel dafür ist ein Optionales benutzerdefiniertes Feld speichern.
Die Tabellen können beliebig viele Leer- und Kommentarzeilen enthalten, die beim Import ignoriert werden. Kommentarzeilen beginnen immer mit einer Raute #
.
Die erste Nicht-Kommentar-Zeile der Tabelle enthält die Bezeichnungen der Spalten.
Folgende Angaben müssen immer vorhanden sein: Type, Group, Source, Destination, Filter, Title, Parent
.
Übersetzungen
Die Spalten Title
und Parent
enthalten Texte in englischer Sprache.
Optional können weitere Spalten mit diesen Namen – jeweils gefolgt von einem Leerzeichen und einem zweistelligen ISO-Code – mit alternativen Sprachvarianten ergänzt werden.
In den mitgelieferten Dateien sind bspw. die entsprechenden deutschen Texte in den Zusatzspalten Title DE
und Parent DE
enthalten.
Die Spalten im Detail
Type
Mit dieser Angabe wird festgelegt, in welcher Form die jeweiligen Daten beim Import gespeichert werden:
post
Die Daten werden im Standard-WordPress-Datensatz des Beitrags post
gespeichert.
Ein Immobilienobjekt ist WordPress-intern ein Beitrag post
.
Beispiele
- Die in den OpenImmo-XML-Daten hinterlegten Freitexte Objekt-, Lage- und Ausstattungsbeschreibung werden (kombiniert) als eigentlicher Inhalt des Beitrags
post_content
gespeichert. - Objekttitel und „Dreizeiler“ werden als Beitragstitel
post_title
und Inhaltsauszugpost_excerpt
gespeichert.
taxonomy
Die im WordPress-Jargon als Taxonomien bezeichneten Eigenschaften dienen sowohl der Kategorisierung der Objekte als auch der Zuordnung von gleichartigen Merkmalen, die bei mehreren Immobilien vorhanden sein können, z. B.:
- Standort
- Kategorie (Wohnimmobilien, Gewerbeimmobilien…)
- Objekttyp (Einfamilienhaus, Maisonette-Wohnung, Büroetage…)
- Eigenschaften (Aufzug, WG-geeignet, Keller…)
Die verfügbaren Taxonomien sind abhängig vom eingesetzten Theme.
Beispiele
- Immobilien mit der OpenImmo-Nutzungsart
Wohnen
werden mit einer Kategorie verknüpft, dieWohnimmobilien
heißt (Beispiel wpCasa-Themes: zugehörige Taxonomieproperty-category
). - Der Ort, in dem sich die Immobilie befindet, wird beim Import (sofern noch nicht vorhanden) zur Standortliste hinzugefügt und das Objekt entsprechend zugeordnet (zugehörige Taxonomie
property-location
). - Eine Wohnung des OpenImmo-Typs
Apartment
wird dem gleichnamigen Typ der TaxonomieObjekttypen
(Beispiel wpCasa-Themes: Taxonomienameproperty-type
) zugeordnet.
custom_field
Auch mit benutzerdefinierten Feldern „Custom Fields“ können einem Immobilienobjekt Eigenschaften zugewiesen werden.
Im Gegensatz zur taxonomy-basierten Variante handelt es sich hierbei allerdings nicht um einzelne Angaben, sondern um Paare mit je einer Bezeichnung und einem zugehörigen Wert. Das können sowohl themespezifische als auch individuelle Eigenschaften sein. Themespezifisch heißt, dass diese z. B. für die Objektsuche und -filterung sowie für die Art der Darstellung relevant sind.
Beispiele für themespezifische Eigenschaften
- Objekt-ID
- Vermarktungsart (Verkauf, Vermietung)
- Preis (Kaufpreis, Warmmiete, Kaltmiete…)
- Anzahl Schlafzimmer, Badezimmer, Stellplätze etc.
- Heizungsart
Auch hier sind die relevanten Felder abhängig vom eingesetzten Theme, was in den mitgelieferten Mapping-Tabellen bereits berücksichtigt ist.
Andere individuelle Eigenschaften, die in den OpenImmo-Importdaten vorhanden sind, werden bei der Ausgabe „mit Bordmitteln” des Themes möglicherweise nicht berücksichtigt. Hierfür kann das mitgelieferte immonex-Widget „Benutzerdefinierte Eigenschaften“ verwendet werden.
Name
Optionale Bezeichnung, die den Zugriff auf die Feldinhalte vereinfachen soll.
Group
Die Möglichkeit der Gruppierung ist aktuell nur für die Ausgabe der Elemente des Typs custom_field
relevant: Durch das Festlegen einer gemeinsamen Gruppenbezeichnung können zusammengehörige Daten mit dem immonex-Widget „Benutzerdefinierte Eigenschaften“ je nach Bedarf ein- oder ausgeblendet werden.
Beispiel
Alle Informationen, die sich auf den Energieausweis einer Immobilie beziehen, werden der Gruppe epass
zugeordnet. Hierfür wird bei der Ausgabe eine gesonderte Widget-Instanz verwendet, mit der nur Daten dieser Gruppe angezeigt werden.
Source
In dieser Spalte wird die Quelle der Daten in der XML-Baumstruktur in Form eines Pfades definiert (Quellpfad).
Dieser Pfad bezieht sich auf alle Unterelemente des XML-Elements immobilie
.
Verzweigungen in Unterknoten werden jeweils mit ->
eingeleitet.
Durch Anhängen eines Gleich- =
oder Tildezeichens ~
an den Elementnamen kann überprüft werden, ob der abgefragte Inhaltswert des Elements der nachfolgenden Zeichenkette
- entspricht
=exakter Wert
; - enthalten ist
~enthaltener Wert
; - oder nicht leer ist
=not_empty
.
Neben den eigentlichen Elementwerten können optional auch deren Attribute sowie die Attributwerte, jeweils getrennt durch einen Doppelpunkt :
, abgefragt werden.
Enthält der Quellpfad keine Attributangaben, werden standardmäßig auch beim Import nur Elemente berücksichtigt, die keine Attribute enthalten.
Soll der Wert eines Elements unabhängig von den vorhandenen Attributen importiert werden, wird ein Stern-Zeichen *
an den Pfad angehangen.
Ein Plus- +
oder Raute-Zeichen #
am Ende steht für das Verknüpfen mehrerer Werte in einem Feld bei Mappings vom Typ post
oder custom_field
:
+
für das Anhängen des Folgeelements mit Komma + Leerzeichen als Trennzeichen#
für das Anhängen des Folgeelements mit Leerzeichen als Trennzeichen
Beispiele
preise->kaufpreis
Der Wert des Elements
kaufpreis
wird importiert:<preise> <kaufpreis>255200</kaufpreis> </preise>
freitexte->sonstige_angaben~Empfehlung
Weist das Feld zu, wenn der Inhalt von
freitexte->sonstige_angaben
den BegriffEmpfehlung
enthält.<freitexte> <sonstige_angaben>Dieses Objekt ist eine besondere Empfehlung!</sonstige_angaben> </freitexte>
ausstattung->energietyp:PASSIVHAUS
Die Eigenschaft
Passivhaus
wird der Immobilie zugewiesen, sofern das Elementausstattung->energietyp
mit diesem Attribut vorhanden ist und das nicht den Wert0
oderfalse
hat.<ausstattung> <energietyp PASSIVHAUS="1" > </ausstattung>
ausstattung->heizungsart:ZENTRAL+
und (in der nächsten Zeile)ausstattung->heizungsart:FUSSBODEN+
Die Eigenschaften
Zentralheizung, Fußbodenheizung
werden der Immobilie mit,
zugewiesen, sofern das Elementausstattung->heizungsart
mit den Attributen vorhanden ist.<ausstattung> <heizungsart OFEN="0" ETAGE="0" ZENTRAL="1" FERN="0" FUSSBODEN="1" > </ausstattung>
objektkategorie->objektart->hallen_lager_prod:hallen_typ:LAGER
Der Immobilie wird der Objektkategorie
Lagerhallen
zugewiesen, wenn das Attributhallen_typ
des Elementsobjektkategorie->objektart->hallen_lager_prod
den WertLAGER
enthält.<objektkategorie> <objektart> <hallen_lager_prod hallen_typ="HALLEN" > </objektart> </objektkategorie>
verwaltung_techn->user_defined_simplefield=Ja:feldname:Neubauvorhaben
Weist das Feld zu, wenn das benutzerdefinierte Feld
verwaltung_techn->user_defined_simplefield
den WertJa
enthält und das Attributfeldname
dem WertNeubauvorhaben
entspricht.<verwaltung_techn> <user_defined_simplefield feldname="Neubauvorhaben">Ja</user_defined_simplefield> </verwaltung_techn>
preise->aussen_courtage*
Wert des Courtage-Elements wird immer importiert, unabhängig davon, ob eines der zugehörigen Attribute
mit_mwst
angegeben ist oder nicht.<preise> <aussen_courtage mit_mwst="false">3000</aussen_courtage> </preise>
Destination
Hier wird das Importziel festgelegt, d. h. wo genau die zu importierenden Daten gespeichert werden (z. B. Feld- oder Taxonomiebezeichnung). Die Angaben sind abhängig vom jeweiligen Importtyp (siehe Type):
Beim Typ post
sind die Importziele im Regelfall die Felder post_title
(Objektbezeichnung), post_content
(Objektbeschreibung) und post_excerpt
(Kurzbeschreibung).
Zeilen des Typs taxonomy
beziehen sich auf die vom Theme vorgegebenen Taxonomien, die hier als Ziel angegeben werden. Beispiel wpCasa-Themes: property-category
(Objektkategorie), location
(Standort der Immobilie), property-type
(Objektart) und feature
(Objekteigenschaften). Bei anderen Themes unterscheiden sich die Taxonomienamen hiervon.
Beim Typ custom_field
muss nur dann ein Importziel angegeben werden, wenn es sich um ein themespezifisches Feld handelt. Bei wpCasa-Themes sind das bspw. die Felder _price_status
(Vermarktungsart), _price
(Kaufpreis oder Miete), _price_period
(Zeitraum, auf den sich die Miete bezieht), _property_id
(Objekt-ID/Nummer) und _details_X
(frei definierbare Details).
Ein Plus-Zeichen +
am Ende sorgt dafür, dass der Wert in einem Array gespeichert wird.
Custom-Field-Daten ohne Angabe eines Zielfelds werden als individuelle, theme-unabhängige Eigenschaften gespeichert, die später mit dem immonex-Widget Benutzerdefinierte Eigenschaften ausgegeben werden.
Das Importziel kann übrigens mehrfach vorhanden sein, wobei die jeweiligen Quelldaten entweder verknüpft, mit +
am Ende der Angabe in der Source-Spalte, oder durch die darauffolgende Angabe überschrieben werden können.
In letzterem Fall sollte auf eine aufsteigende Sortierung nach Relevanz geachtet werden:
Enthält ein Immobilien-Datensatz mehrere Angaben, die dem gleichen Importziel zugeordnet sind, überschreibt die jeweils aktuelle Zuordnung in der Mapping-Tabelle die vorherige.
Beispiel: Die OpenImmo-Elemente nettokaltmiete
, kaltmiete
und warmmiete
sind in dieser Reihenfolge per Mapping dem Feld _price zugeordnet. Enthält ein Immobilien-Datensatz nun alle drei Angaben, wird als Preis nur die Warmmiete gespeichert.
Filter
Zur Optimierung der Ausgabe können die Daten beim Import mit einer der folgenden plugin-internen Funktionen bearbeitet werden. Der entspr. Funktionsname wird hierzu in der Filterspalte hinterlegt.
boolean
(true/false bzw. 1/0 in „Ja“ oder „Nein“ umwandeln)integer
(Ganzzahl)number_format
(formatierte Zahl mit zwei Nachkommastellen)number_format:X
(formatierte Zahl mit X Nachkommastellen, 0 = automatisch, 9 = Ganzzahl ohne, ansonsten zwei Nachkommastellen → gilt auch für die folgenden Filtercurrency
,sqm
undunit
)currency
(formatierte Zahl inkl. Währung – entweder die im Objekt-Datensatz angegebene oder standardmäßig €)sqm
(formatierte Zahl mit Anhang „m²“)date
(formatiertes Datum TT.MM.JJJJ)date_time
(Datum und Zeit im Format TT.MM.JJJJ HH:MM)ucfirst
(Zeichenkette mit Großbuchstaben am Anfang)epass_year
(Engergiepass-Jahrgang: vor 2014 oder ab 2014)epass_building_type
(Energiepass-Gebäudeart: Wohngebäude oder Nichtwohngebäude)epass_unit
(Einheit kWh/(m²*a) anhängen)unit:X:Y
(beliebige Einheit X an den importierten Wert – bei Zahlen mit Y Nachkommastellen formatiert – anhängen)
Die internen Filterfunktionen haben nichts mit WordPress-Filtern zu tun, mit denen die Importdaten ebenfalls verändert werden können.
Title
Viele Angaben im OpenImmo-Datensatz eines Immobilienobjekts werden (vor allem bei Attributen) nicht 1:1 übernommen, sondern in Form einer aussagekräftigen Bezeichnung importiert. Diese Titel werden in der gleichnamigen Spalte festgelegt.
Die Spalte Title
enthält grundsätzlich einen englischen Text, für weitere Sprachen werden zusätzliche Spalten mit angehangenem ISO2-Code ergänzt (z. B. Title DE
für deutsche Bezeichnungen).
Titel sind vor allem beim Importtyp taxonomy
relevant. Ein Beispiel: Wohnungen mit dem Wert PENTHOUSE
des OpenImmo-Attributs wohnungtyp
(Source-Pfad: objektkategorie->objektart->wohnung:wohnungtyp:PENTHOUSE
) sollen der Taxonomie Objekttypen
(Destination bei wpCasa-Themes: property-type
) unter der deutschen Bezeichnung „Penthouse-Wohnung“ zugewiesen werden. Genau diese Bezeichnung wird somit in der Spalte Title DE
hinterlegt.
Sonderfälle
Bei einigen themespezifischen Eigenschaften, die als Typ custom_field
importiert werden, muss die Haupt-Titelspalte festgelegte Werte enthalten. Diese sind im Abschnitt Theme-Besonderheiten beschrieben.
Parent
Die Angaben in der Spalte Parent
werden je nach Importtyp unterschiedlich behandelt:
taxonomy
Bei hierarchichen Taxonomien kann der jeweilige übergeordnete Titel festgelegt werden. Wie bei den Titel-Spalten wird auch hier die Standard-Definition in englischer Sprache hinterlegt, optionale zusätzliche Spalten (z. B. Parent DE
) enthalten die Versionen in weiteren Sprachen.
custom_field
Bei benutzerdefinierten Feldern wiederum sind die Angaben in den Parent
-Spalten dann relevant, wenn die in den Titelfeldern hinterlegten Angaben als Werte importiert werden sollen, wobei als Bezeichnung hierfür dann die Parent
-Angaben übernommen werden.
Beispiel-Mapping
Die Eigenschaft wird als
Lage: Wohngebiet
importiert:Type Source Title DE Parent DE custom_field geo->lage_gebiet:gebiete:WOHN Wohngebiet Lage
Individuelle Mapping-Tabelle
Ein guter Ausgangspunkt für die Anpassung der Mappings ist die mitgelieferte Mapping-Datei für das eingesetzte Theme. Diese ist als ODS-Datei (OpenOffice/LibreOffice) im Ordner mappings
im Plugin-Verzeichnis zu finden und enthält bereits alle wichtigen Zuordnungen und Hinweise.
OpenImmo-Angaben, die automatisch verarbeitet werden oder für eine Ausgabe innerhalb der Website nicht relevant sind, sind teilweise in auskommentierter Form (grau hinterlegt) enthalten.
Warum eine OpenOffice- bzw. LibreOffice-Datei und keine Excel-Tabelle?
Mit Excel ist es nicht ohne weiteres möglich, eine CSV-Datei mit Kommas als Trennzeichen zu erstellen. Hier macht das Pendant „Calc“ der beiden Open-Source-Office-Systeme eine deutlich bessere Figur:
Infos & Download: LibreOffice, OpenOffice
Mapping-Datei exportieren
Im Anschluss an die Anpassung der Mapping-Tabelle wird diese als Text/CSV-Datei unter einem eigenen Namen (z. B. mywpcasa.csv) exportiert und ins Verzeichnis wp-content/uploads/immonex-openimmo-import/mappings
hochgeladen.
Parameter beim Export mit OpenOffice/LibreOffice Calc
Zeichensatz: UTF-8
Feldtrenner: ,
Texttrenner: "
Option Zellinhalt wie angezeigt
aktivieren, sofern vorhanden.
Die Datei kann anschließend in der Plugin-Konfiguration als Mapping-Typ ausgewählt werden.
Die mitgelieferten Standard-Mappingdateien werden bei der Aktualisierung oder Reaktivierung des Plugins ggfls. mit einer aktualisierten Version überschrieben.
Es wird aber immer eine Sicherung mit dem aktuellen Datum und der Uhrzeit vor dem eigentlichen Dateinamen erstellt.