प्रोजेक्ट्स और लेआउट्स के लिए XML फ़ीड

1. फ़ीड का उद्देश्य

XML फ़ीड रियल एस्टेट प्रोजेक्ट्स और सामान्य लेआउट्स से संबंधित संरचित डेटा ट्रांसफर करता है। इसका उद्देश्य प्राप्त करने वाली प्रणाली को प्रोजेक्ट कार्ड्स अपने आप बनाने और अपडेट करने, कीमतें, स्टेटस, गैलरी, सुविधाएँ, भुगतान शर्तें, EOI और डेवलपर से मिलने वाली मार्केटिंग प्रोमो सामग्री दिखाने में सक्षम बनाना है।

फ़ीड लेआउट्स को समेकित रूप में ट्रांसफर करता है: एक लेआउट रिकॉर्ड किसी सामान्य लेआउट और उस प्रकार की उपलब्ध यूनिट्स की संख्या का वर्णन करता है। यह विशिष्ट अपार्टमेंट्स, ऑफिसेज़ या लॉट्स की सूची नहीं है।

  • realty-feed: पूरे XML फ़ीड का रूट कंटेनर। मुख्य ID: —
  • offers: एक प्रोजेक्ट या कॉम्प्लेक्स। मुख्य ID: complex-id
  • layouts: प्रोजेक्ट के भीतर सामान्य लेआउट। मुख्य ID: id
  • payment_plans: एक प्रोजेक्ट भुगतान विकल्प। मुख्य ID: id
  • eoi_item: एक EOI शर्त। मुख्य ID: —
  • stock: डेवलपर की मार्केटिंग कैंपेन, न्यूज़ आइटम, या प्रोमोशनल संदेश। मुख्य ID: —

1.1 XML फ़ीड क्या है

XML फ़ीड एक संरचित फ़ाइल है जिसमें रियल एस्टेट प्रोजेक्ट्स और सामान्य लेआउट्स का डेटा होता है। इसमें विवरण, फ़ोटो, कीमतें, पते, स्टेटस, स्पेसिफिकेशन्स, सुविधाएँ और अन्य डेटा शामिल होता है, जो एजेंसी वेबसाइट या कैटलॉग में प्रॉपर्टीज़ दिखाने के लिए आवश्यक है।

सरल शब्दों में, XML फ़ीड रियल एस्टेट से जुड़ा एक डेटा स्ट्रीम है, जिसे प्राप्त करने वाली प्रणाली नियमित रूप से डाउनलोड करती है, पढ़ती है, और प्रॉपर्टी कार्ड्स को अपने आप अपडेट करने के लिए उपयोग करती है।

Alnair डेटा प्रदान करता है। वेबसाइट डेवलपमेंट, कैटलॉग डेवलपमेंट, CRM इंटीग्रेशन और इंपोर्ट लॉजिक क्लाइंट या क्लाइंट की तकनीकी टीम संभालती है।

1.2 एजेंसी को क्या चाहिए

XML फ़ीड का उपयोग करने के लिए, एजेंसी के पास अपना तकनीकी इंफ्रास्ट्रक्चर होना चाहिए, जो नियमित रूप से XML डाउनलोड कर सके, उसकी संरचना पार्स कर सके, और अपनी प्रणाली में डेटा अपडेट कर सके।

  • वेबसाइट या प्रॉपर्टी कैटलॉग: वह स्थान जहाँ फ़ीड से प्रोजेक्ट्स और लेआउट्स दिखाए जाएँगे।
  • तकनीकी टीम या डेवलपर: XML डाउनलोड, पार्सिंग, और इंपोर्ट की सेटअप।
  • XML parser: XML संरचना को पढ़ना और आंतरिक डेटा मॉडल में बदलना।
  • Import module: प्रोजेक्ट्स और लेआउट्स बनाना, अपडेट करना और निष्क्रिय करना।
  • Task scheduler: cron या scheduler के माध्यम से नियमित समय पर इंपोर्ट चलाना।
  • Error logging: अज्ञात enum values, खाली फ़ील्ड्स, और लोडिंग त्रुटियों की निगरानी।

