Mapping-Tabellen

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 Inhaltsauszug post_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, die Wohnimmobilien heißt (Beispiel wpCasa-Themes: zugehörige Taxonomie property-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 Taxonomie Objekttypen (Beispiel wpCasa-Themes: Taxonomiename property-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 Begriff Empfehlung 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 Element ausstattung->energietyp mit diesem Attribut vorhanden ist und das nicht den Wert 0 oder false 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 Element ausstattung->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 Attribut hallen_typ des Elements objektkategorie->objektart->hallen_lager_prod den Wert LAGER 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 Wert Ja enthält und das Attribut feldname dem Wert Neubauvorhaben 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 Filter currency, sqm und unit)
  • 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:

    TypeSourceTitle DEParent DE
    custom_fieldgeo->lage_gebiet:gebiete:WOHNWohngebietLage

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.