XML ροή για Έργα και Διαρρυθμίσεις

1. Σκοπός του Feed

Το XML feed μεταφέρει δομημένα δεδομένα για έργα ακινήτων και τυπικές κατόψεις. Σκοπός του είναι να επιτρέπει στο σύστημα λήψης να δημιουργεί και να ενημερώνει αυτόματα κάρτες έργων, να εμφανίζει τιμές, καταστάσεις, γκαλερί, παροχές, όρους πληρωμής, EOI και προωθητικό υλικό marketing από τους developers.

Το feed μεταφέρει τις κατόψεις σε συγκεντρωτική μορφή: μία εγγραφή κάτοψης περιγράφει μια τυπική διάταξη και τον αριθμό των διαθέσιμων μονάδων αυτού του τύπου. Δεν πρόκειται για λίστα συγκεκριμένων διαμερισμάτων, γραφείων ή οικοπέδων.

  • realty-feed: root container ολόκληρου του XML feed. Κύριο ID: —
  • offers: ένα έργο ή συγκρότημα. Κύριο ID: complex-id
  • layouts: τυπική κάτοψη μέσα σε ένα έργο. Κύριο ID: id
  • payment_plans: μία επιλογή πληρωμής του έργου. Κύριο ID: id
  • eoi_item: ένας όρος EOI. Κύριο ID: —
  • stock: καμπάνια marketing, είδηση ή προωθητικό μήνυμα από τον developer. Κύριο ID: —

1.1 Τι Είναι ένα XML Feed

Ένα XML feed είναι ένα δομημένο αρχείο που περιέχει δεδομένα για έργα ακινήτων και τυπικές κατόψεις. Περιλαμβάνει περιγραφές, φωτογραφίες, τιμές, διευθύνσεις, καταστάσεις, προδιαγραφές, παροχές και άλλα δεδομένα που απαιτούνται για την προβολή ακινήτων σε website γραφείου ή σε κατάλογο.

Με απλά λόγια, ένα XML feed είναι μια ροή δεδομένων για ακίνητα, την οποία το σύστημα λήψης κατεβάζει τακτικά, διαβάζει και χρησιμοποιεί για την αυτόματη ενημέρωση καρτών ακινήτων.

Η Alnair παρέχει τα δεδομένα. Η ανάπτυξη του website, η ανάπτυξη του καταλόγου, η ενσωμάτωση CRM και η λογική εισαγωγής γίνονται από τον πελάτη ή από την τεχνική του ομάδα.

1.2 Τι Χρειάζεται το Γραφείο

Για να χρησιμοποιήσει το XML feed, το γραφείο χρειάζεται τη δική του τεχνική υποδομή, ικανή να κατεβάζει τακτικά το XML, να αναλύει τη δομή του και να ενημερώνει τα δεδομένα στο σύστημά του.

  • Website ή κατάλογος ακινήτων: το σημείο όπου θα εμφανίζονται τα έργα και οι κατόψεις από το feed.
  • Τεχνική ομάδα ή developer: ρύθμιση της λήψης XML, της ανάλυσης και της εισαγωγής.
  • XML parser: ανάγνωση της δομής XML και μετατροπή της στο εσωτερικό μοντέλο δεδομένων.
  • Import module: δημιουργία, ενημέρωση και απενεργοποίηση έργων και κατόψεων.
  • Task scheduler: τακτική εκτέλεση της εισαγωγής σε πρόγραμμα, για παράδειγμα μέσω cron ή scheduler.
  • Error logging: παρακολούθηση άγνωστων τιμών enum, κενών πεδίων και σφαλμάτων φόρτωσης.

1.3 Πώς Χρησιμοποιεί το Γραφείο το XML Feed

Ένα τυπικό workflow έχει ως εξής:

  1. Το σύστημα του γραφείου κατεβάζει το XML από προσωπικό web link.
  2. Το XML αποθηκεύεται ως ακατέργαστο στιγμιότυπο για διαγνωστικούς λόγους και επανεπεξεργασία.
  3. Ο parser διαβάζει τη δομή realty-feed, offers, layouts και τα nested blocks.
  4. Το import module δημιουργεί νέα έργα και κατόψεις ή ενημερώνει τα υπάρχοντα.
  5. Τα αντικείμενα που εξαφανίζονται από το νέο feed επισημαίνονται ως ανενεργά.
  6. Το website του γραφείου εμφανίζει ενημερωμένες κάρτες έργων, τιμές, γκαλερί και καταστάσεις.

