Specyfikacja formatu Agencja3000

Struktura formatu programu Agencja3000 oparta jest na formacie Domy.pl (dawniej Oferty.net, opis na domy.pl/eksport). Oba formaty różnią się ilością pól opisujących oferty, typami ofert i sposobem obsługi zdjęć.

Pliki z przykładowymi eksportami

Sposób wysyłki

Eksport przesyłany w postaci pliku ZIP. Archiwum ZIP zawiera plik XML (opisujący oferty oraz zdjęcia) oraz pliki zdjęć (płaska struktura bez podkatalogów, zdjęcia dodatkowo opisane w pliku XML). Plik XML ma kodowanie znaków UTF-8.

Struktura pliku XML

<?xml version="1.0" encoding="utf-8" ?> - nagłówek XML
<plik> - główny znacznik, reprezentujący cały plik uploadu
    <header> - znacznik obejmujący wszelkie dodatkowe informacje (od <plik> do <lista_ofert>)
        <informacje> - znacznik zawierający różne informacje.
        <agencja> - nazwa agencji (nie musi to być równoznaczne z loginem agencji)
        <data> - czas eksportu w formacie rrrr-mm-dd hh:mm:ss
        <wersja>0.4</wersja>
        <cel>oferty.net</cel>
        <zawartosc_pliku> - czy plik jest całościowy, czy różnicowy, dopuszczalne wartości to: calosc i roznica
    </header>
    <lista_ofert> - lista wszystkich ofert, w tym znaczniku zagnieżdżone są znaczniki <dzial>
        <dzial tab="tab" typ="typ"> - znacznik, w którym zagnieżdżone są znaczniki <oferta> i <oferta_usun> z danego działu
          atrybut tab przyjmuje wartości mieszkania, domy, dzialki, lokale (nieruchomości komercyjne) lub pokoje
          atrybut typ przyjmuje wartości sprzedaz lub wynajem
            <oferta>
                <id> - identyfikator oferty
                <cena waluta="KOD"> - cena oferty (całkowita, nie za metr), w atrybucie waluta trzyliterowy kod: PLN, USD lub EUR
                <param nazwa="nazwa" typ="typ"> - wszystkie inne parametry oferty, atrybut nazwa to nazwa parametru (np. opis, powierzchnia, ...)
                    atrybut typ = int, integer - liczba całkowita
                        bool, boolean, tak, T, true, 1 = prawda, wszystko inne = fałsz
                        real, float - liczba, część dziesiętna może być oddzielona przecinkiem lub kropką
                        text - dowolny tekst
                            <linia> - jeżli parametr typu text ma być na sztywno podzielony na linie, należy go zapisać w postaci:
                                <linia>pierwsza linia</linia>
                                <linia>druga</linia>
            </oferta>
            <oferta_usun> - znacznik służący do usuwania oferty (tylko przy eksporcie różnicowym!, dla każdej oferty oddzielna sekcja <oferta_usun>!)
                <id> - identyfikator oferty
            </oferta_usun>
        </dzial>
    </lista_ofert>
    <zdjecia> - lista wszystkich zdjęć, w tym znaczniku zagnieżdżone są znaczniki <zdjecie>
        <zdjecie> - znacznik dla zdjęć
          ...
        </zdjecie>
    </zdjecia>
</plik>

Eksport zdjęć

Format Domy.pl wymienia kilka sposobów wysyłki zdjęć. Format Agencja3000 stosuje oddzielną sekcję <zdjecia> znajdującą się zaraz po <lista_ofert>, gdzie znajdują się informacje o wszystkiech zdjęciach wszystkich eksportowanych ofert. Każde zdjęcie opisane jest w znaczniku <zdjecie>. Porównując z formatem Domy.pl, jest to sposób nr 3, przy czym zawsze wysyłane są wszystkie zdjęcia (informacje w XML oraz pliki zdjęć) do eksportowanych ofert.

Eksporty pełne zawierają wszystkie oferty oraz zdjęcia (pliki, informacja w XML) do ofert zamieszczonych w XML.

Eksporty różnicowe zawierają zmienione oferty a dla każdej zmienionej oferty przesyłany jest komplet istniejących zdjęć. To oznacza, że zdjęcia, które istnieją na portalu, a nie zostały wysłane w eksporcie, należy usunąć.

