Realitný systém RealSoft slúži pre správu nehnuteľností a maklérov realitných agentúr. Okrem štandardných funkcií umožňuje export na 80 známych inzertných portálov, vrátane exportu na vlastný web. Export údajov na vlastný web prebieha pomerne jednoducho a to prostredníctvom POST požiadavky obsahujúcu dáta vo formáte JSON. Požiadavka sa odosiela na vami zadanú URL adresu. Export prebieha automaticky v 15 minútových intervaloch v prípade ak došlo ku zmene údajov, alebo ak bol export ručne spustený v administrácií Realsoftu. Celú dokumentáciu exportu nájdete na tomto odkaze.
Poďme sa teda bližie pozrieť na to, ako funguje naše riešenie na prepojenie Realsoftu s WordPress webstránkou.
Mapovanie údajov
Dôležitým krokom prepojenia je správne priradenie (namapovanie) údajov z RealSoftu k webstránke. Tým mám namysli, aké typy príspekov, taxonómie a meta dáta budeme počas exportu vytvárať, resp. upravovať vo WordPresse. Všetko to závisí od použitej témy, v prípade témy na mieru, je potrebné vytvorit vlastné typy príspevkov, taxonómie atď. Väčšina webov, ktoré sme prepájali, mala nainštalovanú tému Houzez. Ide o veľmi šikovnú a modernú tému pre realitné agentúry ubsahujúca už vytvorené vlastné typy príspevov, taxonómii a tiež vlastné meta polia. Pri importe nehnuteľností teda vytvárame, resp. upravujeme príspevky typu property, pri importe maklérov je to typ agent.
Nehnuteľnosti sú priradené k mestskej časti (citypart_string), mestu (region_id), kraju (county_id) a štátu (state_id). Pre tieto údaje nam slúžia vlastné taxonómie property_area, property_city, property_state a property_country. Vzťah medzi mestom a krajom, resp. krajom a štátom je v téme Hozez vytvorený pomocou option. Preto, pri vytváraní nových výrazov pre uvedené taxonómie je potrebné vytvoriť aj novú option. Navyše názov option obsahuje id výrazu a hodnota option predstavuje slug výrazu nadradenej taxonómie. Napr vzťah medzi mestom a krajom je vyjadreny pomocou option s názvom “_houzez_property_city_{(id vyrazu mesta})” a s hodnotou slugu výrazu kraja. Čiže napr. mesto Poprad ma term_id = 10 a patrí do Prešovského kraja, tento vztah je uložený v option s názvom “_houzez_property_city_10” a hodnotou “presovsky-kraj”. Neviem z akého dôvodu je to takto riešené, osobne však riešim vzťahy medzi taxonómiami pomocou term meta. Čiže jednoducho k výrazu jednej taxonómii priradim cez term meta id výrazu druhej taxonómie.
Nehnuteľnosti sú ďalej zaradané do jednotlivých kategórií (category) a subkategórií (subcategory). Na priradenie týchto výrazov nam slúži taxonómia “property_type”, ktorá je hierarchická a teda podľa potreby priraďujeme aj rodičovské kategórie k podriadeným subkategóriám.
Pre zachovanie maximálnej nezávislosti medzi výrazmi z Realsoftu a výrazmi vo WordPresse sa počas vytvárania nových výrazov taxonómií vytvárajú aj term meta vyjadrujúce vzťah medzi tymíto dvoma výrazmi, a teda importovaným výrazom môžete na svojej webstránke daný výraz prepísať, napr. kategóriu “Domy a villy” premenujete na “Rodinné domy”. Vzťah ostane zachovaný ale výrazy budu odlišné. Okrem toho sú vytvárané aj term meta s pôvodným výrazom z Realsoftu.
Čiselníky, achilová päta API
Za najväčšiu slabinu API považujem práve číselníky, ktoré sú dostupné iba ako HTML tabuľky, napr. číselnik štátov. Navyše medzi údajmi odosielanými v požiadavke sa nachádza iba identifikátor pre konkrétnu položku z číselníka bez textového výrazu. Preto je potrebné počas spracovania importu priradiť k týmto identifikátorom aj slovný výraz z číselníka. Pre tento účel som si prekonvertoval HTML tabuľky do formátu JSON a vytvoril tak vlastné číselníky, ktoré priebežne aktualizujem podľa potreby a sú dostupné na tomto odkaze.
Export na dva a viac vlastné webstránky
Ďalšou slabinou exportu z Realsoftu je obmedzenie exportu len pre jednu URL adresu. Čiže v prípade, ak máte dve a viac webstránky, na ktoré chcete exportovať údaje z Realsoftu, nie je to oficiálne možné. Vyriešiť sa to da jednoducho preposielaním POST požiadavky z hlavného webu na druhý web. Čiže nastavíme export na vlastný web č. 1, kde okrem spracovania exportu sa prepošle požiadavka na druhý web. V tomto prípade však v administrácii Realsoftu uvidíte iba logy z prvého webu, avšak samotné logovanie obsahuje aj naš plugin.