Κύριες δυνατότητες ενσωμάτωσης:

  • Αυτόματες ενημερώσεις: τα έργα και οι κατόψεις ενημερώνονται χωρίς χειροκίνητη παρέμβαση.
  • Δημιουργία σελίδων ακινήτων: τα δεδομένα του feed χρησιμοποιούνται για κάρτες έργων και κατόψεων.
  • Ενημερωμένες τιμές και καταστάσεις: το website λαμβάνει XML ενημερώσεις σε προκαθορισμένο πρόγραμμα.
  • Φίλτρα και αναζήτηση: μπορούν να χρησιμοποιηθούν για φιλτράρισμα τα πεδία περιοχή, τιμή, τύπος ακινήτου, αριθμός δωματίων και επιφάνεια.
  • Γκαλερί media: μπορούν να εμφανίζονται φωτογραφίες έργου, θεματικές γκαλερί και εικόνες κατόψεων.

2. Γενική Δομή XML

<realty-feed>
  <generation-date>2026-06-17T12:06:39+04:00</generation-date>
  <offers>...</offers>
  <offers>...</offers>
</realty-feed>

  • realty-feed: object. Root block του feed.
  • generation-date: datetime. Ημερομηνία και ώρα δημιουργίας του XML. Χρησιμοποιείται για έλεγχο επικαιρότητας των δεδομένων.
  • offers: object[]. Λίστα έργων ή συγκροτημάτων. Κάθε block offers περιέχει τα δεδομένα του έργου και τις κατόψεις του.

2.1 Πρόσβαση στο Feed και Όρια Λήψης

Το feed παρέχεται στον πελάτη μέσω προσωπικού web link. Το link είναι μοναδικό για τον πελάτη και χρησιμοποιείται από το σύστημα λήψης για την αυτόματη λήψη του XML.

Το προσωπικό link είναι διαθέσιμο στον administrator στον λογαριασμό Alnair. Ο administrator μπορεί να το διαβιβάσει στην τεχνική ομάδα του πελάτη για τη ρύθμιση της εισαγωγής.

  • Τύπος πρόσβασης: προσωπικό web link. Μοναδικό URL XML feed για τον πελάτη.
  • Πού θα βρείτε το link: λογαριασμός Alnair. Το link είναι διαθέσιμο στον administrator του πελάτη.
  • Συχνότητα ενημέρωσης feed: κάθε 4 ώρες. Τα δεδομένα XML ενημερώνονται στην πλευρά της Alnair μία φορά κάθε 4 ώρες.
  • Ελάχιστο διάστημα λήψης: όχι περισσότερο από μία φορά την ώρα. Το σύστημα λήψης δεν πρέπει να προσπελαύνει το feed συχνότερα από μία φορά την ώρα.
  • Υπέρβαση ορίου: αποκλεισμός πρόσβασης. Αν τα αιτήματα είναι υπερβολικά συχνά, η πρόσβαση στο feed μπορεί να μπλοκαριστεί προσωρινά.

Προτεινόμενη λογική ενσωμάτωσης: ρυθμίστε προγραμματισμένη λήψη μέσω cron ή scheduler, αποθηκεύστε το τελευταίο XML που λήφθηκε και μην ζητάτε το feed σε κάθε φόρτωση σελίδας του website. Ο βέλτιστος τρόπος είναι η λήψη του feed το πολύ μία φορά την ώρα, λαμβάνοντας υπόψη ότι νέα δεδομένα εμφανίζονται περίπου κάθε 4 ώρες.

3. Έργο: <offers>

Το offers είναι η κύρια οντότητα του feed. Περιέχει την περιγραφή του έργου, τον developer, την τοποθεσία, την κατάσταση κατασκευής και πωλήσεων, τις τιμές, τα media, τις παροχές, τα payment plans, το EOI, τις προωθητικές ενέργειες και τις τυπικές κατόψεις.