<zdjecie>
    <id> - identyfikator oferty
    <typ> - m / d / l / z / p (mieszkanie / dom / komercyjne / działka / pokoje)
    <sprzedaz> - typ int, 0 - nie, 1 - tak
    <kolejnosc> - typ int
    <akcja> - zawsze d - dodaj (zawsze wysyłany komplet zdjęć do ofert opisanych w XML)
    <nazwa> - nazwa pliku ze zdjęciem
    <opis> - opis zdjecia, opcjonalny
</zdjecie>

Przesyłanie współrzędnych geograficznych

szerokość geograficzna: <param nazwa="n_geo_y" typ="real">52.242</param>
długość geograficzna: <param nazwa="n_geo_x" typ="real">21.2745</param>

Przesyłanie informacji o lokalizacjach (preferowany sposób)

<location>
    <area level="1">wartość</area>
    <area level="2">wartość</area>
    <area level="3">wartość</area>
    <area level="4">wartość</area>
    <area level="5">wartość</area>
    <area level="6">wartość</area>
    <area level="7">wartość</area>
    <area level="8">wartość</area>
</location>

- przykład dla Polska / Mazowieckie / warszawski zachodni / Błonie:
<location>
    <area level="1">Polska</area>
    <area level="2">Mazowieckie</area>
    <area level="3">warszawski zachodni</area>
    <area level="4">Błonie</area>
</location>

Przesyłanie informacji o lokalizacjach stary sposób

- jeśli dysponujemy kompletem informacji w stylu województwo/miasto/dzielnica
    np. mazowieckie/warszawa/mokotów informacja w xml-u powinna wyglądać:
    <param nazwa="wojewodztwo" typ="text">mazowieckie</param>
    <param nazwa="miasto" typ="text">warszawa</param>
    <param nazwa="dzielnica" typ="text">mokotów</param>

- jeśli dysponujemy kompletem informacji w stylu województwo/powiat/gmina
    np. mazowieckie/nowodworski/Pomiechówek informacja w xml-u powinna wyglądać:
    <param nazwa="wojewodztwo" typ="text">mazowieckie</param>
    <param nazwa="miasto" typ="text">nowodworski</param>
    <param nazwa="dzielnica" typ="text">Pomiechówek</param>

Lista parametrów dla poszczególnych typów ofert wraz z typami parametrów

mieszkania

advertisement_text => text
agent_email => text
agent_nazwisko => text
agent_tel_biuro => text
agent_tel_kom => text
balkon => bool
bezprowizji => bool
biuro => bool
czas_wynajmu => text
czy_cena_do_negocjacji => bool
dataaktualizacji => text
dodatkowe_koszty => text
dwupoziomowe => bool
dzielnica => text
forma_wlasnosci => text
gaz => text
internet => bool
kaucja => text
klimatyzacja => bool
kraj => text
kuchniawyposazona => bool
lazienka_wc => bool
liczba_miejsc_parkingowych => int
liczba_poziomow => int
liczba_sypialni => int
liczba_wind => int
liczbalazienek => int
liczbapieter => int
liczbapokoi => int
liczbatelefonow => int
ma_domofon => bool
ma_gaz => bool
ma_kominek => bool
ma_ogrzewanie => bool
ma_pom_socjalne => bool
ma_rampe => bool
ma_telefon => bool
materialbudowy => text
meble => bool
miasto => text
miejscaparkingowe => text
napoddaszu => bool
nazwa_inwestycji => text
numer_licencji_posrednika => int
ogrzewanie => text
okolica => text
opis => text
osiedle_zamkniete => bool
piecykgazowy => bool
pietro => int
piwnica => bool
powierzchnia_balkonu => real
powierzchnia_lazienki => real
powierzchnia => real
przetarg => bool
przyjazne_zwierzetom => bool
rodzajlacz => text
rokbudowy => int
rynek_pierwotny => bool
stanbudynku => text
stannieruchomosci => text
stolarka_okienna => text
taras => bool
termin_przetargu => text
typ_podlogi => text
typbudynkumieszk => text
typkuchni => text
ulica => text
vadium => real
wideo => text
winda => bool
wojewodztwo => text
wylacznosc => bool
wysokoscpomieszczen => real
zwalnianeod => text

domy

