# groupe_robin — Groupe Robin - site: https://grouperobin.com (WordPress Elementor, multi-lignes d'affaires : locatif, maisons neuves, commercial, hôtellerie, résidences aînés) - méthode: API interne — POST admin-ajax.php action get_list_immeubles_ajx, catégorie 126 = Appartement résidentiel (2 requêtes/sync, JSON structuré, admin-ajax.php explicitement Allow dans robots.txt) - annonces: 65 (42 immeubles × grandeurs — le grain affiché par le site ; Trois-Rivières 43, Saint-Hyacinthe 22) - couverture (sur 65 annonces): prix 100%, dispo 100%, type 100%, adresse 100%, ville 100%, superficie ~100%, GPS 100%, images 100%, description ~95%, inclusions ~90%, secteur 22% (District 55) - fixture: ok (2 requêtes POST) · test: ok (2 verts) ## Champs extraits - Le front /appartement/ est vide côté HTML : tout passe par admin-ajax.php (action get_list_immeubles_ajx, offset/immeubles_per_page, categories[]=126). La réponse JSON donne, par immeuble : id WP, titre, lien de fiche, adresse Google (address + lat/lng), photos, descriptions HTML, et `appartements_resumer` — un résumé par grandeur (grandeur, loyer « à partir de », superficie pi², statut Vacant/Loué-Vacant, dates_disponibilite_label, inclusions). - 1 annonce = 1 immeuble × grandeur (grain du site) ; external_id = `-` (ex. 127802-3½), stable. - price_label reproduit le rendu du site : « à partir de 1625$ » (ou « Prix sur demande » si loyer = 0) ; price = loyer structuré. - availability = libellés source (« Disponible maintenant », « décembre 2026 », plusieurs dates possibles), repli sur le statut. - area_sqft = champ superficie structuré ; lat/lng = géocodage Google fourni par la source ; amenities = inclusions (Stationnement, Meublé…). - Ville réelle : cherchée dans l'adresse Google puis dans le terme d'emplacement des unités (« Trois-Rivières (District 55) » → ville Trois-Rivières, secteur District 55). - description = description_generale de l'immeuble (HTML aplati). - Défense : immeubles « résidence/retraités/commercial/bureau/hôtel » écartés même si la catégorie 126 les renvoyait. ## Chevauchement multi-régions (assumé) - Le portail est unique pour tout le parc : District 55 et rues voisines à Trois-Rivières (Mauricie, 43 annonces) MAIS AUSSI le parc historique de Saint-Hyacinthe (Montérégie, 22 annonces). Conformément à la consigne, les annonces hors Mauricie sont conservées avec leur vraie ville ; la source reste classée region = Mauricie. - Le « 1200 Boullé, Campus étudiant St-Hyacinthe » offre des 1½/2½ complets (pas des chambres) : conservé. ## Champs indisponibles à la source - Pas de loyer par unité individuelle dans le résumé (le site affiche « à partir de ») ; pets non structurés au niveau immeuble (les mentions « *CHIEN ACCEPTÉ* » restent dans la description, textmine s'en charge). - Le statut « Loué-Vacant » accompagne des dates futures : l'unité est annoncée pour re-location, conservée avec sa date. ## Fragilités - Endpoint admin-ajax non versionné : un changement du thème (action ou format du JSON) casserait le connecteur (le test fixture le détecte). - Réponses lourdes (~4 Mo/page : photos en métadonnées complètes) — 2 requêtes par sync seulement. - La grandeur sert d'ID de groupe : si l'immeuble renomme « 4 ½ » en « 4.5 », l'annonce est recréée. - total_pages lu de la réponse, plafonné à max_pages = 5 (2 pages réelles). ## Échantillon - 127802-3½ : 3 ½ — Le 1105 Lorne-Germain, Trois-Rivières (District 55), à partir de 1210$, Disponible maintenant, GPS fourni. - 124350-5½ : 5 ½ — Le 2285 des Grandes-Orgues, St-Hyacinthe, à partir de 1625$, décembre 2026, 1455 pi², stationnement inclus. - 125506-1½ : 1 ½ — Le 1200 Boullé, Campus étudiant St-Hyacinthe, à partir de 800$, novembre 2026, 264 pi².