<offers>
  <complex-id>5646</complex-id>
  <type>project</type>
  <logo>https://...</logo>
  <photo>https://...</photo>
  <title>...</title>
  <description>...</description>
  <price_on_request>1</price_on_request>
  <status>...</status>
  <construction_start_at>2025-01-01T00:00:00+04:00</construction_start_at>
  <construction_progress>15</construction_progress>
  <planned_completion_at>2027-12-31T00:00:00+04:00</planned_completion_at>
  <predicted_completion_at>2027-12-31T00:00:00+04:00</predicted_completion_at>
  <amenities>...</amenities>
  <developer>...</developer>
  <city>Dubai</city>
  <address>...</address>
  <latitude>25.000000</latitude>
  <longitude>55.000000</longitude>
  <districts>...</districts>
  <album>...</album>
  <albums>...</albums>
  <constructions_count>1</constructions_count>
  <for_sale_count>10</for_sale_count>
  <price>...</price>
  <br_prices>...</br_prices>
  <updated_at>2026-06-17T10:53:20+04:00</updated_at>
  <is_sold_out>0</is_sold_out>
  <payment_plans>...</payment_plans>
  <sales_status>...</sales_status>
  <stocks>...</stocks>
  <eoi>...</eoi>
  <service_charge>...</service_charge>
  <assignment>...</assignment>
  <is_limited_publication>0</is_limited_publication>
  <layouts>...</layouts>
</offers>

  • complex-id: integer. Μοναδικό ID έργου στην Alnair. Χρησιμοποιείται ως εξωτερικό ID έργου για upsert.
  • type: enum. Τύπος οντότητας ανώτατου επιπέδου: project ή compound. Αποθηκεύστε την ακατέργαστη τιμή και εισαγάγετε ως έργο ανώτατου επιπέδου.
  • logo: url. Λογότυπο έργου. Εμφανίζεται στο branding, όχι ως cover.
  • photo: url. Κύρια εικόνα έργου / cover. Χρησιμοποιήστε τη ως εικόνα cover και hero.
  • title: localized object. Όνομα έργου σε en/ru/ar. Εμφανίζεται ανάλογα με τη γλώσσα του interface.
  • description: localized HTML. Περιγραφή έργου σε en/ru/ar. Αποδώστε με ασφάλεια· το HTML βρίσκεται μέσα σε CDATA.
  • price_on_request: 0/1. Σημαία απόκρυψης τιμής. Αν είναι 1, εμφανίστε «Τιμή κατόπιν αιτήματος».
  • status: object. Κατάσταση κατασκευής. Μην τη συγχέετε με το sales_status.
  • construction_start_at: datetime. Ημερομηνία έναρξης κατασκευής. Εμφανίζεται αν είναι συμπληρωμένη.
  • construction_progress: decimal. Ποσοστό ολοκλήρωσης κατασκευής. Εμφανίζεται ως ποσοστό.
  • planned_completion_at: datetime. Προγραμματισμένη ημερομηνία ολοκλήρωσης του έργου. Χρησιμοποιείται ως ημερομηνία παράδοσης.
  • predicted_completion_at: datetime. Προβλεπόμενη ημερομηνία ολοκλήρωσης. Μπορεί να χρησιμοποιηθεί ως ενημερωμένη ημερομηνία ολοκλήρωσης.
  • amenities: object. Παροχές και χαρακτηριστικά έργου. Αντιστοίχιση με βάση το key.
  • developer: object. Developer του έργου. Αποθηκεύστε όνομα και λογότυπο.
  • city / address: string. Πόλη και διεύθυνση του έργου. Χρησιμοποιούνται στα δεδομένα τοποθεσίας.
  • latitude / longitude: decimal. Συντεταγμένες. Χρησιμοποιούνται για τον χάρτη.
  • districts: object. Περιοχές του έργου. Χρησιμοποιούνται για φίλτρα και την κάρτα έργου.
  • album: object. Κύρια αταξινόμητη γκαλερί έργου. Εμφανίζεται ως γενική γκαλερί.
  • albums: object. Θεματικές γκαλερί έργου. Ομαδοποιούνται με βάση τον τίτλο.
  • for_sale_count: integer. Αριθμός διαθέσιμων μονάδων στο έργο. Μπορεί να εμφανίζεται ως διαθεσιμότητα.
  • price: object. Γενικό εύρος τιμής έργου. Κρύβεται όταν price_on_request=1.
  • br_prices: object[]. Τιμές ανά αριθμό υπνοδωματίων ή κατηγορία ακινήτου. Χρησιμοποιούνται για φίλτρα και λίστες.
  • updated_at: datetime. Ημερομηνία ενημέρωσης έργου. Χρησιμοποιείται για συγχρονισμό.
  • is_sold_out: 0/1. Σημαία sold out. Χρησιμοποιείται μαζί με το sales_status.
  • payment_plans: object[]. Επιλογές πληρωμής από τον developer. Εμφανίζονται ως επιλογές πληρωμής.
  • sales_status: localized object. Κατάσταση πωλήσεων έργου. Καθορίζει το στάδιο πωλήσεων.
  • stocks: object. Καμπάνιες marketing και προωθητικά μηνύματα από τον developer. Εμφανίζονται ως blocks προβολής.
  • eoi: object. Expression of Interest. Εμφανίζεται μόνο για Presale (EOI).
  • service_charge: object. Κοινόχρηστα. Εμφανίζεται αν η τιμή είναι συμπληρωμένη.
  • assignment: decimal. Όρος assignment. Το κενό σημαίνει ότι δεν έχει προσδιοριστεί.
  • is_limited_publication: 0/1. Περιορισμός δημοσίευσης. Αν είναι 1, μην το δημοσιεύετε δημόσια χωρίς άδεια.
  • layouts: object[]. Τυπικές κατόψεις έργου. Εισάγονται ως θυγατρικές οντότητες του έργου.

