La syndication d’annonces permet à un producteur de contenu extérieur (ici AllYouCanPost) de mettre à disposition automatiquement ses annonces, sans ressaisie par l’utilisateur, pour une intégration dans votre site.
AllYouCanPost fournit un flux XML en HTTPS, collecté journalièrement par votre script. Les flux sont mis à jour toutes les 24 h.
Pour plus d’information sur la syndication
Les annonces importées sont indiquées avec une marque d'origine visible pour l'administrateur et le propriétaire de l'annonce
Pour démarrer, il faut Contacter le fournisseur pour qu’il vous enregistre comme partenaire et vous fournisse une URI privée de votre flux.
Saisir cette URI dans ADMIN > CONFIGURATION > SYNDICATION
Il faudra indiqué la version du flux :
Vous pouvez alors vérifier le bonne connection à cette URI en cliquant sur lire les tags. Cette action provoque le lecture de l'URI renseignée et décode la première annonce pour en afficher les tags XML.
Résultats si le fichier est accessible et contient au moins une annonce
Le flux de AYCP est multi-annonceurs.
Vous pouvez donc choisir :
Fonction de la version du flux (voir avec AYCP), vous pouvez avoir un flux qui regroupe les annonces sous de publisher
ou des annonces à plat sans regroupement.
En version 1 du flux : Les utilisateurs seront crées avec le champs suivants (email, téléphone, type d'annonceur (pro ou particulier), nom (si présent) et localisation compléte) issus du flux.
,'protype'=>$e['mainKeys']['usertype']
,'procpny'=>$e['mainKeys']['usertype']=="pro" ? $e['mainKeys']['username'] : ""
,'username'=>$e['mainKeys']['username']
,'email'=>$e['primeKeys']['email']
,'phone'=>$e['primeKeys']['phone']
,'location'=>not_null($e['mainKeys']['location'])
,'loclat'=>not_null($e['mainKeys']['loclat'])
,'loclng'=>not_null($e['mainKeys']['loclng'])
,'loclatlng'=>not_null($e['mainKeys']['loclatlng'])
,'loczipcode'=>not_null($e['mainKeys']['loczipcode'])
,'loccity'=>not_null($e['mainKeys']['loccity'])
En version 2 du flux : Les utilisateurs seront crées avec les champs suivants issus du flux XML.
<company><![CDATA[xxxx]]></company>
<commercial_name><![CDATA[xxx]]></commercial_name>
<website><![CDATA[www.xx.fr]]></website>
<logo_url><![CDATA[https://www.allyoucanpost.com/uploads/users/logos/1537864214-987141993.jpg]]></logo_url>
<agency_scale><![CDATA[https://www.xx.nl/honoraires/?lang=fr]]></agency_scale>
<description><![CDATA[xx ]]></description>
<location>
<address><![CDATA[Domaine de xx]]></address>
<zipcode><![CDATA[58000]]></zipcode>
<city><![CDATA[zzzz]]></city>
<country_code><![CDATA[fr]]></country_code>
</location>
<contact>
<nickname><![CDATA[xxx]]></nickname>
<firstname><![CDATA[xxx]]></firstname>
<lastname><![CDATA[xx]]></lastname>
<email><![CDATA[info@xx.nl]]></email>
<phone><![CDATA[1122333]]></phone>
</contact>
,'procpny'=>$pubD['protype']=="pro" ? $pubD['commercial_name'] : $pubD['_contact']['nickname']
,'username'=>not_null($pubD['_contact']['nickname'])
,'lastname'=> $is_anonymous ? "ai" : not_null($pubD['_contact']['lastname'])
,'firstname'=> $is_anonymous ? "robot" : not_null($pubD['_contact']['firstname'])
,'email'=>not_null($pubD['_contact']['email'])
,'phone'=>not_null($pubD['_contact']['phone'])
,'location'=>not_null($pubD['_location']['address']).', '.not_null($pubD['_location']['zipcode']). ' '. not_null($pubD['_location']['city'])
,'loczipcode'=>not_null($pubD['_location']['zipcode'])
,'loccity'=>not_null($pubD['_location']['city'])
Ils sont en état publiés
par défaut (status 40) et le mot de passe est aléatoire. La clef d'identification est l'email. Si l'utiliseur veut par la suite utiliser ce compte sur votre script, il pourrat le faire simplement en demandant une réinitialisation de son mot de passe.
Si le flux ne contient pas de nom, les nom et prénom de l'annonceur sont robot
et ai
Si l'utilisateur est de tye professionnel et que le flux contient un logo_url, alors l'image du logo est chargé (si l'potion de copie des images est activée) dans le fiche de l'annonceur
Exemple d'annonce affectée à l'utilisateur par défaut
Il est possible de copier les information de contact (email et téléphone) présents dans l'annonce, à la fin de la description de l'annonce. Pour activer ce mode :
Les informations de contact seront alors affichés (si non vides) avec la régle suivante :
Si le champ email existe, on affiche l'email. Si le champ téléphone existe, on ajoute un lien cliquable avec le numéro de téléphone.
Le flux de AYCP est multi-catégories. Il est donc nécessaire de faire correspondre les catégories (IDs) issues du flux avec les catégories (IDs) de votre site.
Un fichier de traduction (au format JSON) devra être indiqué dans le champ suivant. Si auncun fichier, alors les IDs des catégories des annonces seront strictement égales aux IDs du flux. Assurez vous bien de l'existance des ces IDs sur votre site.
[
{ "from_id" : 1, "from_name" : "Voiture-Berline", "to_id" : 21 },
{ "from_id" : 2, "from_name" : "Voiture-Coupé", "to_id" : 21 }
]
le champ from_id
est l'ID de la catégorie dans le flux entrant, le champ to_id
est l'ID de la catégorie de votre site. Le champ from_name
n'est pas utilisé.
Il est possible de tester le fichier de traduction par le bouton suivant.
Le site va anayser le fichier et vérifier l'existance de catégories destination pour chaque entrée. Il va compléter le fichier avec des commentaires et des erreurs.
Vous pouvez alors consulter le fichier texte et rechercher les erreurs indiquées comme suit :
{
"from_id": 5,
"from_name": "Voiture-Break",
"to_id": 0,
"to_name": "?",
"to_error": "ERROR - does not exist"
},
Le flux de AYCPfournit des information de localisation basiques comme, le ville, le pays et l'adresse. Pour pouvoir afficher cette annonce sur une carte, il est nécessaire de géolocaliser (obtenir les coordonnées GSP) cette adresse.
Il faudra activer l'option :
ZADS effectue ce traitement de géocoding automatiquement lors de chaque importation d'annonce et utilise le service du fournisseur que vous pouvez choisir parmi la liste suivante dans ADMIN > CONFIGURATION > LOCALE
Les résultats peuvent différer fonction du fournisseur choisi :
Si vous choisissez openstreetmap :
Si vous choisissez gouvfr :
Si vous choisissez opencage :
Attention, il ne faut pas choisir les services GoogleMap ou MapBox qui ne sont pas compatibles
Il existe 2 modes de synchronisations à paramétrer dans ADMIN > CONFIGURATION > SYNDICATION
La synchronisation automatique utilise les CRON/BATCHES existant journalier et horaires et se produira donc à la même heure.
Il est possible aussi bien pour l’annonceur que l’administrateur de forcer la synchronisation manuellement à tout moment.
Résultat aprés un certain temps d'attente
L’annonce est automatique créée et le contenu est hérité des champs du fournisseur.
Un tag origin
indique que cette annonce provient d’une syndication et un champe référénce
indique la référence du fournisseur pour chaque annonce.
Indication de l'origine
Si on édite cette annonce, une notification nous précise que cette annonce est synchronisée. Les modifications seront perdues à la prochaine synchronisation de cette annonce !
Modification d'une annonce par un utilisateur
Origine de l'annonce dans le suivi des modifications
Pour une syndication de type AllYouCanPost, le titre est égal au champ titre
du flux, la desc est égal au champ content
. Le prix est connecté au champ price
.
La devise du prix est celle paramétrée par défaut dans le site, PAS CELLE indiquée dans le flux.
Si vous avez crée des champs spéciaux dans ZADS (comme type de moteur, carrosserien, puissance fiscale, ....), vous pouvez faire le lien avec les caractéristiques des annonces du fournisseur. Ceci est codé en dur et donc non modifiable sans contacter le support de ZADS. Ci-dessous le codage par défaut à titre d'exemple
// cars
array( "key"=> 'make', "vfieldId" => 29 ) // marque
,array( "key"=> 'model', "vfieldId" => 29 ) // modéle
,array( "key"=> 'year', "vfieldId" => 28 ) // année modéle
,array( "key"=> 'mileage', "vfieldId" => 14 ) // kilometrages
,array( "key"=> 'transmission', "vfieldId" => 27 ) // boite vitesse
,array( "key"=> 'fuel', "vfieldId" => 32 ) // energie
,array( "key"=> 'engine_size', "vfieldId" => 30 ) // engine inf cubic centimetres
// Housing ads
,array( "key"=> 'property_energy_dpe', "vfieldId" => 20 ) // engine inf cubic centimetres
,array( "key"=> 'property_energy_ges', "vfieldId" => 21 ) // engine inf cubic centimetres
,array( "key"=> 'property_room', "vfieldId" => 16 ) // engine inf cubic centimetres
,array( "key"=> 'property_bedroom', "vfieldId" => 143 ) // engine inf cubic centimetres
,array( "key"=> 'property_sleepings', "vfieldId" => 145 ) // couchage
,array( "key"=> 'property_area', "vfieldId" => 13 ) // surface en M2
,array( "key"=> 'property_furnished', "vfieldId" => 22) // engine inf cubic centimetres
// for land
,array( "key"=> 'property_constructible', "vfieldId" => 141, "type" => "bool" ) // constructible
// for parkings
,array( "key"=> 'property_covered', "vfieldId" => 142, "type" => "bool" ) // couvert ou non
// for rental
,array( "key"=> 'property_place', "vfieldId" => 144, "type" => "bool" ) // mer / montagne / ...
// shoes
,array( "key"=> 'size_feet', "vfieldId" => 26 ) // engine inf cubic centimetres
Les annonces qui sont en issues de la syndication ne sont pas notifiées par email vers les anonceurs en cas d'expiration ou d'effacement.
Les paramétres généraux de la syndication s'appliquent. On peut :
Il est possible de présenter un lien vers l'annonce initiale chez le fournisseur. il faut activer l'option :
La fiche de l'annonce affiche alors le lien :
Lors de la synchonisation, le flux XML n'indique pas si une annonce est nouvelle ni la liste des annonces à effacer.
Avant chaque chargement, ZADS procède donc à une mise en mode "effacé" de toutes les annonces puis ensuite les réactive si elles existent dans le flux (en utilisant le tag reference présent dans le flux). Si l'annonce existe déjà, on met à jour les champs titre, description, prix, et images.
On peut aussi choisir de changer la date de modification à la date du moment de la synchro. Ce qui aura pour effet de mettre l'annonce en tête de liste. On peut désactiver cela en ne changeant pas la date (l'annonce reste ainsi dans la liste à la date de première création).
Il est possible d'affacer toutes les annonces importées ou tous les annonceurs crées automatiquement. Ceci peut être utile pendant des phase de mise au point.
Chaque activité de synchronisation est tracée dans un journal qui peut être consulté via le menu ADMIN > SYNDICATION
Journal pour l'administrateur
nb
indique le nombre d'annonces chargées , nbup
indique le nombre d'images chargées sur le site.
Via le menu ADMIN > CONFIGURATION > SYNDICATION
, on peut effectuer les réglages de :
Les flux disponibles ont une forme standardisée et répondent aux critères listés ci dessous. Ils peuvent être exportés dans de larges catégories telles que: immobilier, auto / moto, produits etc. https://www.allyoucanpost.com/fr/partenaires/flux-xml-export/