SDK

Il est nécessaire d’obtenir au préalable l’accord écrit de Publimmo pour l’utilisation de l’un ou l’autre de ces services.

Démarrage

Installer le SDK


Avec Composer

Ajoutez ce package à votre fichier composer.json

"repositories": [
  ...
  {
    "type": "vcs",
    "url": "git@github.com:alanpilloud/publimmopro-sdk-php.git"
  }
  ...
],

Puis ce requirement

"require": {
  ...
  "publimmopro/phpsdk": "*",
  ...
},

Puis exécutez composer update.

Sans Composer

Téléchargez le SDK sur github.

Placez le contenu de /src/PublimmoPro/ dans un répertoire accessible à votre code, puis incluez les différents fichiers.

Initialisation

use \PublimmoPro\Client;

// Indiquez l'ID d'agence Publimmo, et sa clé
$PublimmoClient = new Client(99999, 'key');

Client de recherche

use \PublimmoPro\Client;

$Client = new Client('2121313', 'unecle');

$Client->setType(Client::PARKING)
       ->setDisponiblite(Client::AVAILABILITY_IS_AVAILABLE)
       ->query();

// ou obtenir un objet directement
$Client->query(43242);

Initialisation

Utilisez la classe PublimmoPro\Client pour pouvoir faire des requêtes à l'API.

use \PublimmoPro\Client;

// Indiquez l'ID d'agence Publimmo, et sa clé
$PublimmoClient = new Client(99999, 'key');

Méthodes

query(int $id = null)

Envoie la requête au webservice et récupère les résultats.

Paramètres

Param Type Description
$id int Optionnel, identifiant de l'objet à chercher

Retour

Pour les requêtes d'objet, une instance de PublimmoPro\ObjectEntity est retournée ou false si la requête n'a pas retourné de résultat.

Pour les requêtes de recherche, Une instance de PublimmoPro\ObjectCollection est retournée ou false si la requête n'a pas retourné de résultat.

Exemple

$Client->query(43284); // retourne un objet ObjectEntity

$Client->query(); // retourne un objet ObjectCollection

getQueryURL()

Retourne l'URL de la requête générée.

Paramètres

Pas de paramètres

Exemple

echo $Client->getQueryURL();

setCity(string $city)

Fonctionnement à vérifier

Permet de définir la localité dans laquelle effectuer la recherche.

Paramètres

Param Type Description
$city string Nom de la ville

Exemple

$Client->setCity('Lausanne');

setCityId(int $cityId)

Définit dans quelle ville rechercher.

Paramètres

Param Type Description
$cityId int Identifiant de la ville, se référer à la liste des communes ou à la recherche de communes

Exemple

$Client->setCityId(481);

setCountry(string $countryCode)

Définit le pays dans lequel les objets doivent être recherchés.

Paramètres

Param Type Description
$countryCode string Pays au format ISO 3166-alpha2. Exemple: 'fr', 'ch' ou 'de'

Exemple

$Client->setCountry('fr');

setCourtierId(int $id)

Définit l'identifiant du courtier afin de ne retourner que ses objets.

Paramètres

Param Type Description
$id int Identifiant du courtier

Exemple

$Client->setCourtierId(58495);

setDisponiblite(int $disponibility)

Définit la disponiblitité des objets à retourner.

Paramètres

Param Type Description
$disponiblitity int Identifiant de disponibilité

Constantes

Exemple

$Client->setDisponiblite(Client::AVAILABILITY_IS_AVAILABLE);

setDistance(int $distance)

Définit le rayon de recherche en km. Fonctionne de paire avec setCityId.

Paramètres

Param Type Description
$distance int Rayon de recherche

Exemple

$Client->setCityId(481)->setDistance(20);

setForeigners()

Définit que la recherche doit retourner les objets disponibles à la vente aux étrangers.

Paramètres

Pas de paramètres

Exemple

$Client->setForeigners();

setReference($ref)

Définit l'identifiant Publimmo ou la référence agence de l'objet à chercher.

Paramètres

Param Type Description
$ref mixed Identifiant Publimmo ou référence d'agence

Exemple

$Client->setReference(54589);
$Client->setReference('Villa 34');

setIds(int ...$ids)

Définit une liste d'identifiants d'objets à récupérer.

Paramètres

Param Type Description
$ids int Liste d'identifiants

Exemple

$Client->setIds(45894, 23489, 45495);