4. Τοπικοποιημένα Πεδία

Τα τοπικοποιημένα πεδία έχουν την ίδια δομή: οι τιμές σε Αγγλικά, Ρωσικά και Αραβικά μεταφέρονται μέσα στο tag.

<title>
  <en>Project Name</en>
  <ru>Название проекта</ru>
  <ar>اسم المشروع</ar>
</title>

  • en: Αγγλική τιμή. Προτεινόμενο fallback.
  • ru: Ρωσική τιμή.
  • ar: Αραβική τιμή.

Κανόνας fallback:

  1. Χρησιμοποιήστε τη γλώσσα του interface αν είναι συμπληρωμένη.
  2. Αν η ζητούμενη γλώσσα είναι κενή, χρησιμοποιήστε το en.
  3. Αν το en είναι κενό, χρησιμοποιήστε το ru.
  4. Αν το ru είναι κενό, χρησιμοποιήστε το ar.
  5. Αν όλες οι τιμές είναι κενές, μην εμφανίζετε το πεδίο.

5. Καταστάσεις

5.1 Κατάσταση Κατασκευής: <status>

Η κατάσταση κατασκευής δείχνει τη φυσική κατάσταση του έργου. Δεν υποδεικνύει τη διαθεσιμότητα πωλήσεων.

<status>
  <key>development_stage_progress</key>
  <en>In Progress</en>
  <ru>Строится</ru>
  <ar>قيد الإنشاء</ar>
</status>

  • Scheduled: το έργο είναι προγραμματισμένο.
  • In Progress: η κατασκευή βρίσκεται σε εξέλιξη.
  • Ready: το έργο έχει ολοκληρωθεί.
  • Stopped: η κατασκευή έχει σταματήσει.

5.2 Κατάσταση Πωλήσεων: <sales_status>

Η κατάσταση πωλήσεων δείχνει το εμπορικό στάδιο του έργου: ανακοίνωση, presale, λανσάρισμα, ενεργές πωλήσεις ή sold out.

  • Preliminary Info: πρώιμες πληροφορίες έργου.
  • Announcement: το έργο έχει ανακοινωθεί.
  • Presale (EOI): βρίσκεται σε εξέλιξη η συλλογή EOI.
  • Launch: έναρξη πωλήσεων.
  • On Sale: το έργο είναι διαθέσιμο προς αγορά.
  • Sold Out: το έργο έχει εξαντληθεί.
  • Pending: η κατάσταση αναμένει ενημέρωση.

6. Developer και Τοποθεσία

Αυτά τα blocks χρειάζονται για την προβολή του brand του developer και της γεωγραφικής τοποθεσίας του έργου.

<developer>
  <title>
    <en>Developer Name</en>
    <ru>Developer Name</ru>
    <ar>Developer Name</ar>
  </title>
  <logo>https://...</logo>
</developer>
<city>Dubai</city>
<address>Project Address, Dubai</address>
<latitude>25.01809076</latitude>
<longitude>55.13354525</longitude>
<districts>
  <district>Jumeirah Village Triangle (JVT)</district>
</districts>

  • developer.title: localized object. Όνομα developer.
  • developer.logo: url. Λογότυπο developer.
  • city: string. Πόλη.
  • address: string. Διεύθυνση.
  • latitude / longitude: decimal. Συντεταγμένες για τον χάρτη.
  • districts.district: string[]. Περιοχές του έργου.

7. Τιμές

7.1 Τιμή Έργου: <price>

Η τιμή σε επίπεδο έργου δείχνει το γενικό εύρος τιμών για τις διαθέσιμες προσφορές στο έργο.

<price>
  <min>815462</min>
  <max>2089780</max>
  <min_usd>222009</min_usd>
  <max_usd>568942</max_usd>
  <currency>AED</currency>
