immonex OpenImmo2wpCasa

Tried and tested: This plugin is already in use in more than 50 sites!

Info

Please note: This plugin does not support the new, plugin-based real estate Framework WPCasa! It is intended for use in combination with the previous, theme-based Version wpCasa. Please have a look at immonex OpenImmo2WP, the extended OpenImmo import plugin which fully supports the new WPCasa.

WordPress and wpCasa are a perfect base for developing professional websites for real estate agencies.

This plugin is a lightweight solution for frequently importing OpenImmo XML real estate data into wpCasa-based WordPress sites as well as for updating them automatically. (Looking for a solution that supports other real estate themes as well?)

OpenImmo is a widely used standard for real estate data exchange maintained by the OpenImmo e.V. It is supported by the majority of real estate agent software products (e.g. OpenEstate-ImmoTool, FlowFact, onOffice and Exposé) and portals (e.g. Immowelt and Immonet) in the German-speaking countries.

immonex OpenImmo2wpcasa by inveris - WPML CompatibleAs the name says, this plugin has been specifically developed for wpCasa, a framework for building sophisticated WordPress real estate websites and themes. immonex OpenImmo2wpCasa provides a hassle-free setup and yet a very flexible data mapping system and various hooks for individual customization. Even multilingual contents can be imported in combination with an extension plugin and WPML or Polylang as translation management solution.

Great performance – little effort: Ready-to-use mapping definitions for wpCasa are already included as well as widgets for displaying user-defined properties and file attachments (e.g. PDF files). Other unnecessary frills have been omitted consequently.

