Tutoriels

Exporter des biens immobiliers de Péricles 5 vers WordPress

J’ai récemment eu besoin pour un projet client d’exporter des biens du logiciel propriétaire de gestion de biens immobilier Péricles 5 vers le site internet de l’agence immobilière réalisé sur mon CMS préféré: WordPress

Etats des lieux

Péricles 5 propose des solutions d’export intégrées vers les sites spécialisés mais pas de possibilité de transférer les biens immobilier de l’agence vers son site internet.

Péricles 5 propose tout de même une solution un peu archaïque à mon gout en 2018 qui consiste a générer un fichier XML contenant le détail de tous les biens dans une archive zip.

Objectif

L’objectif principal de mon client était  de ne pas avoir a ressaisir dans son interface WordPress ce qu’il venait d’enregistrer dans son Péricles.

Solution apportée

La solution mise en place consiste :

  • a générer le fichier XML, dans une archive zip avec les photos des biens immobilier,
  • d’envoyer le tout par FTP sur le serveur d’hébergement du site web,
  • à importer chaque bien dans les types de contenu WordPress prévu ou de mettre à jour les biens existant avec les nouvelles informations contenu dans le fichier XML.
  • à enlever du site les biens qui n’ont pas été vendu par l’agence immobilière.

Mise en place de la solution

Cette solution artisanale  pourra et/ou devra être adaptée selon votre projet, mais vous fournira une idée du travail à réaliser.

Au commencement, l’export des données des biens immobilier.

Dans Péricles, vous allez trouver le sous-menu “Transfert FTP” dans le menu “Communication”.

Dans la fenêtre qui apparaît, Il vous faudra créer un nouveau “transfert”.

Sur la capture suivante, nous allons paramétrer l’export et transférer les  biens sur le serveur hébergeant le site internet via FTP. Un accès FTP est donc ici nécessaire. Péricles laissant en clair le nom d’utilisateur et le mot de passe, je vous conseille de créer un utilisateur FTP dédié à cette tache.

  1. Donnez un nom à votre script
  2. Donnez un nom au fichier xml ainsi qu’au ZIP qui sera créé
  3. Renseignez les informations de connexions FTP
  4. Choisissez les paramètres de tri des annonces
  5. Enregistrer votre script et fermez cette fenêtre.

Revenu cette fenêtre cliquez sur les 3 points pour déplier le menu et choisissez “transférer”.

Si l’étape de paramétrage du script de transfert FTP est correct, le transfert des biens devrait commencer. Cette étape peut être plus ou moins longue selon le nombre de biens et de  photos à transférer.

A Lire Aussi:  Afficher facilement vos agendas Openagenda.com sur votre site WordPress avec OpenAgenda pour WordPress

Le transfert de Péricles vers l’hébergeur a fonctionné, comment intégrer les biens dans WordPress?

Voici l’étape la plus longue et la plus fastidieuse: faire correspondre les nœuds XML avec nos champs WordPress et là chaque cas sera particulier.

Sur le projet que j’ai développé, les biens immobiliers sur le site WordPress étaient géré par l’extension WPCasa mais le principe sera le même avec une autre extension WordPress ou si vous avez créé votre propre type de contenu.

Le but de cette étape est donc de lire le fichier XML et de répartir les informations y figurant dans les différents  champs de votre CPT “Biens Immobilier”. Pour ce faire j’ai utilisé l’excellente extension WP All Import qui, en version gratuite peut très bien suffire ( selon votre façon d’intégrer les biens immo).

Importer ses biens immobiliers avec WP All Import

Une fois WPAI installé et activé, rendez-vous dans le menu WP All Import > New Import. Ici nous avons 3 choix:

  1. Upload a file,
  2. Download from URL
  3. Use existing file

La première solution est écartée d’office puisqu’elle nous force a téléverser manuellement un fichier or, nous voulons que tout soit automatisé avec le moins d’interaction humaine possible. La seconde solution permet de télécharger le fichier depuis une adresse de site internet avant de l’importer enfin la troisième solution permet de traiter un fichier déjà présent.
Le seconde et troisième solution sont donc envisageable mais nous allons retenir la seconde car celle ci pourra être lancée via une tache Cron et donc notre import sera totalement automatisé.