</price>

  • min: decimal. Ελάχιστη τιμή.
  • max: decimal. Μέγιστη τιμή.
  • min_usd: decimal. Ελάχιστη τιμή σε USD.
  • max_usd: decimal. Μέγιστη τιμή σε USD.
  • currency: enum. Κύριο νόμισμα, συνήθως AED.

Αν price_on_request = 1, οι ακριβείς τιμές δεν εμφανίζονται δημόσια, ακόμη κι αν το price είναι συμπληρωμένο.

7.2 Τιμές ανά Κατηγορία: <br_prices>

Το br_prices ομαδοποιεί τιμές και επιφάνειες ανά αριθμό υπνοδωματίων ή τύπο ακινήτου. Είναι χρήσιμο για φίλτρα και σύντομες κάρτες έργων.

<br_prices>
  <key>1</key>
  <count>7</count>
  <min_price>1070564</min_price>
  <max_price>1289674</max_price>
  <min_price_m2>17204</min_price_m2>
  <max_price_m2>18483</max_price_m2>
  <currency>AED</currency>
  <min_area><m2>57.92</m2><ft2>623.45</ft2></min_area>
  <max_area><m2>74.17</m2><ft2>798.36</ft2></max_area>
</br_prices>

  • studio: στούντιο.
  • 1-6: αριθμός υπνοδωματίων.
  • villa: βίλες.
  • townhouse: townhouses.
  • n: μη εφαρμόσιμο / μη οικιστική κατηγορία / άλλο.

8. Media

Τα media στο feed χωρίζονται σε διάφορους τύπους. Δεν πρέπει να συγχωνεύονται σε μία γκαλερί χωρίς να λαμβάνεται υπόψη ο σκοπός τους: μία εικόνα μπορεί να είναι το cover του έργου, άλλη το λογότυπο, άλλη εικόνα προσφοράς και άλλη κάτοψη.

  • logo: offers.logo. Λογότυπο έργου. Εμφανίζεται στο branding του έργου· όχι ως cover.
  • photo: offers.photo. Κύρια εικόνα έργου / cover. Χρησιμοποιήστε τη ως εικόνα cover στην κάρτα και ως hero image στη σελίδα του έργου.
  • album.image: offers.album.image. Κύρια αταξινόμητη γκαλερί έργου. Εμφανίζεται στη γενική γκαλερί του έργου.
  • albums.album.images.image: offers.albums.album.images.image. Θεματική γκαλερί έργου. Ομαδοποιείται με βάση το albums.album.title.
  • developer.logo: offers.developer.logo. Λογότυπο developer. Εμφανίζεται στο block του developer.
  • stocks.stock.logo: offers.stocks.stock.logo. Εικόνα καμπάνιας marketing. Εμφανίζεται μέσα στο block προσφοράς.
  • layouts.album.image: offers.layouts.album.image. Γκαλερί συγκεκριμένης τυπικής κάτοψης. Εμφανίζεται σε επίπεδο κάτοψης.
  • levels_photos.level_photo.image: offers.layouts.levels_photos.level_photo.image. Εικόνα κάτοψης ανά επίπεδο. Χρησιμοποιείται ως σχέδιο κάτοψης.

<photo>https://...</photo>
<album>
  <image>https://...</image>
</album>
<albums>
  <album>
    <title><en>Infrastructure</en><ru>Инфраструктура</ru><ar>...</ar></title>
    <images>
      <image>https://...</image>
    </images>
  </album>
</albums>

  • Project presentation: εικόνες παρουσίασης έργου.
  • Construction progress: φωτογραφίες προόδου κατασκευής.
  • Finishing examples: δείγματα φινιρίσματος.
  • Infrastructure: υποδομές του έργου.
  • View: θέα και περιβάλλον.

Δεν είναι απαραίτητο να υπάρχει κάθε κατηγορία σε κάθε έργο. Αν ο τίτλος της κατηγορίας είναι κενός, οι εικόνες μπορούν να εισαχθούν ως αταξινόμητες ή να τοποθετηθούν στη γενική γκαλερί.

Δεν υπάρχει ξεχωριστό ιστορικό/story XML tag στην τρέχουσα δομή. Οι ειδήσεις, τα προωθητικά μηνύματα και το marketing υλικό του έργου μεταφέρονται μέσω του stocks. Για το ιστορικό κατασκευής μπορεί να χρησιμοποιηθεί η κατηγορία Construction progress, αν υπάρχει στα albums.