Features

  • import/update of OpenImmo real estate data into WordPress/wpCasa based sites
  • transfer format: ZIP archives containing XML (property data) and JPG files (images) as well as other file attachments (e.g. PDF)
  • flexible assignment of property data using a mapping table (individually adaptable with OpenOffice/LibreOffice Calc or Microsoft Excel)
  • full or partly import
  • import of multilingual contents (via WPML or Polylang) in combination with an extension plugin: immonex OpenImmo2WP Multilang
  • automatic assignment of property contacts (WordPress users)
  • automatic transfer of property address data for geocoding
  • support of energy pass data (e.g. according to German EnEV 2014)
    (graphical display including automatic data transfer possible using an extension plugin:
    immonex Energy Scale Pro
  • automatized import by WP-Cron
  • import and debug protocols by email
  • widgets for the groupable display of individual property features as well as file attachments in online exposés
  • archiving of processed import files
    (including deletion of outdated files)
  • data manipulation during import process via WordPress filter and action hooks
  • automatic restart of interrupted import processes
  • manual start and resumption of import processes possible anytime
  • optimized for hosting/webspace environments with limited resources (memory, script runtime)
  • usable in WordPress multisite installations
  • continuous further development (e.g. adaptation to new OpenImmo or WordPress versions)

Please note: This plugin does not support the new, plugin-based real estate Framework WPCasa! It is intended for use in combination with the previous, theme-based Version wpCasa. Please have a look at immonex OpenImmo2WP, the extended OpenImmo import plugin which fully supports the new WPCasa.

Documentation

The contents of this page will be available in English soon. We are currently working on the translations. In the meantime, please have a look at our tutorial on creating multilingual real estate sites with wpCasa and WPML!

Systemvoraussetzungen

  • PHP >= 5.3
  • WordPress >= 3.8
  • wpCasa-Framework >= 1.3 (nur die themebasierte Variante, nicht die neue pluginbasierte Version WPCasa)

Schnellstart

Dieses Plugin kann in wenigen, einfachen Schritten betriebsfertig eingerichtet werden:

  1. Plugin installieren und aktivieren
  2. Plugin unter Einstellungen › OpenImmo Import grundlegend konfigurieren (Auto-Import, Archivierung, Protokoll-Empfänger, Server-Ressourcen etc.)
  3. optional: immonex-Widgets zur Anzeige der nicht vom Theme unterstützten OpenImmo-Daten und Dateianhänge unter Design › Widgets einbinden
  4. optional: Datenzuordnung („Mapping-Tabelle”) und Importvorgang (Filter- und Action-Hooks) anpassen, sofern individuelle Vorgaben zu berücksichtigen sind (Wird ein wpCasa-Theme in der Standardkonfiguration verwendet, ist dieser Schritt nicht notwendig! Das Plugin bringt alle themespezifischen Mappings und Prozesse bereits mit.)
  5. OpenImmo-Schnittstelle der Immobilien-Verwaltungssoftware einrichten, mit der die Daten in die Website übertragen werden (Die zu importierenden Daten werden in Form von ZIP-Archiven per FTP in das Verzeichnis wp-content/uploads/immonex-openimmo-import übertragen.)
  6. Voll- oder Teilexport starten, Import auf der Plugin-Konfigurationsseite ggfls. manuell starten (Tab „Verzeichnisse / Manueller Import”)
  7. Importergebnis prüfen (Bei Problemen oder Fehler hilft das inveris-Team gerne weiter! › Support-Forum)

Installation

  1. WordPress-Backend: Plugins > Installieren > Plugin hochladen *
  2. Plugin-ZIP-Datei auswählen und Installieren-Button klicken
  3. Plugin nach erfolgreicher Installation aktivieren
  4. Grundkonfiguration unter Einstellungen > OpenImmo Import > Allgemeine Einstellungen vornehmen
  5. Lizenzschlüssel im Tab „Lizenz“ hinterlegen und Lizenz aktivieren. That’s it!

* Alternativ: ZIP-Datei entpacken und ins Verzeichnis „wp-content/plugins“ kopieren, anschließend das Plugin im WordPress-Backend unter Plugins > Installierte Plugins aktivieren.

Im Rahmen der Aktivierung werden die folgenden Verzeichnisse angelegt:

wp-content/uploads/immonex-openimmo-import:
In diesen Ordner werden die zu importierenden ZIP-Dateien hochgeladen. Diese enthalten die Immobiliendaten im OpenImmo-XML-Format sowie die zugehörigen Medienanhänge (Bilder oder weitere Dateien).

wp-content/uploads/immonex-openimmo-import/archive:
Sofern die Archivierung aktiviert ist, werden hier bereits verarbeitete ZIP-Archive sowie Importprotokolle gespeichert.

wp-content/uploads/immonex-openimmo-import/mappings:
Hier sind eine oder mehrere Mapping-Definitionsdateien (CSV-Format) hinterlegt, mit denen die Zuordnung der OpenImmo-Daten zu den entsprechenden wpCasa-spezifischen Feldern und WordPress-Beitrags-Eigenschaften beim Import festgelegt wird. Eine Mapping-Datei für Standard-wpCasa-Installationen wird bereits bei der Plugin-Aktivierung hierher kopiert.

Konfiguration

Unter Einstellungen > OpenImmo Import können folgende Einstellungen vorgenommen werden:

Tab „Allgemeine Einstellungen“

Mapping-Typ
Hier wird die CSV-Datei ausgewählt, die die Tabelle für die Zuordnung der OpenImmo-Daten zu den entsprechenden wpCasa- und WordPress-Eigenschaften beim Import enthält. (Eine direkt einsetzbare Mapping-Tabelle für wpCasa-Standard-Installationen ist im Plugin enthalten.)

Auto-Import aktivieren
Ist diese Option aktiviert, wird das Importverzeichnis regelmäßig auf zu verarbeitende ZIP-Archive überprüft, die XML- und Anhangdateien (Bilder, PDF) enthalten. Sind Importarchive vorhanden, werden diese entpackt und die enthaltenen Immobiliendaten importiert. Fehlerhafte ZIP-Dateien werden nach zwei Stunden automatisch gelöscht.

Das Zeitintervall für die Prüfung auf neue Importdateien liegt bei zwei Minuten. Hierfür kommt das WordPress-interne WP-Cron-System zum Einsatz. Dieses setzt für eine zeitnahe Verarbeitung der Importdaten voraus, dass die Website regelmäßig aufgerufen wird. Um dies zu gewährleisten, kann bei niedrig frequentierten Internet-Angeboten – bei Bedarf – zusätzlich ein „echter Cronjob” eingerichtet werden. (Mehr dazu später im Abschnitt „Automatisierter Import”)

Nullwerte ignorieren
Ist diese Option aktiviert (Standard), werden OpenImmo-Elemente mit Leer- und Nullwerten nicht importiert.

Import-Protokoll-Empfänger (optionale Angabe)
Ist hier eine Mailadresse hinterlegt, wird an diese nach jedem Import ein Protokoll mit Infos zu den verarbeiteten Daten gesendet. Im Regelfall wird hier die Adresse des Immobilien-Anbieters (Makler) angegeben.

Debug-Protokoll-Empfänger (optionale Angabe)
Das Debug-Protokoll enthält weitergehende Informationen zu den Importvorgängen, die bei Problemen nützliche Anhaltspunkte für die Fehlerbehebung liefern können. Empfänger sollte in diesem Fall der für die Technik zuständige Administrator der Website oder alternativ auch ein externer Entwickler sein.

Importdateien archivieren
Sofern in diesem Feld eine Anzahl von Tagen angegeben ist, bleiben verarbeitete OpenImmo-ZIP-Archive nebst zugehörigen Import-Protokollen (Debug-Version) für diesen Zeitraum im Archivordner gespeichert. Ältere Dateien werden automatisch gelöscht.

Tab „Script-Ressourcen“

Länger dauernde Importvorgänge können anhand der Einstellungen in diesem Tab in mehrere Scriptläufe aufgeteilt werden. Diese Optionen sind vor allem bei Webspace-Umgebungen mit begrenzten Ressourcen relevant. Die Werte sollten bei Problemen wie bspw. bei häufigen Abbrüchen des Importvorgangs, Timeouts oder Serverfehlern (sog. „Internal Server Errors”) schrittweise verringert werden, bis ein reibungsloser Import möglich ist.

Max. Script-Ausführungszeit
Der mögliche Zeitrahmen liegt zwischen 30 und 3.600 Sekunden, 0 steht für kein Zeitlimit – das Script wird dann während eines Imports nicht unterbrochen. Diese Angabe bezieht sich nur auf automatisch via WP-Cron gestartete Importvorgänge, bei manuellen Importen liegt die maximale Script-Laufzeit generell bei 30 Sekunden. Ist serverseitig (php.ini) eine niedrigere maximale Script-Laufzeit vorgegeben, ist nur diese relevant.

Max. Anzahl Datensätze
Die maximale Anzahl an Immobilien, die pro Scriptlauf importiert wird (0 = kein Limit).

Max. Anzahl zu löschender Datensätze
Die maximale Anzahl an Immobilien, die vor der Verarbeitung eines Vollimports pro Scriptlauf gelöscht wird (0 = kein Limit).

Max. Anzahl Dateianhänge
Die meisten Probleme entstehen erfahrungsgemäß dann, wenn viel hochauflösendes Bildmaterial importiert wird. Die serverseitige Skalierung bei der Erstellung verschiedener Formate pro Bild kann hier – je nach Hosting-Anbieter – schnell den verfügbaren Rahmen in Sachen Script-Laufzeit und Hauptspeicher sprengen. In diesen Fällen kann hier eine maximale Anzahl an Dateianhängen (z. B. Bilder) eingestellt werden, die pro Scriptlauf verarbeitet wird (0 = kein Limit).

Tab „Lizenz“

Lizenzschlüssel und Lizenzstatus
Entwicklung endet nie. Deswegen ist eine gültige und aktive Lizenz Voraussetzung für den automatisierten Bezug von Plugin-Aktualisierungen sowie die Inanspruchnahme des Supports. Der zugehörige Lizenzschlüssel wird beim Kauf übermittelt ist für eine WordPress/wpCasa-Installation gültig (auch Multisite!). Die Lizenz kann in den Plugin-Einstellungen aktiviert oder deaktiviert werden (bspw. wenn der Lizenzschlüssel für eine andere Installation verwendet werden soll).

Mapping-Tabellen

Mittels Mapping-Tabellen können die im OpenImmo-XML-Format übertragenen Immobiliendaten flexibel den passenden Eigenschaften und Kategorien der WordPress/wpCasa-Installation zugeordnet werden. Die Tabellen werden mit einer Tabellenkalkulation (LibreOffice bzw. OpenOffice Calc) erstellt und anschließend als CSV-Datei exportiert. Eine Variante für Standard-wpCasa-Installationen ist enthalten und kann als Vorlage für individuelle Anpassungen verwendet werden.

Grundlegender Dateiaufbau / Mehrsprachigkeit

Die Immobilien-Datensätze in den OpenImmo-XML-Dateien bestehen aus diversen Elementen, denen jeweils Werte und/oder Attribute zugeordnet sind.

Beispiel für einen Wert

Beispiel für eine Attribut

XML-Elemente können auch Werte und Attribute enthalten.

Jede Zeile der Mapping-Tabelle steht für die Zuordnung einer dieser Werte bzw. eines bestimmten Attributs. Die Tabellen können zudem beliebig viele Leer- und Kommentarzeilen enthalten, die beim Import ignoriert werden. Letztere beginnen immer mit einer Raute (#).

Die erste Nicht-Kommentar-Zeile enhält die Bezeichnungen der Spalten, wobei die folgenden Angaben immer vorhanden sein müssen: Type, Group, Source, Destination, Filter, Title, Parent. 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 der mitgelieferten Datei 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“ gespeichert. (Auch ein Immobilienobjekt ist WordPress-intern ein Beitrag.)

Beispiele
  • Die in den OpenImmo-XML-Daten hinterlegten Freitexte Objekt-, Lage- und Ausstattungsbeschreibung werden (kombiniert) als eigentlicher Inhalt des Beitrags gespeichert.
  • Objekttitel und „Dreizeiler“ werden als Beitragstitel und Inhaltsauszug 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…)
Beispiele
  • Immobilien mit der OpenImmo-Nutzungsart „Wohnen“ werden mit einer wpCasa-Kategorie verknüpft, die „Wohnimmobilien“ heißt.
  • Der Ort, in dem sich die Immobilie befindet, wird beim Import (sofern noch nicht vorhanden) zur wpCasa-Standortliste hinzugefügt und das Objekt entsprechend zugeordnet.
  • Eine Wohnung des OpenImmo-Typs „Apartment“ wird dem gleichnamigen Typ der wpCasa-Taxonomie „Objekttypen“ zugeordnet.
custom_field

Auch mit benutzerdefinierten Feldern („Custom Fields“) können einem Immobilienobjekt Eigenschaften zugewiesen werden. Im Gegensatz zur Taxonomie-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 wpCasa-spezifische als auch individuelle Eigenschaften sein. wpCasa-spezifisch heißt, dass diese z. B. für die Objektsuche und -filterung sowie für die Art der Darstellung relevant sind.

Beispiele für wpCasa-Eigenschaften:
  • Vermarktungsart (Verkauf, Vermietung)
  • Preis (Kaufpreis, Warmmiete, Kaltmiete…)
  • Zeitraum, auf den sich die Mietpreisangabe bezieht
  • Objekt-ID
  • weitere frei definierbare Eigenschaften (Standard: Anzahl Schlafzimmer, Stellplätze, Heizungsart…)

Andere individuelle Eigenschaften, die in den OpenImmo-Importdaten vorhanden sind, werden bei der Ausgabe in den wpCasa-Widgets nicht berücksichtigt. Hierfür kann das mitgelieferte immonex-Widget „Benutzerdefinierte Eigenschaften“ verwendet werden (siehe unten).

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 ausbeblendet 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 (pro Immobilienobjekt) in der XML-Baumstruktur im Form eines Pfades definiert. Dieser Pfad bezieht sich auf alle Unterelemente des Elements „immobilie“. Verzweigungen in Unterknoten werden jeweils mit „->“ eingeleitet. Neben den eigentlichen Elementwerten können optional auch deren Attribute sowie die Attributwerte (jeweils getrennt durch einen Doppelpunkt) abgefragt werden. Durch Anhängen eines Gleich- (=) oder Tildezeichens (~) an den Elementnamen (vor den Attributangaben) kann überprüft werden, ob der abgefragte Wert des Elements/Knotens (nicht der Attributwert) der nachfolgenden Zeichenkette entspricht (z. B. „=Ja“), diese enthält (z. B. „~Empfehlung“) oder nicht leer ist („=not_empty“).

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“ (+ = kommagetrennt, # = leerzeichengetrennt).

xml-knoten->unterknoten->element[=entspricht oder =not_empty][~enthält][:attribut[:attributwert]][*][+/#]

Beispiele
  • preise->kaufpreis
    Wert des Elements wird importiert, XML:
  • ausstattung->energietyp:PASSIVHAUS
    Eigenschaft „Passivhaus“ wird der Immobilie zugewiesen, sofern das Element ausstattung->energietyp mit diesem Attribut vorhanden ist, das nicht den Wert „0” oder„false” hat.
  • ausstattung->heizungsart:ZENTRAL+ und (in der nächsten Zeile) ausstattung->heizungsart:FUSSBODEN+
    verknüpfte Zuordnung der beiden Heizungsangaben: „Zentralheizung, Fußbodenheizung“
  • objektkategorie->objektart->hallen_lager_prod:hallen_typ:LAGER
    Immobilie wird der Objektkategorie „Lagerhallen“ zugewiesen, wenn das Attribut „hallen_typ“ des Elements objektkategorie->objektart->hallen_lager_prod den Wert „LAGER“ enthält.
  • freitexte->sonstige_angaben~Empfehlung
    spezielle Kategorisierung des Objekts, wenn der Freitext sonstige_angaben den Begriff „Empfehlung“ enthält
  • verwaltung_techn->user_defined_simplefield=Ja:feldname:Neubauvorhaben
    spezielle Kategorisierung des Objekts, wenn das benutzerdefinierte Feld mit dem Namen “Neubauvorhaben” den Wert “Ja” enthält
  • preise->aussen_courtage*
    Wert des Courtage-Elements wird immer importiert, unabhängig davon ob eins der zugehörigen MwSt.-Attribute angegeben ist oder nicht.

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 oben):

Beim Typ „post“ sind die Importziele im Regelfall die Felder post_title (Titel), post_content (Objektbeschreibung) und post_excerpt (Kurzbeschreibung).

Zeilen des Typs „taxonomy“ beziehen sich auf die vom wpCasa-Framework vorgegebenen Taxonomien, die hier als Ziel angegeben werden: property-category (Objektkategorie), location (Standort der Immobilie), property-type (Objektart) und feature (Objekteigenschaften)

Beim Typ „custom_field“ muss nur dann ein Importziel angegeben werden, wenn es sich um ein wpCasa- oder templatespezifisches Feld handelt, z. B. _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).

Custom-Field-Daten ohne Angabe eines Zielfelds werden als individuelle, theme-unabhängige Eigenschaften gespeichert, die später mit demimmonex-Widget „Benutzerdefinierte Eigenschaften” ausgegeben werden. Das Importziel kann übrigens mehrfach vorhanden sein, wobei die jeweiligen Quelldaten entweder verknüpft („+” am Ende der Angabe in der Source-Spalte) oder durch die folgende 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 wpCasa-Feld _price zugeordnet. Enhält ein Immobilien-Datensatz nun alle drei Angaben, wird als Preis 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)
  • 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 (beliebige Einheit X an den importierten Wert 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 wpCasa-Taxonomie „Objekttypen“ (Destination: „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 wpCasa-spezifischen Eigenschaften, die als Typ „custom_field“ importiert werden, muss die Titelspalte festgelegte Werte enthalten:

  • Destination „_price_status“ (Vermarktungsart): Wert „rent“ für Miete/Pacht, „sale“ für Verkauf
  • Destination „_price_period“ (Vermietungszeitraum bezugnehmend auf den Preis): Wert „rental_period_1“ für monatlich, „_rental_period_2“ für wöchentlich, „rental_period_3“ für jährlich, „rental_period_4“ für täglich
  • Destination „_price_sold_rented“ (Objekt verkauft/vermietet): Wert „1“, sofern das Attribut (Source) „zustand_angaben->verkaufstatus:VERKAUFT“ gesetzt ist

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. (Keine Panik, das klingt komplizierter als es ist. Die „etwas” verwirrende Umsetzung hat sich erst im Laufe der Entwicklung ergeben und geht auf meine Kappe. Sorry! – Carsten)

Beispiel-Mapping
  • Type: custom_field; Source: geo->lage_gebiet:gebiete:WOHN, Title DE: Wohngebiet, Parent DE: Lage
    Eigenschaft wird als „Lage: Wohngebiet” importiert

Individuelle Mapping-Tabelle

Ein guter Ausgangspunkt für die Anpassung der Mappings ist die mitgelieferte Mapping-Datei für wpCasa. 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? Ganz einfach: 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

Sonderfall: Kontaktperson

Die Ansprechpartner für Immobilien-Angebote entsprechen bei wpCasa-Websites regulären WordPress-Benutzern. Das Plugin vergleicht die in der OpenImmo-XML-Datei hinterlegten Namen der Kontaktpersonen sowie die E-Mail-Adressen mit denen der WordPress-Benutzer. Ist die Mailadresse identisch oder liegt die Ähnlichkeit des Namens über 85 %, wird automatisch der betr. Benutzer dem aktuellen Objekt als Ansprechpartner zugeordnet.

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 Standard-Mappingdatei wpcasa.csv wird bei der Aktualisierung oder Reaktivierung des Plugins ggfls. mit einer aktualisierten Version überschrieben. Vorab wird eine Sicherung mit dem aktuellen Datum und der Uhrzeit im Dateinamen erstellt.

Übertragung der OpenImmo-Daten / Ablauf des Imports

Die zu importierenden bzw. aktualisierenden Daten werden als ZIP-Archiv per FTP auf den Server übertragen, auf dem sich die WordPress-Installation mit dem Importplugin befindet. Alle gängigen Software-Lösungen für Immobilienmakler bieten eine entsprechende Schnittstelle für den Transfer von Daten im OpenImmo-Format. Zielordner ist hierbei „wp-content/uploads/immonex-openimmo-import“. Es empfiehlt sich, einen separaten FTP-Zugang für die Übertragung anzulegen, der auf dieses Verzeichnis zeigt. Wird ein allgemeiner Zugang verwendet (Webroot), muss in der Schnittstellenkonfiguration der verwendeten Makler-Software das genannte Zielverzeichnis eingestellt werden.

Automatisierter Import

Der Import erfolgt im Regelfall automatisiert (gem. Standardvorgabe alle zwei Minuten per WP-Cron), sofern diese Option in der Plugin-Konfiguration aktiviert ist. Da WP-Cron abhängig vom Aufruf der Website ist, sollte zusätzlich (sofern möglich) ein „echter Cronjob“ angelegt werden, um die zeitnahe Verarbeitung der Importdaten sicherzustellen. Auf UNIX/Linux-basierten Systemen kann hierzu bspw. ein Eintrag in der Datei „/etc/crontab“ ergänzt werden:

(Im Beispiel wird wget für den Aufruf von wp-cron.php verwendet, alternativ ist dies z. B. auch mit curl oder lynx möglich.)

Manueller Import

Der Import kann auch manuell über die Konfigurationsseite des Plugins gestartet werden. Auf dem Tab „Verzeichnisse / Manueller Import“ wird die aktuelle Anzahl der zu importierenden ZIP-Dateien angezeigt, sofern vorhanden. Läuft bereits ein Importvorgang, werden Informationen zum aktuellen Status angezeigt. Wurde ein Importvorgang (bspw. durch einen internen Serverfehler) unterbrochen, kann er hier fortgesetzt werden.

Die immonex-Widgets

immonex: Benutzerdefinierte Eigenschaften

Mit diesem Widget können via Plugin importierte Daten der Immobilien-Objekte, die nicht wpCasa-spezifischen Feldern zugeordnet wurden, in die Online-Exposés eingebunden werden. Sollen nicht alle Eigenschaften dieser Art angezeigt werden, können bestimmte Gruppen über die Widget-Konfiguration entweder explizit angezeigt oder ausgeblendet werden. Da das Plugin auch mehrfach in die Exposés eingebunden werden kann, können so auch unterschiedliche Bereiche für Daten realisiert werden, die thematisch eine Einheit bilden. Beispiel: Alle Energieausweis-Daten werden per Mapping-Tabelle gruppiert und per Widget in einem eigenen Abschnitt ausgegeben.

immonex: Dateianhänge

Hiermit kann eine Liste der mit den Immobilien verknüpften Dateianhängen in die Online-Exposés eingebunden werden. Ein typischer Einsatzbereich hierfür ist das Hinterlegen von Grundrissen oder Exposés in Form von PDF-Dateien. Alternative Dateitypen neben PDF-Dateien müssen zunächst mit dem Filter immonex_oi2wpc_misc_file_formats (s. u.) definiert werden.

Filter-Referenz

Für die individuelle, WordPress-konforme Anpassung des Importvorgangs stehen diverse Filter- und Action-Hooks zur Verfügung. Über die folgenden Filter können eigene Callback-Funktionen eingebunden werden, mit denen Daten vor dem eigentlichen Import verändert werden. Diese Funktionen werden normalerweise in der Datei functions.php des Themes oder wpcasa-functions.php bei Verwendung des gleichnamigen Plugins hinterlegt.

immonex_oi2wpc_import_properties_xml_before_import

Mit diesem Filter können die XML-Daten aller Objekte eines Importarchivs vor dem Import ausgewertet oder modifiziert werden (übergeben wird ein Array der SimpleXML-Objekte).

Parameter
  • Array mit SimpleXML-Objekten aller Immobilien des aktuellen Import-Archivs

immonex_oi2wpc_property_xml_before_import

Mit diesem Filter können die XML-Daten des aktuell zu verarbeitenden Objekts vor dem Import modifiziert werden. Soll die Immobilie nicht importiert werden, ist von der Callback-Funktion false zurückzuliefern.

Parameter
  • SimpleXML-Objekt der aktuell zur Verarbeitung anstehenden Immobilie

immonex_oi2wpc_add_post_data_element

Dieser Filter wird angewendet auf ein einzelnes Element der Daten, die direkt im WordPress-Beitrag (Post) des Immobilienobjekts gespeichert werden (z. B. Titel, Beschreibung, Eintragsdatum etc.).

Parameter
  • Elementwert
  • SimpleXML-Objekt der aktuellen Immobilie
  • Mapping-Daten des aktuellen Elements

immonex_oi2wpc_add_property_post_data

Dieser Filter wird angewendet auf das komplette Array der Daten, die direkt im WordPress-Beitrag (Post) des Immobilienobjekts gespeichert werden (z. B. Titel, Beschreibung, Eintragsdatum etc.).

Parameter
  • zu speichernde Post-Daten gem. WordPress-Codex
  • SimpleXML-Objekt der aktuellen Immobilie

immonex_oi2wpc_add_property_taxonomy_term

Dieser Filter wird bei der Zuweisung einer Objekteigenschaft als Taxonomie-Begriff (z. B. Immobilienart, Nutzungsart etc.) auf den jeweiligen String angewendet.

Parameter
  • Taxonomie-Begriff (Term) als String
  • SimpleXML-Objekt der aktuellen Immobilie
  • Assoziatives Array der Mapping-Daten
  • Post-ID (Beitrag der aktuellen Immobilie)

immonex_oi2wpc_insert_taxonomy_term

Dieser Filter wird beim Hinzufügen eines neuen Taxonomie-Begriffs auf das entspr. Array (Begriff, Taxonomiename und zus. Argumente) angewendet. Liefert die Callback-Funktion false zurück, wird der betr. Begriff nicht importiert.

Parameter
  • Assoziatives Array mit Daten des neuen Taxonomie-Begriffs
  • SimpleXML-Objekt der aktuellen Immobilie

immonex_oi2wpc_add_property_custom_field

Dieser Filter wird auf das jeweilige Array beim Hinzufügen eines Custom-Fields (benutzerdefinierte Eigenschaft) zu einem Immobilienobjekt angewendet. Liefert die Callback-Funktion false zurück, wird das betr. Custom-Field nicht importiert.

Parameter
  • Assoziatives Array mit Daten des neuen Custom-Fields
  • SimpleXML-Objekt der aktuellen Immobilie
  • Post-ID (Beitrag der aktuellen Immobilie)

immonex_oi2wpc_attachment_before_import

Dieser Filter wird auf das jeweilige SimpleXML-Element vor dem Importieren eines Anhangs (Bilddatei, Dokument, URL etc.) angewendet. Liefert die Callback-Funktion false zurück, wird der betr. Anhang nicht importiert.

Parameter
  • SimpleXML-Objekt des zu importierenden Anhangs
  • Post-ID (Beitrag der aktuellen Immobilie)

immonex_oi2wpc_misc_file_formats

Mit diesem Filter kann die Liste (Array) alternativer Typen von Dateianhängen erweitert werden, die beim Import berücksichtigt werden sollen. Standardmäßig werden neben den Bilddateien (nicht im Array dieses Filters enthalten) nur PDF-Dateien importiert. Dateitypen werden in Form des MIME-Subtyps bzw. der gängigen Dateiendung hinzugefügt. Ein von der Callback-Funktion zurückgeliefertes Array könnte bspw. folgendermaßen aussehen:

Parameter
  • Array mit erlaubten Dateitypen als MIME-Subtyp bzw. Dateisuffix

immonex_oi2wpc_force_slug_language_tags

Mit diesem Filter kann das automatische Anhängen der Sprachcodes beim Anlegen von Taxonomie-Terms im Rahmen des Importvorgangs obligatorisch gemacht werden, wie es in Plugin-Versionen vor 2.0 der Fall war.

Parameter
  • Boolean-Wert: true = Sprachcodes generell anhängen, false = nur bei Bedarf

Action-Referenz

Mit den Action-Hooks können Aktionen jeweils vor oder nach den folgenden Verarbeitungsschritten des Imports ausgeführt werden.

immonex_oi2wpc_before_import_file_processing

Ausführung vor der Verarbeitung einer Import-XML-Datei

Parameter
  • Name der zu verarbeitenden XML-Datei (ohne Pfadangabe)

immonex_oi2wpc_before_property_import

Ausführung vor dem Import einer Immobilie

Parameter
  • SimpleXML-Objekt der aktuellen Immobilie

immonex_oi2wpc_property_imported

Ausführung nach dem Import einer Immobilie

Parameter
  • Post-ID (Beitrag der aktuellen Immobilie)
  • SimpleXML-Objekt der aktuellen Immobilie

immonex_oi2wpc_before_property_deletion

Ausführung vor dem Löschen einer Immobilie

Parameter
  • SimpleXML-Objekt der aktuellen Immobilie

immonex_oi2wpc_property_deleted

Ausführung nach dem Löschen einer Immobilie

Parameter
  • Post-ID (Beitrag der aktuellen Immobilie)
  • SimpleXML-Objekt der aktuellen Immobilie

immonex_oi2wpc_import_file_processed

Ausführung nach der Verarbeitung eines Import-ZIP-Archivs

Parameter
  • Name der verarbeiteten XML-Datei (ohne Pfadangabe)

Changelog

2.2

  • Release date: 2018-06-15
  • Added support for links (attachment widget).
  • Improved the archive cleanup routine.
  • Various detail updates (compatibility and stability).

2.1.5

  • Release date: 2017-06-19
  • Improved compatibility with current versions of WPML.
  • Updated documentation link on the plugin settings page.
  • Improved logging.
  • Various minor updates concerning compatibility with the current
    WordPress version.

2.1.1

  • Release date: 2016-12-30
  • Added a security check.

2.1

  • Release date: 2016-12-13
  • Added ability to combine multiple values with space characters as dividers (instead of a commas).
  • Added ability to force adding of language tags on taxonomy term creation.
  • Improved filtering of empty XML elements.
  • Updated default mapping table (fixed typos etc.).
  • Further detail and stability improvements.

2.0.3

  • Release date: 2016-09-12
  • Updated the default mapping table (modified several terms).
  • Corrected some minor bugs.

2.0.1

  • Release date: 2016-07-04
  • Fixed a minor bug concerning importing multilingual taxonomy terms.

2.0

  • Release date: 2016-06-29
  • Added an option for filtering empty and zero values during import.
  • Upated and extended internal content filters.
  • Slightly updated the default mapping table.
  • Reworked the processing of multilingual taxonomy term slugs.
  • Various other detail and stability improvements.

1.9

  • Release date: 2015-11-13
  • Fixed some minor bugs related to importing of multilingual property data.
  • Improved stability.

1.8.8

  • Release date: 2015-09-07
  • Added support for importing remote images.
  • Reworked processing of property geo coordinates.
  • Added a new filter hook (attachment before import)
  • Added filter for completely deactivating multilingual processing.
  • Updated the support class for automatic updates.
  • Slightly updated the default mapping table.
  • Various minor fixes and improvements.

1.8.3

  • Release date: 2015-07-07
  • Added a new internal filter function for adding variable units.
  • Added automatic number formatting to the internal filter function epass_unit.
  • Fixed some minor bugs and added stability improvements.
  • Updated the default mapping file for wpCasa (e.g. distance units).

1.8

  • Release date: 2015-05-29
  • Added max. number of retries for importing images/attachments.
  • Reduced timeout for running import processes from five to three minutes.
  • Improved compatibility with hosting environments where allow_url_fopen is disabled.
  • Fixed an import issue related to elements with zero values.
  • Updated the wpCasa mapping file.

1.7.6

  • Release date: 2015-04-25
  • Added new mapping capabilities: check for non-empty elements as well as parameters for internal filter functions.
  • Added check for max. script execution time value in php.ini.
  • Updated default mapping tables.

1.7.4

    • Release date: 2015-04-13
    • Added filter immonex_oi2wpc_add_post_data_element.
    • Fixed minor issue concerning property permalink.

1.7.2

  • Release date: 2015-04-02
  • Improved custom field data mapping abilities.
  • Updated agent/user name comparison.
  • Added internal and external property IDs to the log.

1.7

  • Release date: 2015-02-24
  • Added a filter hook for evaluating/modifying the XML data before import.
  • Fixed a filetype icon selection/display bug in the immonex widget for file attachments.
  • Fixed a conversion bug concerning certain date fomats in the internal filter function “date”.
  • Improved the status display during manually started imports.
  • Disabled automatic imports during admin sessions in the WP backend.
  • Made the logger accessible from outside the plugin (e.g. for adding own log entries).
  • Optimized the handling of multilingual contents when using immonex OpenImmo2WP Multilang.
  • Added an automatic correction routine for incomplete property records caused by unexpected script terminations.
  • Improved the compatibility with buggy OpenImmo implementations on the export side.

1.6.5

  • Release date: 2015-01-30
  • Added “live” import status/progress view to plugin options page (manual import tab).
  • Reworked/Simplified the resuming of interrupted imports due to server errors.
  • Added the ability to define max. numbers for properties to be deleted (before full imports) and attachments per script run.
  • Added a routine to prevent duplicates caused by script crashes due to server errors.
  • Updated various minor details.

1.6

  • Release date: 2015-01-19
  • Improved the process of splitting/resuming import processes.
  • Implemented the ability to keep the original property IDs on updates.
  • Improved the creation of property addresses for geocoding.
  • Unified the sort order of imported properties with the same update date.
  • Fixed a bug concerning the deletion of plugin options on updates.
  • Fixed a minor bug on displaying taxonomy terms in multilingual sites.
  • Updated the standard mapping table (added parent property types).

1.5.5

  • Release date: 2014-12-29
  • Fixed a slug creation issue (transliteration of special characters).
  • Added a new action hook.
  • Fixed some minor bugs regarding the resumption of interrupted imports.
  • Added translations to readme.txt.

1.5.2

  • Release date: 2014-12-11
  • Fixed a license status update issue.

1.5.1

  • Release date: 2014-12-07
  • Fixed auto update issue.

1.5

  • Release date: 2014-12-05
  • Reworked plugin structure for more seamless integration of upcoming extension plugins.
  • Fixed minor bugs.

1.4.7

  • Release date: 2014-11-23
  • Reworked processing of automatic import to speed them up and to lower the dependence on real cronjobs.
  • Added ability to stop/resume imports based on the number of processed properties (important for hosting environments with limited resources).
  • Moved script resource and license options to separate tabs.
  • Reworked integration for upcoming multi-language plugin.
  • Fixed problems with occasional vanishing import tasks (WP-Cron).
  • Fixed archiving of unneeded logfiles.
  • Updated standard mapping definitions and language files.
  • Various minor improvements and fixes.

1.4

  • Release date: 2014-10-27
  • Added support for multilingual imports via an upcoming extension plugin.
  • Added new filter hook for modifying property XML data before import.
  • Added ability to recognize property contact persons by email address.
  • Added UTF-8 check for mapping files.
  • Improved conversion of incomplete dates (for internal filter functions).
  • Reduced timeframe for recognition/deletion of corrupt import ZIP archives.
  • Updated standard mapping definitions (OpenImmo 1.2.7)

1.3.9

  • Release date: 2014-09-17
  • Added new filter and action hooks.
  • Added layout options to widgets.
  • Added a new internal filter function: epass_unit.
  • Fixed delayed import if transfer of ZIP archive has not been completed on start of processing.
  • Fixed merging of property description texts.

1.3.7

  • Release date: 2014-09-09
  • Improved compatibility with buggy OpenImmo implementations on export side.
  • Fixed minor mapping issues and typos.

1.3.6

  • Release date: 2014-09-09
  • Added extended property data to be used in filter functions.

1.3.5.1

  • Release date: 2014-09-04
  • Fixed a mapping typo.

1.3.5

  • Release date: 2014-09-03
  • Added ability to import property file attachments other than images.
  • Added new widget for displaying lists of linked file attachments (e.g. PDF).
  • Disabled automatic merging of property description texts if these are explicitly listed in the mapping table.
  • Slightly modified output of widget data (HTML structure).
  • Updated wpCasa mapping definitions and language files.
  • Fixed admin notice issue and improved various minor details.

1.3

  • Release date: 2014-08-19
  • Reworked WP-Cron based automatic import processing.
  • Added option to manually set maximum script runtime (splitting of long-running imports).
  • Added ability to filter out specific property data via WordPress hooks.
  • Fixed issue regarding filter functions not applied to all values.
  • Extended attachment file type check to detect buggy import data.
  • Added ISO country code translation (geocoding).
  • Updated wpCasa mapping definitions and language files.
  • Fixed and improved various minor details.

1.2.6

  • Release date: 2014-07-21
  • Added ability to manually resume previous import processes.
  • Fixed log creation bug.
  • Extended script resource checks and handling.
  • Improved progress display for manually started import processes
  • Fixed and improved various minor details.

1.2

  • Release date: 2014-07-15
  • Added option to modify import data by WordPress filters.
  • Added option to combine multiple OpenImmo values into a single custom field.
  • Added new content filter function: integer.
  • Added a token system to prevent multiple simultaneous import processes.
  • Optimized logger class (lower memory usage).
  • Extended status info transfer and error handling on AJAX based import processes.
  • Fixed PHP short open tags issue (options page and widget).
  • Added mapping file update notice on updates.
  • Updated wpCasa mapping definitions and language files.
  • Fixed some minor bugs and typos.

1.1

  • Release date: 2014-06-28
  • Updated import routine to stop and resume processing based on available script execution time and memory.
  • Fixed XML namespace issue (some OpenImmo files with specific namespaces could not be imported).
  • Added backup creation of mapping files on plugin updates.
  • Fixed recognition and handling of corrupt ZIP archives.
  • Updated options page to use AJAX for starting the manual import process (including optimized progress display).
  • Updated main script and logger class to use local time instead of UTC.
  • Updated wpCasa mapping definitions.

1.0.6

  • Release date: 2014-06-12
  • Added new content filter function: boolean (convert true/false or 1/0 to “Yes/No”).
  • Added availability check for content filter functions.
  • Updated wpCasa mapping definitions.
  • Fixed post date issue which might cause problems with the post navigation.
  • Slightly modified loading of translations and auto updater.

1.0

  • Release date: 2014-06-06
  • Initial release.
129,00 €
excl. VAT
or only
19,00 €
per month (excl. VAT)