Import API

Tato stránka se popisuje proces importu inzerátu na realitní portál www.4.house

Možnosti napojení inzerátu a makléřů:

  1. Pomoci našeho 4house Import API
  2. Pomocí Sreality.cz XML-RPC můstku.

 

4house import API

Viz postup popsán v bodech 1. Založení inzerátu az 7. Archivace inzerátu

 

Sreality.cz XML-RPC můstek

Pokud již máte Váš import připravený a funkční vůči Sreality API, tak jej můžete používat i i na našem realitním portálu 4.house.

Odlišnosti naší implementace najdete na stránce Sreality.cz XML-RPC můstek.

 

Úvod

Budeme od Vás potřebovat:

  1. IP adresy ze kterých budete přistupovat do STAGE a PRODUCTION prostředí
  2. emailové adresy pro přístup do STAGE prostředí

Postup pro Vás:

  • pošlete nám prosím emailové a IP adresy pro přístupy
  • následně Vám zašleme přístup do 4.house STAGE prostředí
  • poté Vás poprosím o push Vašich dat do 4.house STAGE prostředí
  • pokud budou data ve STAGE prostředí OK, tak můžete to samé provést v PRODUCTION prostředí

Postup pro vložení inzerátu

  • Celá dokumentace je dostupná online na STAGE prostředí
  • CLIENT_NAME a XXXX-YYYY-ZZZZ si pak nahradíte Vašimi přístupovými údaji

Níže uvádíme základní postup pro vloženi inzerátu pomocí našeho graphQL API

 

1. Založení inzerátu

Při zadání inzerátu je nutné vložit data které poté již nelze měnit

Další informace k inzerátu uvádíte v aktualizaci.

Pozor: parametr importId je string! jelikož nekteré realitní servery jej maji jako UUID.
Telefon se vkládá ve formátu např: +420123456789 tj mezinárodní předvolba a následuje samotné číslo bez mezer.

mutation {
  importMutations(sourceName: "CLIENT_NAME", clientId: 1, apiKey: "XXXX-YYYY-ZZZZ") {
    createOffer (importId:"123", params:{
      transactionType: SELL
      propertyType: HOUSE
      country: CZ
      locationId: 21914842
      locationValue: "Plzeňská 414/20, Praha"
      locationSource: RUIAN
      locationZoom: POINT
      gpsLat: 50.0724682819
      gpsLng: 14.3970370331
    }, account:{
      firstname: "Jan"
      lastname: "Novák"
      email: "[email protected]"
      phone: "+420777123456"
      companyTax1No: 12345678
    }) {
      response
      offerId
    }
  }
}
Odpověd TRUE:
{
  "data": {
    "importMutations": {
      "createOffer": {
        "response": true,
        "offerId": 12345
      }
    }
  }
}

 

Rozoostření adresy u inzerátu

Zadejte prosím přesnou adresu v parametru locationId a locationValue, jen se nastaví parametr locationZoom například na STREET a tím uživatelé neuvidí číslo popisne u inzerátu, ale pouze ulici.

Parametr locationZoom:
  • CITY: Uživatelům se zobrazí se pouze obec/město, bez části města, ulice a čísla popisného.
  • CITY_PART: Zobrazí je část obce, tj bez ulice a čísla popisného.
  • STREET: Zobrazí se ulice, tj bez čísla popisného.
  • POINT: Zobrazí je kompletní adresa i s číslem popisným. (To samé jako když hodnota není zadaná)

 

2. Vložení pokojů

Pokud víte přesný počet a velikost pokojů, vložte jej.

Pokud víte jen dispozice pokojů například 3+1, tak se vkladá obecný pokoj typu ROOM, viz příklady

Příklad pro 3+1:
  • roomType: ROOM, roomNo: 3
  • roomType: KITCHEN, roomNo: 1
Příklad pro 3+kk:
  • roomType: ROOM, roomNo: 3
  • roomType: KITCHENETTE, roomNo: 1
mutation {
  importMutations(sourceName: "CLIENT_NAME", clientId: 1, apiKey: "XXXX-YYYY-ZZZZ") {
    setRooms(offerId:12345, importId:"123", rooms:[
      {roomType:ROOM, roomNo:3},
      {roomType:KITCHEN, roomNo:1}]
    ) {
      response
    }
  }
}
Odpověd TRUE:
{
  "data": {
    "importMutations": {
      "setRooms": {
        "response": true
      }
    }
  }
}

3. Vložení fotografií pro inzerát

Prosím vládejte fotografie ve formátu JPEG.

Fotografie do API se vkládájí jako BASE64.

mutation {
  importMutations(sourceName: "CLIENT_NAME", clientId: 1, apiKey: "XXXX-YYYY-ZZZZ") {
    createImage(offerId:12345, importId:"123", params: {
      imageBase64: "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",
      imageType: OTHER}) {
      response
    image {
      rowId
      thumb {
        sizeX
        sizeY
      }
    }
  }
}
}
Odpověď TRUE
{
  "data": {
    "importMutations": {
      "createImage": {
        "response": true,
        "image": {
          "rowId": 98765,
          "thumb": {
            "sizeX": 150,
            "sizeY": 150
          }
        }
      }
    }
  }
}

 