9. Παροχές

Το amenities περιγράφει τις παροχές και τα χαρακτηριστικά του έργου. Για την ενσωμάτωση, είναι προτιμότερο να χρησιμοποιείται το key, ενώ οι τοπικοποιημένες τιμές να χρησιμοποιούνται για την προβολή.

<amenities>
  <amenity>
    <key>project_facilities_gym</key>
    <en>Gym</en>
    <ru>Тренажёрный зал</ru>
    <ar>صالة رياضية</ar>
  </amenity>
</amenities>

  • amenities: object. Container παροχών.
  • amenity: object. Μία παροχή.
  • key: enum. Τεχνικό κλειδί.
  • en / ru / ar: string. Όνομα παροχής σε τρεις γλώσσες.

Το key projecet_hotel_license περιέχει τυπογραφικό λάθος, αλλά πρέπει να αντιστοιχιστεί ως Hotel License. Συνιστάται να υποστηρίζεται το alias και να μην διακόπτεται η εισαγωγή.

10. Προωθητικές Ενέργειες Marketing: <stocks>

Το stocks αφορά καμπάνιες marketing, ειδήσεις και προωθητικά μηνύματα από τους developers. Μπορεί να περιλαμβάνει ειδικές τιμές, εκπτώσεις, όρους λανσαρίσματος, ανακοινώσεις EOI, προσωρινές προσφορές πληρωμής και διαφημιστικό υλικό. Αυτό το block δεν είναι απόθεμα και δεν καθορίζει τη διαθεσιμότητα μονάδων.

<stocks>
  <stock>
    <title>...</title>
    <description>...</description>
    <start_at>2025-06-26T00:00:00+04:00</start_at>
    <end_at/>
    <logo>https://...</logo>
  </stock>
</stocks>

  • stocks: object. Container μηνυμάτων marketing.
  • stock: object. Μία καμπάνια, είδηση ή προωθητική ανακοίνωση.
  • title: localized object. Τίτλος προώθησης.
  • description: localized HTML. Περιγραφή προώθησης.
  • start_at: datetime. Ημερομηνία έναρξης.
  • end_at: datetime. Ημερομηνία λήξης· μπορεί να είναι κενή.
  • logo: url. Εικόνα προώθησης.

Χρησιμοποιήστε τα for_sale_count, layouts.sale_units_count και sales_status για τη διαθεσιμότητα ακινήτων, όχι τα stocks.

11. EOI

EOI σημαίνει Expression of Interest. Το block περιγράφει προκαταρκτικό ενδιαφέρον ή όρους προκαταβολής για έργα σε κατάσταση Presale (EOI).

<eoi>
  <is_eoi_return>0</is_eoi_return>
  <eoi_items>
    <eoi_item>
      <price>100000</price>
      <percent/>
      <description>
        <en>EOI amount for 2 Bedrooms</en>
        <ru>Сумма EOI для 2-комнатных</ru>
        <ar>...</ar>
      </description>
    </eoi_item>
  </eoi_items>
</eoi>

  • is_eoi_return: 0/1/empty. 0 = μη επιστρέψιμο, 1 = επιστρέψιμο, κενό = δεν έχει προσδιοριστεί.
  • eoi_items: object. Container όρων EOI.
  • eoi_item: object. Ένας όρος EOI.
  • price: decimal. Σταθερό ποσό EOI.
  • percent: decimal. Ποσοστό EOI, αν χρησιμοποιείται.
  • description: localized object. Περιγραφή όρου.
  • sales_status.en = Presale (EOI) and eoi_items is filled: εμφανίστε το EOI.
  • Any other sales_status: αποκρύψτε το EOI.

12. Κοινόχρηστα και Assignment

<service_charge>
  <value>172.22</value>
  <unit>sq. m</unit>
  <currency>AED</currency>
</service_charge>
<assignment>40.00</assignment>

  • service_charge.value: ποσό κοινοχρήστων. Αν είναι κενό, μην εμφανίζετε το block.
  • service_charge.unit: μονάδα υπολογισμού, συνήθως sq. m. Μπορεί να είναι κενή.
  • service_charge.currency: νόμισμα, συνήθως AED. Μπορεί να είναι κενό.
  • assignment: ποσοστό μετά το οποίο είναι δυνατή η assignment. Κενό = οι πληροφορίες δεν έχουν προσδιοριστεί, όχι περιορισμός.

13. Payment Plans: <payment_plans>