1.3 एजेंसी XML फ़ीड का उपयोग कैसे करती है

सामान्य वर्कफ़्लो इस प्रकार होता है:

  1. एजेंसी सिस्टम व्यक्तिगत वेब लिंक से XML डाउनलोड करता है।
  2. XML को डायग्नोस्टिक्स और रीप्रोसेसिंग के लिए raw snapshot के रूप में सेव किया जाता है।
  3. Parser realty-feed, offers, layouts संरचना और nested blocks को पढ़ता है।
  4. Import module नए प्रोजेक्ट्स और लेआउट्स बनाता है या मौजूदा को अपडेट करता है।
  5. जो objects नए फ़ीड से गायब हो जाते हैं, उन्हें inactive चिह्नित किया जाता है।
  6. एजेंसी वेबसाइट पर अद्यतन प्रोजेक्ट कार्ड्स, कीमतें, गैलरी, और स्टेटस दिखते हैं।

मुख्य इंटीग्रेशन क्षमताएँ:

  • स्वचालित अपडेट: प्रोजेक्ट्स और लेआउट्स बिना मैन्युअल इनपुट के अपडेट होते हैं।
  • प्रॉपर्टी पेज निर्माण: फ़ीड डेटा का उपयोग प्रोजेक्ट और लेआउट कार्ड्स के लिए किया जाता है।
  • अद्यतन कीमतें और स्टेटस: वेबसाइट को निर्धारित समय पर XML अपडेट मिलते हैं।
  • फ़िल्टर्स और सर्च: जिला, कीमत, प्रॉपर्टी प्रकार, कमरे की संख्या, और क्षेत्र के आधार पर फ़िल्टर किया जा सकता है।
  • मीडिया गैलरी: प्रोजेक्ट फ़ोटो, थीम आधारित गैलरी, और लेआउट इमेजेज़ इंटरफ़ेस में दिखाई जा सकती हैं।

2. सामान्य XML संरचना

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

  • realty-feed: object. रूट फ़ीड ब्लॉक।
  • generation-date: datetime. XML जनरेशन की तारीख और समय। डेटा की नवीनता जाँचने के लिए उपयोग किया जाता है।
  • offers: object[]. प्रोजेक्ट्स या कॉम्प्लेक्सेज़ की सूची। हर offers ब्लॉक में प्रोजेक्ट डेटा और उसके लेआउट्स होते हैं।

2.1 फ़ीड एक्सेस और डाउनलोड सीमाएँ

फ़ीड क्लाइंट को व्यक्तिगत वेब लिंक के माध्यम से प्रदान किया जाता है। यह लिंक क्लाइंट के लिए अद्वितीय होता है और प्राप्त करने वाली प्रणाली द्वारा XML को अपने आप डाउनलोड करने के लिए उपयोग किया जाता है।

व्यक्तिगत लिंक Alnair खाते में एडमिनिस्ट्रेटर के लिए उपलब्ध होता है। एडमिनिस्ट्रेटर इस लिंक को क्लाइंट की तकनीकी टीम को इंपोर्ट सेटअप के लिए दे सकता है।

  • Access type: व्यक्तिगत वेब लिंक। क्लाइंट के लिए अलग XML फ़ीड URL।
  • Where to get the link: Alnair account. लिंक क्लाइंट एडमिनिस्ट्रेटर के लिए उपलब्ध है।
  • Feed update frequency: every 4 hours. XML डेटा Alnair पक्ष पर हर 4 घंटे में अपडेट होता है।
  • Minimum download interval: no more than once per hour. प्राप्त करने वाली प्रणाली फ़ीड को प्रति घंटे एक बार से अधिक एक्सेस नहीं कर सकती।
  • Limit exceeded: access blocking. बहुत अधिक बार अनुरोध करने पर फ़ीड एक्सेस अस्थायी रूप से ब्लॉक हो सकता है।

