Ts-Immo propose un modèle d’import lié au thème qui est installé sur votre site immobilier WordPress.
Cependant, pour des besoins spécifiques, vous pourriez avoir besoin de champs personnalisés. Le but de cet article est d’expliquer comment faire cette personnalisation.
Attention, ce billet n’est valable que si vous êtes en version SAAS et est orienté profil technique.
Principe
Lors de l’import, nos serveurs SAAS envoient, via webhook, une notification à la passerelle WordPress : property_added, property_updated, property_deleted. Cet événement contient ce type de payload :
{
"type" : "property-added",
"propertyId": "450ae294-6ff2-6c4d-56ed-5c5e6a4cc4ca",
"happenedAt" : "11-01-0032T11:53:07"
}
Une fois reçu, la passerelle WordPress va interroger la passerelle SAAS pour récupérer le contenu de la propriété. Si la licence est bien rattachée à ce bien, la passerelle renvoie le payload correspondant. Le modèle du payload est disponible via le swagger ci-dessous.
GET /property/{propertyId}
Swagger
https://property.ts-immo.org/swagger-ui/index.html?configUrl=/api-docs/swagger-config
Une fois le modèle reçu, la passerelle WordPress va convertir le modèle Ts-Immo au format « legacy » de Ts-Immo WordPress et rechercher le bien dans la base WordPress via son Id et procède à la création/modification du contenu des données, importe les images et crée le mapping.
Mapping interne
Lors du mapping, la passerelle appelle l’action tsimmo_import_property_extra:
add_action('tsimmo_import_property_extra', 'myimport', 10, 4);
function myimport($estate_id, $property, $agency, $themeImporter){
[...]
}
Vous disposez des informations suivantes :
- estate_id : l’ID WordPress de la property (post)
- property : La classe legacy Ts-Immo qui contient le modèle de données dansl’ancien format. Nous vous déconseillons son utilisation directe et de passer plutôt sur le modèle SAAS
- agency : Deprecated
- themeImporter : l’importer du thème permet notamment de mapper les taxomomies
Vous avez accès au modèle SAAS via TsImmoCore::modelGet($property, CHAMP_DU_MODELE).
Le contenu du modèle est disponible de 2 manières :
- Via Voir les propriétés importées et clic sur le bouton MAJ du tableau pour un bien donné
- Appel REST :
curl –location –request GET ‘https://api.ts-immo.org/property/<ID TSIMMO DE LA PASSERELLE>’ –header ‘TS-IMMO-KEY: <VOTRE LICENCE>’
Le champ se récupère de manière « pointée » comme par exemple financial.transaction.price.amount
Voilà un exemple pour récupérer et stocker les données (à faire dans un sous-thème dans functions.php par exemple) :
add_action('tsimmo_import_property_extra', 'myimport', 10, 4);
function myimport($estate_id, $property, $agency, $themeImporter){
update_post_meta($estate_id, 'reference-interne', TsImmoCore::modelGet($property, 'reference'));
update_post_meta($estate_id, 'prix', TsImmoCore::modelGet($property, 'financial.transaction.price.amount'));
update_post_meta($estate_id, 'charges-annuelles', TsImmoCore::modelGet($property, 'financial.building_costs.amount.amount'));
}