Το payment_plans περιγράφει τις επιλογές πληρωμής για το ακίνητο από τον developer. Ένα έργο μπορεί να έχει πολλαπλά payment plans. Κάθε plan αναλύει την πληρωμή σε στάδια: κράτηση, κατασκευή, παράδοση και μετά την παράδοση. Οι χρεώσεις και τα πρόσθετα τέλη μεταφέρονται ξεχωριστά, επομένως το συνολικό ποσοστό μπορεί να υπερβαίνει το 100%. Για παράδειγμα, το 104% μπορεί να σημαίνει 100% της αξίας του ακινήτου + 4% DLD fee.

  • Basic: id, title, currency. Αναγνωριστικό plan, τίτλος και νόμισμα. Το title είναι ελεύθερο κείμενο, όχι enum.
  • Booking: on_booking_percent, on_booking_fix, on_booking_payments_count, on_booking_fees. Πληρωμές και χρεώσεις στο στάδιο κράτησης.
  • Construction: on_construction_percent, on_construction_fix, on_construction_payments_count, on_construction_fees. Πληρωμές κατά την κατασκευή.
  • Handover: on_handover_percent, on_handover_fix, on_handover_payments_count, on_handover_fees. Πληρωμές κατά την παράδοση του ακινήτου.
  • Post-handover: post_handover_percent, post_handover_fix, on_post_handover_payments_count, on_post_handover_fees. Πληρωμές μετά την παράδοση.
  • ROI: roi_percent, roi_fix, roi_payments_count, roi_fees. Πεδία για σχήματα ROI ή εγγυημένου εισοδήματος.
  • Additional fees: additional, additional_percent, additional_fix, additional_fix_m2. Πρόσθετες πληρωμές, για παράδειγμα DLD Fee.
  • Periods: period_after_handover, period_after_roi. Συχνότητα επαναλαμβανόμενων πληρωμών.
  • Totals: price_total, fees_included_total. Συνολικά ποσά του plan και περιλαμβανόμενες χρεώσεις.

14. Layouts: <layouts>

Το layouts περιγράφει μια τυπική κάτοψη μέσα σε ένα έργο. Είναι συγκεντρωτικός τύπος μονάδας και όχι συγκεκριμένο διαμέρισμα ή γραφείο.

  • id: integer. Μοναδικό ID κάτοψης. Χρησιμοποιείται ως εξωτερικό ID κάτοψης.
  • title: localized object. Όνομα κάτοψης. Εμφανίζεται ανάλογα με τη γλώσσα του interface.
  • project_id: integer. ID γονικού έργου. Σύνδεση με το offers.complex-id.
  • building_name: localized object. Όνομα κτηρίου. Μην το εμφανίζετε αν είναι κενό.
  • price_on_request: 0/1. Σημαία απόκρυψης τιμής. Αν είναι 1, μην εμφανίζετε την τιμή.
  • area_min / area_max: object. Εύρος επιφάνειας. m2 και ft2.
  • area_balcony_min / area_balcony_max: object. Εύρος επιφάνειας μπαλκονιού. Μπορεί να είναι κενό.
  • type: localized object. Τύπος ακινήτου. Δείτε τη αναφορά Unit type.
  • sale_units_count: integer. Αριθμός διαθέσιμων μονάδων αυτού του τύπου. Δεν είναι λίστα οικοπέδων.
  • album: object. Γκαλερί κάτοψης. Εμφανίζεται σε επίπεδο κάτοψης.
  • levels_photos: object. Εικόνες ανά επίπεδο. Χρησιμοποιούνται ως σχέδια κάτοψης.
  • floors_count: integer. Αριθμός επιπέδων. 1, 2, 3, κ.λπ.
  • rooms_count: localized object. Αριθμός δωματίων. Δείτε τη αναφορά Rooms count.
  • price: object. Εύρος τιμής κάτοψης. Κρύβεται όταν price_on_request=1.
  • is_limited_publication: 0/1. Περιορισμός δημοσίευσης. Αν είναι 1, αποκρύπτεται δημόσια.

15. Αναφορές Τιμών Enum

  • Project type: project, compound.
  • Sales status: Preliminary Info, Announcement, Presale (EOI), Launch, On Sale, Sold Out, Pending.
  • Construction status: Scheduled, Ready, Stopped, In Progress.
  • Unit type: Apartment, Villa, Townhouse, Duplex, Triplex, Penthouse, Retail, Office, Suite.
  • Rooms count: Studio, 1 BR, 2 BR, 3 BR, 4 BR, 5 BR, 6 BR, 7 BR, 8 BR, NA.
  • BR price key: studio, 1, 2, 3, 4, 5, 6, villa, townhouse, n.
  • Gallery category: Project presentation, Construction progress, Finishing examples, Infrastructure, View.
  • Currency: AED.
  • Service charge unit: sq. m.
  • Boolean flags: 0, 1; το κενό επιτρέπεται για ορισμένα πεδία.