advertisement_text => text
agent_email => text
agent_nazwisko => text
agent_tel_biuro => text
agent_tel_kom => text
balkon => bool
bezprowizji => bool
biuro => bool
czas_wynajmu => text
czy_cena_do_negocjacji => bool
dataaktualizacji => text
dlugoscdzialki => real
dodatkowe_koszty => text
drogadojazdowa => text
dzielnica => text
forma_wlasnosci => text
gaz => text
internet => bool
kanalizacja => text
kaucja => text
klimatyzacja => bool
kraj => text
kuchniawyposazona => bool
lazienka_wc => bool
liczbalazienek => int
liczba_miejsc_parkingowych => int
liczba_poziomow => int
liczba_sypialni => int
liczbapieter => int
liczbapokoi => int
liczbatelefonow => int
ma_domofon => bool
ma_gaz => bool
ma_kanalizacje => bool
ma_kominek => bool
ma_ogrzewanie => bool
ma_pom_socjalne => bool
ma_rampe => bool
ma_telefon => bool
ma_wode => bool
materialbudowy => text
meble => bool
miasto => text
miejscaparkingowe => text
nazwa_inwestycji => text
numer_licencji_posrednika => int
ogrodzenie => text
ogrzewanie => text
okolica => text
opis => text
osiedle_zamkniete => bool
piecykgazowy => bool
piwnica => bool
powierzchnia_balkonu => real
powierzchnia_lazienki => real
powierzchnia => real
powierzchniadzialki => real
prad => bool
przetarg => bool
przyjazne_zwierzetom => bool
rodzajlacz => text
rokbudowy => int
rynek_pierwotny => bool
sila => bool
stanbudynku => text
stannieruchomosci => text
stolarka_okienna => text
szerokoscdzialki => real
taras => bool
termin_przetargu => text
typpodlaczeniawody => text
typdachu => text
typzabudowy => text
ulica => text
vadium => real
wideo => text
wojewodztwo => text
wylacznosc => bool
wysokoscpomieszczen => real
zwalnianeod => text

działki

advertisement_text => text
agent_email => text
agent_nazwisko => text
agent_tel_biuro => text
agent_tel_kom => text
bezprowizji => bool
czy_cena_do_negocjacji => bool
dataaktualizacji => text
dlugoscdzialki => real
drogadojazdowa => text
dzielnica => text
forma_wlasnosci => text
gaz => text
kanalizacja => text
kraj => text
ma_gaz => bool
ma_kanalizacje => bool
ma_ogrzewanie => bool
ma_wode => bool
miasto => text
nazwa_inwestycji => text
numer_licencji_posrednika => int
ogrodzenie => text
ogrzewanie => text
okolica => text
opis => text
powierzchnia => real
prad => bool
przetarg => bool
przyjazne_zwierzetom => bool
sila => bool
szerokoscdzialki => real
termin_przetargu => text
typdzialki => text
typpodlaczeniawody => text
ulica => text
vadium => real
wideo => text
wojewodztwo => text
wylacznosc => bool

lokale

advertisement_text => text
agent_email => text
agent_nazwisko => text
agent_tel_biuro => text
agent_tel_kom => text
bezprowizji => bool
czas_wynajmu => text
czy_cena_do_negocjacji => bool
dataaktualizacji => text
dlugoscdzialki => real
dodatkowe_koszty => text
drogadojazdowa => text
dzielnica => text
forma_wlasnosci => text
gaz => text
internet => bool
kanalizacja => text
kaucja => text
klimatyzacja => bool
kraj => text
liczba_miejsc_parkingowych => int
liczba_wind => int
liczbalazienek => int
liczbapieter => int
liczbapomieszczen => int
liczbatelefonow => int
ma_domofon => bool
ma_ogrzewanie => bool
ma_pom_socjalne => bool
ma_rampe => bool
ma_telefon => bool
ma_wode => bool
materialbudowy => text
meble => bool
miasto => text
miejscaparkingowe => text
nazwa_inwestycji => text
numer_licencji_posrednika => int
ogrodzenie => text
ogrzewanie => text
okolica => text
opis => text
pietro => int
powierzchniadzialki => real
powierzchnia => real
prad => bool
przetarg => bool
przeznaczenie => text
przyjazne_zwierzetom => bool
rodzajlacz => text
rokbudowy => int
rynek_pierwotny => bool
sila => bool
stanbudynku => text
stannieruchomosci => text
szerokoscdzialki => real
termin_przetargu => text
total_area => real
typ_biura => text
typkuchni => text
typlokalu => text
typpodlaczeniawody => text
ulica => text
vadium => real
wideo => text
winda => bool
wojewodztwo => text
wylacznosc => bool
wysokoscpomieszczen => real
zabezpieczenia => text
zwalnianeod => text

pokoje