Lors de la création de votre utilisateur FTP, vous lui avez créé un chemin vers un dossier sur lequel il a le droit d’agir… Comme nous allons  devoir télécharger le fichier, il serait bien que l’utilisateur FTP soit paramétré pour que son dossier de travail soit:

 wp-content/uploads/wpallimport/files

Ceci pour que nous ayons les même référence dans ce tutoriel et que nous soyons sur que le fichier est accessible sur une URL fonctionnelle. Pour le besoin de ce tutoriel, l’URL sera http://example.com/wp-content/uploads/wpallimport/files/export.ZIP

ATTENTION, WPAI est sensible à la casse et Péricles nous fait l’honneur de transférer un fichier avec une extension en majuscule… respectez bien la casse de l’extension de fichier .ZIP

A Lire Aussi:  Faire du Domain Mapping avec WordPress multisite

Nous allons créer de nouveaux biens soit de New Items (désolé pour les anglicismes mais WPAI n’est pas encore traduit… si cela vous interesse: https://translate.wordpress.org/locale/fr/default/wp-plugins/wp-all-import ).

Dans le menu déroulant “Create New”, nous allons choisir le nom du type de contenu concernant nos biens immobiliers.

Si tout se passe bien, vous devriez avoir un écran ressemblant à ceci:

Si c’est bien le cas, cliquons sur le bouton “Continue to step 2” et vous allez trouver quelque chose de ressemblant a ceci:

Bien sur le nombre de biens dépendra du nombre de biens géré sous Péricles 5. Le but ici est de trouver le noeuds “Bien” dans la colonne de gauche. Attention au piège, il existe “Biens” également

Nous avons ici tous les champs exportés de Péricles 5 disponible dans WordPress, il ne reste plus qu’a les traiter: Yapluka, Yfokon

Passons a la 3eme et plus pointilleuse étapes: faire correspondre les noeuds de l’export XML Péricles avec les champs de votre CPT. Sachez que si vous avez créé des champs ACF pour gérer les caractéristiques de vos biens immobiliers, il existe un add-ons WP ALL Import permettant d’importer des noeuds XML dans vos champs personnalisé ACF.

Ici le fonctionnement a lieu en glissé/déposé, une fois que vous avez terminé, je vous conseille de créer un “template”. Si vous avez des modifications a faire, vous n’aurez pas a tout reparamétrer.
Vous pouvez parfaitement combiner plusieurs noeuds pour parvenir a ce que vous voulez avec par exemple:

{CATEGORIE[1]} à {VILLE_OFFRE[1]}:  {PRIX[1]}€

ce qui pourrait donner un titre de biens immobilier ressemblant à:

Maison à Paris: 50000€

Méfiez vous si vous voyez une annonce de ce type … 😉

Importer les photos présente dans Péricles

Péricles format le nom des images de la facon suivante:

{CODE_SOCIETE[1]}-{CODE_SITE[1]}-{NO_ASP[1]}-a.jpg

La lettre -a dépendant du nombre de photos que vous envoyez dans le zip.

Import des images Avec WP All Import

Le fonctionnement de l’import d’image avec WP ALL Import dans un CPT WPCasa n’est pas très intuitif selon moi. En effet, WP All Import s’attend à ce que les photos soient disponible dans le dossier ou se trouve  le fichier xml… or si WPAI extrait le fichier XML contenu dans le zip… il n’extrait pas automatiquement les photos :-/

A Lire Aussi:  Le multisite dans WordPress : Pourquoi? Comment?

Heureusement WP ALL Import propose plusieurs Hooks.

Nous allons donc pouvoir créer une fonction PHP qui va extraire les photo dans le bon dossier avant que  l’import ne commence. On en profitera pour sauvegarder le .zip d’origine, toujours utile en cas de soucis ou de besoin pour déboguer.


	function thfo_extract_photo_pericles() {
		$path = wp_get_upload_dir();
		$file = $path['basedir'] . '/wpallimport/files/export.ZIP';
		
		if (!file_exists($path['basedir'] . '/wpallimport/export')) {
			mkdir($path['basedir'] . '/wpallimport/export', 0755, true);
		}
		
		
		$date = date_i18n('YmdHi');
		
		copy( $path['basedir'] . '/wpallimport/files/export.ZIP', $path['basedir'] . '/wpallimport/export/export-'. $date .'.zip' );
		
		$real_path = $path['basedir'] . '/wpallimport/files/';
		
		$zip = new ZipArchive();
		$res = $zip->open( $file );
		if ( $res === true ) {
			$zip->extractTo( $real_path );
			$zip->close();
		}
		
		
	}
	
	add_action( 'pmxi_before_xml_import', 'thfo_extract_photo_pericles' );
Dézipper des photos en provenance de Péricles

Que fait cette fonction?

Tout d’abord, elle détermine le chemin vers le fichier .ZIP puis si le dossier “export” n’existe pas, elle le crée. Ensuite elle copie le fichier zip dans le dossier export que l’on vient de créer en le renommant avec la date du jour (notre sauvegarde est faites). Enfin le .zip est décompressé.  Les images sont prêtes à être importées.

Une fois tout le mapping de champs effectué, rendez vous sur l’étape 4 ou WPAI vous demande un “unique identifier” que l’on va traduire par “identifiant unique”. Dans notre cas d’agence immobilière, le meilleur champ unique dont nous disposons est le numéro de mandat de vente immobilière qui est disponible dans Péricles et donc dans notre fichier XML sous la référence de noeud: {NO_MANDAT[1]} .

Choix du mandat immobilier comme identifiant unique.

En cliquant sur continuer, l’import va débuter, assurer vous d’avoir bien initié un transfert FTP depuis Péricles pour avoir un fichier export.ZIP dans votre installation WordPress

Automatisation de l’import des biens

La seule tache que mon client a à faire est de mettre a jour ses biens sur Péricles et d’initier un transfert FTP. A partir de ce moment, tout doit être automatique et transparent pour lui.

Heureusement, WP ALL Import peut etre déclencher par une tache Cron. Si vous ne savez pas ce que c’est, allez voir l’article de mon confrère Cyrille Sanson expliquant ce qu’est un Cron.

Dans le menu All Import > Manage Imports, vous allez retrouver la totalité des imports WPAI paramétré dont le notre bien sur. En bout de ligne, vous avez un lien “Cron Scheduling”

menu cron de WP All Import

En suivant le lien, vous trouverez 2 URLs. Ces 2 URLS sont a utiliser pour paramétrer votre CRON. Elles simuleront une intervention humaine et déclencheront  l’import.

A Propos de l'auteur

Avatar - Sebastien Serre

Sebastien Serre

Passionné par le web depuis la fin des années 1990, j'ai développé au fil des ans des compétences en matière de création web. Créant des sites internet sous WordPress depuis 2006 et développant exclusivement sur Wordpress depuis 2014. Je créerai le site ou l'extension WordPress dont vous avez besoin. Développeur d'extensions, Contributeur au Core, Modérateur sur le forum WPFR, responsable de traduction WordPress et orateur lors de WordCamp, ma vie est rythmée par WordPress.

2 commentaires

  1. Bonjour,

    Tout d’abord super tuto, j’ai beaucoup appris grâce à a toi !

    Petite question, est-il possible d’intégrer plusieurs photos dans une annonce via Wp Casa et l’import de fichier .zip ? Mon fichier zip contient 3-4 photos pour chaque annonce, elles ont l’air d’être importées correctement via Wp All Import mais j’ai que la photo thumbnail de présente dans mon annonce..
    Quid des 3 autres dans des possibles petites miniatures en dessous la 1 ère Image mise en avant ?
    Est-ce possible ? J’ai loupé quelque chose ?

    Merci d’avance pour ta réponse

  2. Bonjour, désolé pour le retard de la réponse.
    Oui c’est possible, il faut demander à Péricles lors de la configuration de l’export de joindre autant de photos que vous voulez. Le ZIP contiendra donc les X photos du biens. L’import de mon client est configuré comme ceci: https://i.imgur.com/Dd1I9qY.png note la case cochée qui permet de sélectionner lapremière comme image mise en avant.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.