Αν το feed περιέχει τιμή που δεν βρίσκεται στη λίστα αναφοράς, η εισαγωγή δεν πρέπει να αποτύχει. Η τιμή πρέπει να αποθηκεύεται ως ακατέργαστη τιμή, να αντιστοιχίζεται ως άγνωστη και να καταγράφεται για έλεγχο.

16. Κενές Τιμές

Μια κενή τιμή σημαίνει «δεν έχει προσδιοριστεί», όχι 0. Τα κενά tags μπορεί να εμφανίζονται ως <field/> ή <field></field>.

  • assignment: ο όρος assignment δεν έχει προσδιοριστεί.
  • service_charge.value: τα κοινόχρηστα δεν έχουν προσδιοριστεί.
  • eoi.is_eoi_return: η επιστρεψιμότητα του EOI δεν έχει προσδιοριστεί.
  • area_balcony_min.m2: η επιφάνεια μπαλκονιού δεν έχει προσδιοριστεί.
  • description.en: λείπει η περιγραφή.

17. Κανόνες Εμφάνισης

  • Απόκρυψη τιμής: price_on_request = 1. Εμφανίστε «Τιμή κατόπιν αιτήματος».
  • Τιμή ορατή: price_on_request = 0. Εμφανίστε ελάχιστη/μέγιστη τιμή.
  • EOI: sales_status.en = Presale (EOI) και το EOI είναι συμπληρωμένο. Εμφανίστε το EOI.
  • EOI μη σχετικό: sales_status.en != Presale (EOI). Αποκρύψτε το EOI.
  • Sold out: is_sold_out = 1 ή sales_status.en = Sold Out. Εμφανίστε «Sold out» ή αποκρύψτε από τη λίστα.
  • Περιορισμένη δημοσίευση: is_limited_publication = 1. Μην το δημοσιεύετε δημόσια.
  • Κενό assignment: assignment κενό. Μην εμφανίζετε το block assignment.
  • Κενά κοινόχρηστα: service_charge.value κενό. Μην εμφανίζετε τα κοινόχρηστα.

18. Κανόνες Εισαγωγής

  • Έργο: αναζήτηση με βάση το complex-id· αν βρεθεί, ενημέρωση· αν όχι, δημιουργία.
  • Κάτοψη: αναζήτηση με βάση το layouts.id· σύνδεση με το έργο μέσω project_id.
  • Διαγραφή: αν ένα αντικείμενο εξαφανιστεί από το νέο feed, σημειώστε το ως ανενεργό αντί να το διαγράψετε αμέσως.
  • Άγνωστο enum: αποθηκεύστε την ακατέργαστη τιμή, αντιστοιχίστε την ως άγνωστη και καταγράψτε την.
  • Κενές τιμές: μην τις μετατρέπετε σε 0 χωρίς ρητό κανόνα για το συγκεκριμένο πεδίο.

Πεδίο έργου → Πηγή

  • external_project_id: complex-id.
  • raw_offer_type: type.
  • title_*: title.
  • description_*: description.
  • developer_name: developer.title.
  • developer_logo_url: developer.logo.
  • city/address/coordinates: city, address, latitude, longitude.
  • districts: districts.district.
  • construction_status: status.en.
  • sales_status: sales_status.en.
  • price_min / price_max: price.
  • price_on_request: price_on_request.
  • galleries: photo, album, albums.
  • payment_plans: payment_plans.
  • eoi: eoi.
  • stocks: stocks.
  • source_updated_at: updated_at.

Πεδίο κάτοψης → Πηγή

  • external_layout_id: layouts.id.
  • external_project_id: layouts.project_id.
  • title_*: layouts.title.
  • building_name_*: building_name.
  • unit_type: type.en.
  • rooms_count: rooms_count.en.
  • sale_units_count: sale_units_count.
  • area_min / area_max: area_min, area_max.
  • balcony_min / balcony_max: area_balcony_min, area_balcony_max.
  • floors_count: floors_count.
  • price_min / price_max: price.
  • layout_gallery: album.
  • levels_photos: levels_photos.
  • is_limited_publication: is_limited_publication.