4. Aktualizace inzerátu

Všechny údaje které jsou uvedeny v aktualizaci lze měnit.

Aby byl inzerát publikován musíte uvedst minimalně cenu a popisek inzerátu.

Příklad pro cenu 100tis Euro u prodeje:
  • priceType: TOTAL
  • priceValue: 100000
  • priceCurrency: EUR
Příklad pro cenu 15tis Kč za měsíc u pronájmu:
  • priceType: MONTH
  • priceValue: 15000
  • priceCurreency: CZK
Energetický štítek:
  • Jelikož je povinné ze zákona uvádět, tak pokud nebude zadán uvádíme jej jako G (nejhorší)
  • Parametr se jmenuje energySavingLabel
Video:
  • Je možné vložit url odkaz na youtube, například https://www.youtube.com/watch?v=736dA6EmCI8
  • V detailu inzerátu poté se Vám vloží celé video do Vašeho profilu mezi fotografie.
  • Parametr se jmenuje videoTourUrl
mutation {
  importMutations(sourceName: "CLIENT_NAME", clientId: 1, apiKey: "XXXX-YYYY-ZZZZ") {
    updateOffer(offerId:12345, importId:"123", sellHouse:{
      priceType: TOTAL
      priceValue: 12345
      priceCurrency: CZK
      descriptionLong: "long description :-) long description :-) long description :-) long description :-)"
      energySavingLabel: G
      videoTourUrl: "https://www.youtube.com/watch?v=736dA6EmCI8"
    }) {
  response
    }
  }
}
Odpověď TRUE:
{
  "data": {
    "importMutations": {
      "updateOffer": {
        "response": true
      }
    }
  }
}

 

5. Rezervace inzerátu

U inzerátu jde nastavit, že je rezervovaný.

Informace se zobrazi i v detailu inzerátu na webu.

mutation {
  importMutations(sourceName: "CLIENT_NAME", clientId: 1, apiKey: "XXXX-YYYY-ZZZZ") {
    reservationOffer(offerId:12345, importId:"123", toAccountId=234, comment: "Rezervace inzeratu:-) ") {
  response
    }
  }
}
Odpověď TRUE:
{
  "data": {
    "importMutations": {
      "reservationOffer": {
        "response": true
      }
    }
  }
}

Pokud rezervace nedopadne dobře, tak je možné nastavit inzerát zpět do dostandartní nabídky pomoci API metody unreservationOffer()

 

6. Prodaný inzerát

U inzerátu jde nastavit, že je prodaný.

Na mapě, pak ikonka inzerátu bude žlutá a nebude se zobrazovat na výsledek hledání pro prodej a pronájem.

mutation {
  importMutations(sourceName: "CLIENT_NAME", clientId: 1, apiKey: "XXXX-YYYY-ZZZZ") {
    soldOffer(offerId:12345, importId:"123", toAccountId=234, comment: "Prodej inzerat:-) ") {
  response
    }
  }
}
Odpověď TRUE:
{
  "data": {
    "importMutations": {
      "soldOffer": {
        "response": true
      }
    }
  }
}

 

7. Archivace inzerátu

Slouží ke stažení inzerátu.

Na webu se pak označí jako ukončený a nebude k nalezení na webu. Zůstavene veřejně dostupný pouze detail inzerátu s informací že inzerát již není aktivní / nabízen.

mutation {
  importMutations(sourceName: "CLIENT_NAME", clientId: 1, apiKey: "XXXX-YYYY-ZZZZ") {
    archiveOffer(offerId:12345, importId:"123", comment: "Stazeni inzeratu:-) ") {
  response
    }
  }
}
Odpověď TRUE:
{
  "data": {
    "importMutations": {
      "archiveOffer": {
        "response": true
      }
    }
  }
}

Vyjímky

Vyjímky které můžete dostat na API.

  • err_offer_auth -> chybná aktualizace pro inzerát. Přistupujete k inzerátu který neni Váš či Vám nepatří
  • err_importid_exist -> Vaše import ID již na 4house existuje
  • err_source -> u API metody importMutations() musíte mít vyplněn vstupni parametr source
  • err_apikey -> Váš API klíč je chybný či neplatný
  • err_archive_comment -> není vyplněn komentář u archivace či stažení inzerátu
  • err_not_published -> inzerát není publikován - toto se týká hlavně akce pro prodej a archivace která je možná až po publikaci
  • err_state_archive -> inzerát je již archivován - není jej opět označit jako prodaný či opětovně archivovat
  • err_publish_desclong -> popis inzerátu je moc dlouhý, či krátký
  • err_state_notactive -> inzerát musí být ve stavu aktivní


Kontakt pro realitní kanceláře:
[email protected]
+420 605 244 001