सुझाई गई इंटीग्रेशन लॉजिक: cron या scheduler के माध्यम से निर्धारित डाउनलोडिंग सेट करें, अंतिम प्राप्त XML को सेव करें, और हर वेबसाइट पेज लोड पर फ़ीड अनुरोध न करें। आदर्श मोड यह है कि फ़ीड को प्रति घंटे एक बार से अधिक डाउनलोड न किया जाए, जबकि यह ध्यान में रखा जाए कि नया डेटा लगभग हर 4 घंटे में आता है।

3. प्रोजेक्ट: <offers>

offers मुख्य फ़ीड एंटिटी है। इसमें प्रोजेक्ट विवरण, डेवलपर, लोकेशन, निर्माण और बिक्री स्टेटस, कीमतें, मीडिया, सुविधाएँ, भुगतान योजनाएँ, 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. Alnair में अद्वितीय प्रोजेक्ट ID। upsert के लिए बाहरी प्रोजेक्ट ID के रूप में उपयोग करें।
  • type: enum. शीर्ष-स्तरीय entity प्रकार: project या compound. raw value को स्टोर करें और शीर्ष-स्तरीय प्रोजेक्ट के रूप में import करें।
  • logo: url. प्रोजेक्ट लोगो। ब्रांडिंग में दिखाएँ, cover के रूप में उपयोग न करें।
  • photo: url. मुख्य प्रोजेक्ट इमेज / cover. इसे cover image और hero image के रूप में उपयोग करें।
  • title: localized object. en/ru/ar में प्रोजेक्ट नाम। इंटरफ़ेस भाषा के अनुसार दिखाएँ।
  • description: localized HTML. en/ru/ar में प्रोजेक्ट विवरण। सुरक्षित रूप से render करें; HTML CDATA के अंदर है।
  • price_on_request: 0/1. कीमत छिपाने का फ़्लैग। यदि 1 है, तो “Price on request” दिखाएँ।
  • status: object. निर्माण स्टेटस। sales_status से भ्रमित न करें।
  • construction_start_at: datetime. निर्माण शुरू होने की तारीख। भरी हो तो दिखाएँ।
  • construction_progress: decimal. निर्माण पूर्णता प्रतिशत। प्रतिशत के रूप में दिखाएँ।
  • planned_completion_at: datetime. प्रोजेक्ट की नियोजित पूर्णता तारीख। इसे handover date के रूप में उपयोग करें।
  • predicted_completion_at: datetime. अनुमानित पूर्णता तारीख। अद्यतन पूर्णता तारीख के रूप में उपयोग की जा सकती है।
  • amenities: object. प्रोजेक्ट सुविधाएँ और विशेषताएँ। key के अनुसार map करें।
  • developer: object. प्रोजेक्ट डेवलपर। नाम और लोगो स्टोर करें।
  • city / address: string. प्रोजेक्ट का शहर और पता। लोकेशन डेटा में उपयोग करें।
  • latitude / longitude: decimal. निर्देशांक। मानचित्र के लिए उपयोग करें।
  • districts: object. प्रोजेक्ट के ज़िले। फ़िल्टर और प्रोजेक्ट कार्ड के लिए उपयोग करें।
  • album: object. मुख्य, बिना श्रेणी वाली प्रोजेक्ट गैलरी। सामान्य गैलरी के रूप में दिखाएँ।
  • albums: object. थीम आधारित प्रोजेक्ट गैलरी। title के अनुसार समूहित करें।
  • 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[]. डेवलपर के भुगतान विकल्प। भुगतान विकल्प के रूप में दिखाएँ।
  • sales_status: localized object. प्रोजेक्ट बिक्री स्टेटस। बिक्री चरण निर्धारित करता है।
  • stocks: object. डेवलपर के मार्केटिंग कैंपेन और प्रोमोशनल संदेश। प्रोमो ब्लॉक्स के रूप में दिखाएँ।
  • eoi: object. Expression of Interest। केवल Presale (EOI) के लिए दिखाएँ।
  • service_charge: object. सर्विस चार्ज। यदि value भरी हो, तभी दिखाएँ।
  • assignment: decimal. Assignment शर्त। खाली होने का मतलब निर्दिष्ट नहीं है।
  • is_limited_publication: 0/1. प्रकाशन प्रतिबंध। यदि 1 है, तो अनुमति के बिना सार्वजनिक रूप से प्रकाशित न करें।
  • layouts: object[]. प्रोजेक्ट के सामान्य लेआउट्स। इन्हें प्रोजेक्ट की child entities के रूप में import करें।