setLanguage(string $ul)

Définit la langue utilisateur.

Paramètres

Param Type Description
$ul string Langue au format ISO 3166-alpha2. Valeurs possibles : 'de', 'fr' ou 'en'

Exemple

$Client->setLanguage('de');

setLocationType(int $type)

Définit la durée du contrat de location.

Paramètres

Param Type Description
$type int Type de durée

Constantes

Exemple

$Client->setLocationType(Client::LOCATION_TYPE_WEEK);

setNpaOrder(int $npaOrder)

Définit l'ordre des résultats en commencant par le Numréro Postal d'Acheminement spécifié.

Paramètres

Param Type Description
$npaOrder int NPA de la commune

Exemple

$Client->setNpaOrder(1800);

setRange(string $type, int $min, int $max)

Définit une fourchette de prix, surface ou chambres.

Paramètres

Param Type Description
$type string Type de valeur, "price", "surface" ou "room"
$min int Prix minimum désiré
$max int Prix maximum désiré

Exemple

$Client->setRange("price", 2000, 2900);

// définir plusieurs fourchettes
$Client->setRange("price", 2000, 2900)
       ->setRange("room", 3, 6);

setPromotionType(int $type)

Définit le type de promotion à récupérer.

Paramètres

Param Type Description
$type int Type de promotion

Constantes

Exemple

$Client->setPromotionType(Client::PROMOTION_TYPE_NEW);

setRegion(int $region)

Définit de quelle région doivent provenir les objets.

Paramètres

Param Type Description
$region int Identifiant de la région, se référer à la liste des régions

Exemple

$Client->setRegion(8);

setResidenceSecondaire(bool $state)

Définit si on souhaite obtenir des objets disponibles à la vente en résidence secondaire.

Paramètres

Param Type Description
$state bool true inclut les objets disponibles à la vente en résidence secondaire
false les exclut

Exemple

$Client->setResidenceSecondaire(true);

setSearchString(string $searchString)

Permet de définir un mot-clé de recherche.

Paramètres

Param Type Description
$searchString string Mot-clé à rechercher

Exemple

$Client->setSearchString('piscine');

setSelfOnly()

Fonction de réseau

Permet de ne récupérer que les résultats de l'agence, sans ceux du réseau.

Paramètres

Pas de paramètres

Exemple

$Client->selfOnly();

setOrder(int $sortBy, string $sortDirection = null)

Permet de définir le critère de tri et l'ordre.

Paramètres

Param Type Description
$sortBy int Critère de tri
$sortDirection string Optionnel, sens du tri, accepte 'asc' ou 'desc'

Constantes

Exemple

$Client->setSort(Client::SORT_BY_PRICE);

$Client->setSort(Client::SORT_BY_PRICE, 'asc');

setTransaction(int $transaction)

Définit le type de transaction, acheter ou louer.

Paramètres

Param Type Description
$transaction int Type de transaction

Constantes de transaction

Exemple

$Client->setTransaction(Client::BUY);

setType(int ...$types)

Permet de faire une recherche d'objets selon les critères définis.

Paramètres

Param Type Description
$types int Liste de types, 1 à 6 types possibles

Constantes de types

Exemple

$Client->setType(Client::APPARTMENT,Client::HOUSE);​

Object Collection

PublimmoPro\ObjectCollection est une classe représentant une liste d'objets obtenue lors d'une recherche.

Initialisation

Utilisez la classe PublimmoPro\Collection pour pouvoir faire des manipulations sur les résultats de recherche.

Exemple d'instanciation de l'objet

Il est peu probable que ceci ait besoin d'être fait à la main
En effet, la méthode query() de la classe PublimmoPro\Client retourne déjà un objet ObjectCollection.

use \PublimmoPro\ObjectCollection;

$Collection = new ObjectCollection($results, 80);

$Collection->get();

Il est plus probable que cela soit utilisé à la suite d'une requête Client.


use \PublimmoPro\Client;

$Client = new Client('2121313', 'unecle');

$Collection = $Client->setType(Client::PARKING)
       ->setDisponiblite(Client::AVAILABILITY_IS_AVAILABLE)
       ->query();

$Collection->get();

Méthodes

get()

Retourne la liste d'objets.

Paramètres

Pas de paramètres

Exemple

$Collection->get();

getTotal()

Retourne le nombre total d'objets trouvés.

Paramètres

Pas de paramètres

Exemple