advertisement_text => text
agent_email => text
agent_nazwisko => text
agent_tel_biuro => text
agent_tel_kom => text
balkon => bool
bezprowizji => bool
biuro => bool
czy_cena_do_negocjacji => bool
dataaktualizacji => text
dzielnica => text
forma_wlasnosci => text
internet => bool
kraj => text
lazienka_wc => bool
liczbapieter => int
liczbapokoi => int
liczbatelefonow => int
meble => bool
miasto => text
numer_licencji_posrednika => int
ogrzewanie => text
okolica => text
opis => text
osiedle_zamkniete => bool
pietro => int
powierzchnia => real
przetarg => bool
przyjazne_zwierzetom => bool
rokbudowy => int
stannieruchomosci => text
termin_przetargu => text
typkuchni => text
ulica => text
vadium => real
wideo => text
winda => bool
wojewodztwo => text
wylacznosc => bool
wysokoscpomieszczen => real
zwalnianeod => text

Eksport ofert inwestycji

Format oferty przynależącej do inwestycji jest identyczny z formatem zwykłych ofert, z jednym wyjątkiem. Oferta taka będzie zawierała 2 parametry:

rynek_pierwotny => bool - przyjmujący zawsze wartość true
nazwa_inwestycji => text - nazwa inwestycji

Lista dodatkowych parametrów

Lista poniżej zawiera pola, które mogą pojawić się przy ofertach podczas eksportów na strony internetowe biur. Rozszerzenie formatu Domy.pl o dodatkowe parametry (nazwa => "typ" - opis).