4. स्थानीयकृत फ़ील्ड्स

स्थानीयकृत फ़ील्ड्स की संरचना समान होती है: टैग के अंदर English, Russian, और Arabic में मान दिए जाते हैं।

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

  • en: English value. अनुशंसित fallback।
  • ru: Russian value.
  • ar: Arabic value.

Fallback नियम:

  1. यदि उपलब्ध हो, तो इंटरफ़ेस भाषा का उपयोग करें।
  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, launch, सक्रिय बिक्री, या sold out।

  • Preliminary Info: प्रोजेक्ट की प्रारंभिक जानकारी।
  • Announcement: प्रोजेक्ट की घोषणा हो चुकी है।
  • Presale (EOI): EOI संग्रह जारी है।
  • Launch: बिक्री शुरू हो चुकी है।
  • On Sale: प्रोजेक्ट खरीद के लिए उपलब्ध है।
  • Sold Out: प्रोजेक्ट बिक चुका है।
  • Pending: स्टेटस अपडेट की प्रतीक्षा में है।

6. डेवलपर और लोकेशन

ये ब्लॉक्स डेवलपर ब्रांड और प्रोजेक्ट की भौगोलिक लोकेशन दिखाने के लिए आवश्यक हैं।

<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.logo: url. डेवलपर लोगो।
  • 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: टाउनहाउस।
  • n: लागू नहीं / गैर-आवासीय श्रेणी / अन्य।

8. मीडिया

फ़ीड में मीडिया कई प्रकारों में विभाजित है। इन्हें उनके उद्देश्य को ध्यान में रखे बिना एक ही गैलरी में नहीं मिलाना चाहिए: एक इमेज प्रोजेक्ट cover हो सकती है, दूसरी लोगो, तीसरी प्रमोशन इमेज, और चौथी फ़्लोर प्लान।

  • logo: offers.logo. प्रोजेक्ट लोगो। प्रोजेक्ट ब्रांडिंग में दिखाएँ; cover के रूप में उपयोग न करें।
  • photo: offers.photo. मुख्य प्रोजेक्ट इमेज / cover. कार्ड में cover image और प्रोजेक्ट पेज पर hero image के रूप में उपयोग करें।
  • album.image: offers.album.image. मुख्य, बिना श्रेणी वाली प्रोजेक्ट गैलरी। सामान्य प्रोजेक्ट गैलरी में दिखाएँ।
  • albums.album.images.image: offers.albums.album.images.image. थीम आधारित प्रोजेक्ट गैलरी। albums.album.title के अनुसार समूहित करें।
  • developer.logo: offers.developer.logo. डेवलपर लोगो। डेवलपर ब्लॉक में दिखाएँ।
  • stocks.stock.logo: offers.stocks.stock.logo. मार्केटिंग कैंपेन इमेज। प्रमोशन ब्लॉक के भीतर दिखाएँ।
  • 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: दृश्य और आसपास का क्षेत्र।