$Collection->getTotal(); // 432

filter(string $filter_type, mixed $objects_to_filter)

Filtre les résultats en incluant ou excluant les identifiants d'objets indiqués.

Paramètres

Param Type Description
$filter_type string Type de filtre, accepte "include" ou "exclude"
$objects_to_filter mixed identifiant de l'objet à filtrer ou tableau d'objets à filtrer

Exemple

$Collection->filter('include', 85763)->get();
$Collection->filter('exclude', [85763, 24987])->get();

sort(mixed $instructions)

Trie les résultats selon les instructions données.

Paramètres

Param Type Description
$instructions mixed Chaîne d'instruction ou tableau de châines d'instructions

Composition de l'instruction

Une instruction est une châine composée des trois éléments suivants :

Sa syntaxe est "champ:sens:type".

Exemple

$Collection->sort('prix:asc:integer')->get();
$Collection->sort(['prix:asc:integer', 'pieces:desc:float'])->get();

Object Entity

Représente un objet.

Il est peu probable que vous ayiez à instancier vous-même cette classe.

Lorsque que l'on fait une requête d'objet, elle retourne directement un objet de type PublimmoPro\ObjectEntity :

$ObjectEntity = $Client->query(43242);

Méthodes

__construct(object $result)

Créé une nouvelle instance de PublimmoPro\ObjectEntity.

Paramètres

Param Type Description
$result object Résultat provenant d'une requête d'objet PublimmoPro\Client

Exemple

$Mailer = new ObjectEntiy($responseFromAPI);

raw()

Retourne les données brutes et exploitables directement.

Consultez la liste des propriétés disponibles.

Paramètres

Pas de paramètre.

Exemple

$objectData = $ObjectEntity->raw();

echo '<h1>A vendre à '.$objectData->localite.'</h1>';

isFromNetwork()

Vérifie s'il s'agit d'un objet provenant du réseau d'agences.

Paramètres

Pas de paramètre.

Exemple

$ObjectEntity->isFromNetwork()
    ? echo 'vrai'
    : echo 'faux';

isPromotion()

Vérifie que l'objet est une promotion.

Paramètres

Pas de paramètre.

Exemple

$ObjectEntity->isPromotion()
    ? echo 'vrai'
    : echo 'faux';

isType(int $objectType)

Vérifie le type d'objet.

Paramètres

Param Type Description
$objectType int Type d'objet, utilisez les constantes de types de la classe PublimmoPro\Client.

Constantes de types de la classe PublimmoPro\Client

Exemple

$ObjectEntity->isType(Client::HOUSE)
    ? echo 'vrai'
    : echo 'faux';

Mailer

La classe Mailer permet de créer des demandes de dossier à envoyer par email. Elle ne gère pas directement l'envoi de mail, ceci vous laissant le libre choix de la méthode à employer.

use \PublimmoPro\Mailer;

$userData = [
    // mandatory fields
    'title' => 'Monsieur',
    'lastname' => 'Dupont',
    'firstname' => 'Jean',
    'email' => 'jean@dupont.ch',
    'phone' => '021 555 55 55',
    'language' => 'fr',

    // secondary fields
    'address' => 'Rue exemple 3',
    'zipcode' => '5555',
    'city' => 'Ville exemple',
    'country' => 'Suisse',
    'message' => 'Bonjour, je souhaite obtenir un dossier.',
];

$Mailer = new Mailer($currentObjectEntity, $userData, 'https://mywebsite.com');

// Example for WordPress
wp_mail(
    $Mailer->toMail, // to email address
    Mailer::SUBJECT, // subject
    $Mailer->getEmailBody() // body
);

Méthodes

__construct(ObjectEntity $objectEntity, array $userdata, string $siteUrl)

Créé une nouvelle instance de PublimmoPro\Mailer.

Paramètres

Param Type Description
$objectEntity PublimmoPro\ObjectEntity Entité d'objet, représente l'objet pour lequel on veut faire la demande
$userData array Tableau de clé/valeur contenant obligatoirement les clés suivantes title, lastname, firstname, email, phone, language et accessoirement address, zipcode, city, message
$siteUrl string Url du site courrant

Exemple

$Mailer = new Mailer($currentObjectEntity, $userData, 'https://mywebsite.com');

getEmailBody()

Retourne le corps de l'email pour une demande de dossier.

Paramètres

Pas de paramètres

Exemple

echo $Mailer->getEmailBody();