accessControl => bool - Kontrola dostępu
agent_gg => text - Numer GG
agent_skype => text - Login Skype
amfilada => bool - Amfilada
apartmentCompositionType => text - Rozkład mieszkania
apartmentSituatedType => text - Usytuowanie mieszkania
balconyType => text - Typ balkonu
bank => bool - Bank
basicMap => bool - Mapa zasadnicza
bath => bool - Wanna
budgetFitOutPrice => text - Budżet fit out
budgetFitOutPriceM2 => text - Budżet fit out (m2)
buildingDepth => int - Głębokość budynku
buildingManagementSystem => bool - System zarządzania budynkiem
buildingStandard => text - Standard wykończenia
builtUpArea => real - Powierzchnia zabudowy domu
canteen => bool - Kantyna
cctv => bool - CCTV
certificateType => text - Certyfikaty
columnsGrid => text - Gęstość siatki słupów
commonArea => real - Powierzchnia wspólna
commonAreaPercentage => real - Współczynnik powierzchni wspólnych
cooperativeType => text - Rodzaj spółdzielni
coverageArea10min => int - Strefa zasięgu w liczbie osób, 0-10 minut samochodem
coverageArea20min => int - Strefa zasięgu w liczbie osób, 10-20 minut samochodem
coverageArea40min => int - Strefa zasięgu w liczbie osób, 20-40 minut samochodem
crossDock => bool - Cross dock
datawprowadzenia => text - Data utworzenia
distanceFromCentre => int - Odległość od centrum
energyDemand => real - Roczne zapotrzebowanie energetyczne
entresol => bool - Antresola
entryFromLevel0 => bool - Wjazd z poziomu 0
entryFromLevel1 => bool - Wjazd z poziomu +1
entryType => text - Typ wjazdu
extraCostsDesc => text - Opis dodatkowych kosztów
extraCostsM2 => text - Dodatkowe koszty eksploatacyjne za metr
fitness => bool - Fitness
floorBearingCapacity => real - Obciążenie posadzki
floorCapacity => text - Nośność posadzki
garagePersonal => bool - Parking osobowy
garageTir => bool - Parking TIR
garageType => text - Typ garażu
gates => int - Bramy wjazdowe
gatesPerArea => real - Bramy wjazdowe / m2
geologicalReasearch => bool - Badania geologiczne
groundParingRentPrice => text - Opłata za parking naziemny
groundParkingPlacesNr => int - Liczba miejsc parkingowych naziemnych
guestParking => bool - Parking dla gości
hairdresser => bool - Fryzjer
heightInLight => real - Wysokość w świetle
insideMinHeight => int - Minimalna wysokość
installationType => text - Stan instalacji
keys => bool - Klucze do mieszkania
kitchenOpen => bool - Kuchnia otwarta
landDevelopmentConditions => bool - Decyzja o warunkach zabudowy
landRecordsExtract => bool - Wypis z ewidencji gruntów
landRecordsPrint => bool - Wyrys z ewidencji gruntów
landRegister => bool - Księga wieczysta
landUseConditionsAndDirections => bool - Studium uwarunkowań i kierunków zagospodarowania
levelsNr => int - Liczba kondygnacji
liftedFloors => bool - Podnoszone podłogi
lighting => bool - Oświetlenie
lightProduction => bool - Lekka produkcja
loadingDocks => int - Doki załadunkowe
loadingDocksPerArea => real - Doki załadunkowe / m2
localSpatialManagementPlanExtract => bool - Wypis z Miejscowego planu zagospodarowania przestrzennego
localSpatialManagementPlanPrint => bool - Wyrys z Miejscowego planu zagospodarowania przestrzennego
locationDescription => text - Opis lokalizacji
maneuveringSquare => bool - Plac manewrowy
market_type => text - Typ rynku
messenger => bool - Kurier
minimalRentalDuration => int - Minimalny okres wynajmu (w miesiącach)
minimalRentUnit => real - Minimalny moduł do wynajmu
monitoring => bool - Monitoring
nazwaobiektu => text - Nazwa obiektu
network => bool - Sieć lokalna
networkType => text - Typ okablowania
newsStand => bool - Kiosk
officeAreaInOffice => real - Pow. biurowa w biurze
officeCategory => text - Klasa biura
officeRentPrice => text - Cena wynajmu powierzchni biurowej
officeRentPriceM2 => text - Cena wynajmu powierzchni biurowej za m2
openableWindows => bool - Otwierane okna
otherFacilities => bool - Inne udogodnienia
ownershipBase => text - Podstawa własności
parkingPlacesPerArea => real - Współczynnik miejsc parkingowych
parkingRentPrice => text - Cena wynajmu parkingu
parkingSalePrice => text - Cena sprzedaży parkingu
partitions => bool - Ścianki działowe
paymentInMeters => text - Opłaty wg liczników
paymentInRent => text - Opłaty wg czynszu
phoneLineType => text - Typ linii telefonicznej
phoneOperator => text - Operator telekomunikacyjny
plotForm => text - Kształt działki
plotTerrainForm => text - Ukształtowanie działki
postOffice => bool - Poczta
railwaySiding => bool - Bocznica kolejowa
refrigeratorRentPrice => text - Cena wynajmu powierzchni magazynowej chłodni
refrigeratorRentPriceM2 => text - Cena wynajmu powierzchni magazynowej chłodni za m2
rentAreaType => text - Typ powierzchni do wynajęcia
rentedFrom => text - Wynajęte od
rentInApartment => text - Czynsz dla administracji
rentPersonsNr => int - Liczba osób do czynszu
restaurant => bool - Restauracja
roomHeight => int - Wysokość wnętrza
security => bool - Ochrona
serverRoom => bool - Serwerownia
shoppingCentre => bool - Centrum handlowe
shower => bool - Prysznic
skylights => bool - Świetliki
smokeMoveDetector => bool - Czujniki dymu / ciepła
sprinklers => bool - Tryskacze
sprzedane => bool - Oferta sprzedana
standardFloorArea => real - Powierzchnia typowego piętra
subhire => bool - Podnajem
suspendedCeiling => bool - Podwieszane sufity
swimmingPool => bool - Basen
switchboard => bool - Centrala
temperatureControl => text - Regulacja temperatury
tenantUnitType => text - Moduł najemcy
totalFloorRentArea => real - Całkowita powierzchnia do wynajęcia na piętrze
totalRentArea => real - Całkowita powierzchnia do wynajęcia
tradeAreaRentPrice => text - Cena wynajmu powierzchni handlowej
tradeAreaRentPriceM2 => text - Cena wynajmu powierzchni handlowej za m2
tradeBuildingType => text - Klasa budynków handlowych
undergroundLevelsNr => int - Liczba kondygnacji podziemnych
vacateMonthsCount => int - Liczba miesięcy zwolnienia
ventilation => bool - Wentylacja
warehouseBuildingNr => int - Liczba budynków magazynowych
warehouseCategory => text - Klasa magazynu
warehouseRentPrice => text - Cena wynajmu powierzchni magazynowej
warehouseRentPriceM2 => text - Cena wynajmu powierzchni magazynowej za m2

Szczególnym przypadkiem jest pole z ceną za m2:
<cenam2 waluta="KOD"> - cena oferty za metr, w atrybucie waluta trzyliterowy kod: PLN, USD lub EUR