हर प्रोजेक्ट में हर श्रेणी होना ज़रूरी नहीं है। यदि श्रेणी शीर्षक खाली है, तो इमेजेज़ को बिना श्रेणी वाली के रूप में import किया जा सकता है या सामान्य गैलरी में रखा जा सकता है।

वर्तमान संरचना में अलग history/story XML टैग नहीं है। न्यूज़, प्रोमोशनल संदेश, और प्रोजेक्ट मार्केटिंग सामग्री stocks के माध्यम से भेजी जाती है। निर्माण इतिहास के लिए, यदि albums में मौजूद हो, तो Construction progress श्रेणी का उपयोग किया जा सकता है।

9. सुविधाएँ

amenities प्रोजेक्ट की सुविधाओं और विशेषताओं का वर्णन करता है। इंटीग्रेशन के लिए key का उपयोग करना बेहतर है, जबकि प्रदर्शन के लिए localized values का उपयोग किया जाना चाहिए।

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

  • amenities: object. सुविधाओं का कंटेनर।
  • amenity: object. एक सुविधा।
  • key: enum. तकनीकी key।
  • en / ru / ar: string. तीन भाषाओं में सुविधा का नाम।

key projecet_hotel_license में टाइपो है, लेकिन इसे Hotel License के रूप में map करना होगा। alias support करना और import न तोड़ना अनुशंसित है।

10. मार्केटिंग प्रमोशन: <stocks>

stocks डेवलपर्स की मार्केटिंग कैंपेन, न्यूज़, और प्रोमोशनल संदेश हैं। इनमें विशेष कीमतें, छूट, लॉन्च शर्तें, EOI घोषणाएँ, अस्थायी भुगतान ऑफ़र, और विज्ञापन सामग्री शामिल हो सकती हैं। यह ब्लॉक inventory stock नहीं है और यूनिट उपलब्धता निर्धारित नहीं करता।

<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. मार्केटिंग संदेशों का कंटेनर।
  • 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 है। यह ब्लॉक 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. EOI शर्तों का कंटेनर।
  • eoi_item: object. एक EOI शर्त।
  • price: decimal. निश्चित EOI राशि।
  • percent: decimal. यदि उपयोग हो, तो EOI प्रतिशत।
  • description: localized object. शर्त का विवरण।
  • sales_status.en = Presale (EOI) और eoi_items भरा है: EOI दिखाएँ।
  • कोई अन्य 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: सर्विस चार्ज राशि। यदि खाली हो, तो ब्लॉक न दिखाएँ।
  • service_charge.unit: गणना इकाई, आमतौर पर sq. m. खाली हो सकती है।
  • service_charge.currency: मुद्रा, आमतौर पर AED. खाली हो सकती है।
  • assignment: वह प्रतिशत जिसके बाद assignment संभव है। खाली = जानकारी निर्दिष्ट नहीं, कोई प्रतिबंध नहीं।

13. भुगतान योजनाएँ: <payment_plans>

payment_plans डेवलपर की ओर से प्रॉपर्टी के भुगतान विकल्पों का वर्णन करता है। एक प्रोजेक्ट में कई भुगतान योजनाएँ हो सकती हैं। हर योजना भुगतान को चरणों में विभाजित करती है: booking, construction, handover, और post-handover। शुल्क और अतिरिक्त चार्ज अलग से भेजे जाते हैं, इसलिए कुल प्रतिशत 100% से अधिक हो सकता है। उदाहरण के लिए, 104% का मतलब 100% प्रॉपर्टी कीमत + 4% DLD fee हो सकता है।

  • Basic: id, title, currency. योजना पहचानकर्ता, शीर्षक, और मुद्रा। title मुक्त पाठ है, enum नहीं।
  • Booking: on_booking_percent, on_booking_fix, on_booking_payments_count, on_booking_fees. booking चरण पर भुगतान और शुल्क।
  • 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. प्रॉपर्टी handover पर भुगतान।
  • Post-handover: post_handover_percent, post_handover_fix, on_post_handover_payments_count, on_post_handover_fees. handover के बाद भुगतान।
  • ROI: roi_percent, roi_fix, roi_payments_count, roi_fees. ROI या guaranteed income schemes के लिए फ़ील्ड्स।
  • 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. कुल योजना राशि और शामिल शुल्क।

14. लेआउट्स: <layouts>

layouts प्रोजेक्ट के भीतर एक सामान्य लेआउट का वर्णन करता है। यह एक समेकित यूनिट प्रकार है, कोई विशिष्ट अपार्टमेंट या ऑफिस नहीं।

  • id: integer. अद्वितीय लेआउट ID। बाहरी लेआउट ID के रूप में उपयोग करें।
  • title: localized object. लेआउट नाम। इंटरफ़ेस भाषा के अनुसार दिखाएँ।
  • 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 reference देखें।
  • sale_units_count: integer. इस प्रकार की उपलब्ध यूनिट्स की संख्या। यह लॉट्स की सूची नहीं है।
  • album: object. लेआउट गैलरी। लेआउट स्तर पर दिखाएँ।
  • levels_photos: object. स्तर के अनुसार इमेजेज़। फ़्लोर प्लान के रूप में उपयोग करें।
  • floors_count: integer. स्तरों की संख्या। 1, 2, 3, आदि।
  • rooms_count: localized object. कमरे की संख्या। Rooms count reference देखें।
  • 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; कुछ फ़ील्ड्स के लिए खाली मान भी मान्य है।

यदि फ़ीड में कोई ऐसा मान आता है जो reference list में नहीं है, तो import विफल नहीं होना चाहिए। मान को raw value के रूप में स्टोर किया जाना चाहिए, unknown के रूप में map किया जाना चाहिए, और समीक्षा के लिए log किया जाना चाहिए।

16. खाली मान

खाली मान का अर्थ “निर्दिष्ट नहीं” है, 0 नहीं। खाली टैग <field/> या <field></field> जैसे दिख सकते हैं।

  • assignment: assignment शर्त निर्दिष्ट नहीं है।
  • service_charge.value: सर्विस चार्ज निर्दिष्ट नहीं है।
  • eoi.is_eoi_return: EOI की वापसीयोग्यता निर्दिष्ट नहीं है।
  • area_balcony_min.m2: बालकनी क्षेत्र निर्दिष्ट नहीं है।
  • description.en: विवरण अनुपलब्ध है।

17. प्रदर्शन नियम

  • Price hidden: price_on_request = 1. “Price on request” दिखाएँ।
  • Price visible: price_on_request = 0. कीमत min/max दिखाएँ।
  • EOI: sales_status.en = Presale (EOI) और EOI भरा है। EOI दिखाएँ।
  • EOI not relevant: sales_status.en != Presale (EOI). EOI छिपाएँ।
  • Sold out: is_sold_out = 1 या sales_status.en = Sold Out. “Sold out” दिखाएँ या लिस्टिंग से छिपाएँ।
  • Limited publication: is_limited_publication = 1. सार्वजनिक रूप से प्रकाशित न करें।
  • Assignment empty: assignment खाली है। assignment ब्लॉक न दिखाएँ।
  • Service charge empty: service_charge.value खाली है। सर्विस चार्ज न दिखाएँ।

18. इंपोर्ट नियम

  • Project: complex-id से खोजें; मिले तो अपडेट करें; न मिले तो बनाएं।
  • Layout: layouts.id से खोजें; project_id द्वारा प्रोजेक्ट से लिंक करें।
  • Deletion: यदि कोई object नए फ़ीड से गायब हो जाए, तो उसे तुरंत हटाने के बजाय inactive चिह्नित करें।
  • Unknown enum: raw value स्टोर करें, unknown के रूप में map करें, और log करें।
  • Empty values: field-specific स्पष्ट नियम के बिना 0 में न बदलें।

Project field → Source

  • 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.

Layout field → Source

  • 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.