פיד XML לפרויקטים ולתכניות דירה
1. מטרת ה-Feed
ה-XML feed מעביר נתונים מובנים על פרויקטי נדל"ן ועל תכניות דירה טיפוסיות. מטרתו לאפשר למערכת הקולטת ליצור ולעדכן כרטיסי פרויקט באופן אוטומטי, להציג מחירים, סטטוסים, גלריות, מתקנים, תנאי תשלום, EOI וחומרי פרסום שיווקיים מהיזמים.
ה-Feed מעביר את התכניות בצורה מצטברת: רשומת תכנית אחת מתארת תכנון טיפוסי ואת מספר היחידות הזמינות מאותו סוג. זהו לא רשימה של דירות, משרדים או מגרשים ספציפיים.
- realty-feed: מיכל השורש של כל ה-XML feed. מזהה ראשי: —
- offers: פרויקט או מתחם אחד. מזהה ראשי: complex-id
- layouts: תכנית טיפוסית בתוך פרויקט. מזהה ראשי: id
- payment_plans: אפשרות תשלום אחת של הפרויקט. מזהה ראשי: id
- eoi_item: תנאי EOI אחד. מזהה ראשי: —
- stock: קמפיין שיווקי, ידיעה או מסר פרסומי מהיזם. מזהה ראשי: —
1.1 מהו XML Feed
XML feed הוא קובץ מובנה המכיל נתונים על פרויקטי נדל"ן ועל תכניות דירה טיפוסיות. הוא כולל תיאורים, תמונות, מחירים, כתובות, סטטוסים, מפרטים, מתקנים ונתונים נוספים הנדרשים להצגת נכסים באתר סוכנות או בקטלוג.
במילים פשוטות, XML feed הוא זרם נתונים על נדל"ן שמערכת הקבלה מורידה, קוראת ומשתמשת בו לעדכון אוטומטי של כרטיסי נכס.
Alnair מספקת את הנתונים. פיתוח האתר, פיתוח הקטלוג, אינטגרציית CRM ולוגיקת הייבוא מטופלים על ידי הלקוח או הצוות הטכני של הלקוח.
1.2 מה נדרש מהסוכנות
כדי להשתמש ב-XML feed, הסוכנות זקוקה לתשתית טכנית משלה, שתהיה מסוגלת להוריד את ה-XML באופן קבוע, לפרש את המבנה שלו ולעדכן את הנתונים במערכת.
- אתר או קטלוג נכסים: המקום שבו יוצגו הפרויקטים והתכניות מה-Feed.
- צוות טכני או מפתח: הקמה של הורדת XML, פרסור וייבוא.
- XML parser: קריאת מבנה ה-XML והמרתו למודל הנתונים הפנימי.
- מודול ייבוא: יצירה, עדכון והשבתה של פרויקטים ותכניות.
- מתזמן משימות: הרצת ייבוא קבוע לפי לוח זמנים, למשל באמצעות cron או scheduler.
- רישום שגיאות: ניטור ערכי enum לא מוכרים, שדות ריקים ושגיאות טעינה.
1.3 כיצד הסוכנות משתמשת ב-XML Feed
זרימת עבודה טיפוסית נראית כך:
- מערכת הסוכנות מורידה את ה-XML מקישור אישי באינטרנט.
- ה-XML נשמר כצילום גולמי לצורכי אבחון ועיבוד חוזר.
- ה-parser קורא את המבנה realty-feed, offers, layouts ואת הבלוקים המקוננים.
- מודול הייבוא יוצר פרויקטים ותכניות חדשים או מעדכן קיימים.
- אובייקטים שנעלמו מה-Feed החדש מסומנים כלא פעילים.
- אתר הסוכנות מציג כרטיסי פרויקט, מחירים, גלריות וסטטוסים מעודכנים.
יכולות אינטגרציה מרכזיות:
- עדכונים אוטומטיים: פרויקטים ותכניות מתעדכנים ללא הזנה ידנית.
- יצירת דפי נכס: נתוני ה-Feed משמשים לכרטיסי פרויקט ותכנית.
- מחירים וסטטוסים עדכניים: האתר מקבל עדכוני XML לפי לוח זמנים.
- סינון וחיפוש: ניתן להשתמש בשדות מחוז, מחיר, סוג נכס, מספר חדרים ושטח לסינון.
- גלריות מדיה: ניתן להציג תמונות פרויקט, גלריות נושאיות ותמונות תכנית בממשק.
2. מבנה ה-XML הכללי
<realty-feed>
<generation-date>2026-06-17T12:06:39+04:00</generation-date>
<offers>...</offers>
<offers>...</offers>
</realty-feed>
- realty-feed: אובייקט. בלוק השורש של ה-Feed.
- generation-date: datetime. תאריך ושעת יצירת ה-XML. משמש לבדיקת עדכניות הנתונים.
- offers: object[]. רשימת פרויקטים או מתחמים. כל בלוק offers מכיל את נתוני הפרויקט ואת התכניות שלו.
2.1 גישת Feed ומגבלות הורדה
ה-Feed מסופק ללקוח באמצעות קישור אישי באינטרנט. הקישור ייחודי ללקוח ומשמש את מערכת הקבלה להורדה אוטומטית של ה-XML.
הקישור האישי זמין למנהל החשבון ב-Alnair. המנהל יכול להעביר את הקישור לצוות הטכני של הלקוח לצורך הקמת הייבוא.
- סוג גישה: קישור אישי באינטרנט. כתובת URL ייחודית ל-XML feed עבור הלקוח.
- היכן לקבל את הקישור: חשבון Alnair. הקישור זמין למנהל הלקוח.
- תדירות עדכון ה-Feed: כל 4 שעות. נתוני ה-XML מתעדכנים בצד של Alnair פעם ב-4 שעות.
- מרווח הורדה מינימלי: לא יותר מפעם בשעה. מערכת הקבלה לא חייבת לגשת ל-Feed יותר מפעם בשעה.
- חריגה מהמגבלה: חסימת גישה. אם הבקשות תכופות מדי, ייתכן שגישה ל-Feed תחסם זמנית.
לוגיקת אינטגרציה מומלצת: להגדיר הורדה מתוזמנת באמצעות cron או scheduler, לשמור את ה-XML האחרון שהתקבל, ולא לבקש את ה-Feed בכל טעינת עמוד באתר. המצב האופטימלי הוא הורדה לא יותר מפעם בשעה, תוך התחשבות בכך שנתונים חדשים מופיעים בערך כל 4 שעות.
3. פרויקט: <offers>
offers הוא הישות המרכזית ב-Feed. הוא כולל את תיאור הפרויקט, היזם, המיקום, סטטוס הבנייה והמכירה, מחירים, מדיה, מתקנים, תכניות תשלום, 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. יש להשתמש בו כמזהה החיצוני של הפרויקט ל-upsert.
- type: enum. סוג הישות ברמה העליונה: project או compound. יש לשמור את הערך הגולמי ולייבא אותו כפרויקט ברמה העליונה.
- logo: url. לוגו הפרויקט. להציג במיתוג, לא להשתמש כ-cover.
- photo: url. תמונת הפרויקט הראשית / cover. להשתמש כתמונת שער וכתמונת hero.
- title: localized object. שם הפרויקט ב-en/ru/ar. להציג לפי שפת הממשק.
- 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. מתקני הפרויקט והמאפיינים שלו. למפות לפי מפתח.
- 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. דמי ניהול. להציג אם הערך מולא.
- assignment: decimal. תנאי assignment. אם ריק - לא צוין.
- is_limited_publication: 0/1. מגבלת פרסום. אם 1, לא לפרסם פומבית ללא אישור.
- layouts: object[]. תכניות טיפוסיות של הפרויקט. לייבא כישויות משנה של הפרויקט.
4. שדות מקומיים
לשדות מקומיים יש אותו מבנה: ערכים באנגלית, רוסית וערבית מועברים בתוך התג.
<title>
<en>Project Name</en>
<ru>Название проекта</ru>
<ar>اسم المشروع</ar>
</title>
- en: ערך באנגלית. fallback מומלץ.
- ru: ערך ברוסית.
- ar: ערך בערבית.
כלל fallback:
- להשתמש בשפת הממשק אם היא מולאה.
- אם השפה הנדרשת ריקה, להשתמש ב-en.
- אם en ריק, להשתמש ב-ru.
- אם ru ריק, להשתמש ב-ar.
- אם כל הערכים ריקים, לא להציג את השדה.
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>
<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: אובייקט מקומי. שם היזם.
- 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. מחיר מינימלי בדולר.
- max_usd: decimal. מחיר מקסימלי בדולר.
- 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. מדיה
המדיה ב-Feed מחולקת למספר סוגים. אין למזג אותם לגלריה אחת בלי להתחשב במטרה: תמונה אחת יכולה להיות cover של הפרויקט, אחרת הלוגו, אחרת תמונת קידום, ואחרת תשריט.
- logo: offers.logo. לוגו הפרויקט. להציג במיתוג הפרויקט; לא להשתמש כ-cover.
- photo: offers.photo. תמונת הפרויקט הראשית / cover. להשתמש כתמונת cover בכרטיס וכתמונת hero בעמוד הפרויקט.
- 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: נופים והסביבה.
לא כל קטגוריה חייבת להופיע בכל פרויקט. אם כותרת הקטגוריה ריקה, ניתן לייבא את התמונות כלא מסווגות או למקם אותן בגלריה הכללית.
במבנה הנוכחי אין תג XML נפרד להיסטוריה/סטורי. חדשות, מסרים פרסומיים וחומרי שיווק של הפרויקט מועברים דרך stocks. עבור היסטוריית בנייה ניתן להשתמש בקטגוריית Construction progress אם היא קיימת ב-albums.
9. מתקנים
amenities מתאר את מתקני הפרויקט והמאפיינים שלו. לצורך אינטגרציה, עדיף להשתמש ב-key, בעוד שהערכים המקומיים ישמשו להצגה.
<amenities>
<amenity>
<key>project_facilities_gym</key>
<en>Gym</en>
<ru>Тренажёрный зал</ru>
<ar>صالة رياضية</ar>
</amenity>
</amenities>
- amenities: אובייקט. מיכל המתקנים.
- amenity: אובייקט. מתקן אחד.
- key: enum. מפתח טכני.
- en / ru / ar: string. שם המתקן בשלוש שפות.
המפתח projecet_hotel_license מכיל שגיאת כתיב, אך יש למפות אותו כ-Hotel License. מומלץ לתמוך בכינוי ולא לשבור את הייבוא.
10. מבצעים שיווקיים: <stocks>
stocks הם קמפיינים שיווקיים, חדשות והודעות פרסומיות מהיזמים. הם יכולים לכלול מחירים מיוחדים, הנחות, תנאי השקה, הכרזות EOI, הצעות תשלום זמניות וחומרי פרסום. בלוק זה אינו מלאי ואינו מגדיר זמינות יחידות.
<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: אובייקט. מיכל הודעות שיווקיות.
- stock: אובייקט. קמפיין אחד, פריט חדשות או הודעת קידום.
- title: אובייקט מקומי. כותרת המבצע.
- description: 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: אובייקט. מיכל תנאי EOI.
- eoi_item: אובייקט. תנאי EOI אחד.
- price: decimal. סכום EOI קבוע.
- percent: decimal. אחוז EOI, אם נעשה בו שימוש.
- description: אובייקט מקומי. תיאור התנאי.
- 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: סכום דמי הניהול. אם ריק, אין להציג את הבלוק.
- service_charge.unit: יחידת החישוב, בדרך כלל sq. m. עשויה להיות ריקה.
- service_charge.currency: מטבע, בדרך כלל AED. עשוי להיות ריק.
- assignment: אחוז שלאחריו ניתן לבצע assignment. ריק = המידע לא צוין, לא מגבלה.
13. תכניות תשלום: <payment_plans>
payment_plans מתאר אפשרויות תשלום לנכס מהיזם. לפרויקט אחד יכולות להיות כמה תכניות תשלום. כל תכנית מפרקת את התשלום לשלבים: הזמנה, בנייה, מסירה ולאחר המסירה. עמלות וחיובים נוספים מועברים בנפרד, ולכן האחוז הכולל עשוי לעלות על 100%. לדוגמה, 104% יכול להיות 100% ממחיר הנכס + 4% דמי DLD.
- Basic: id, title, currency. מזהה התכנית, הכותרת והמטבע. 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. סכומי התכנית הכוללים והעמלות הכלולות.
14. תכניות דירה: <layouts>
layouts מתאר תכנית דירה טיפוסית בתוך פרויקט. זהו סוג יחידה מצטבר, לא דירה או משרד ספציפיים.
- id: integer. מזהה תכנית ייחודי. להשתמש כמזהה החיצוני של התכנית.
- title: localized object. שם התכנית. להציג לפי שפת הממשק.
- project_id: integer. מזהה פרויקט אב. לקשר עם 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. סוג הנכס. ראו Reference לסוג יחידה.
- sale_units_count: integer. מספר היחידות הזמינות מסוג זה. זה לא רשימת מגרשים.
- album: object. גלריית התכנית. להציג ברמת התכנית.
- levels_photos: object. תמונות לפי קומה. להשתמש כתשריטים.
- floors_count: integer. מספר מפלסים. 1, 2, 3 וכו'.
- rooms_count: localized object. מספר חדרים. ראו 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; מותר להשאיר ריק בחלק מהשדות.
אם ה-Feed מכיל ערך שאינו ברשימת ה-reference, הייבוא לא אמור להיכשל. יש לשמור את הערך כערך גולמי, למפות אותו כלא מוכר ולרשום אותו לבדיקה.
16. ערכים ריקים
ערך ריק פירושו “לא צוין”, ולא 0. תגיות ריקות עשויות להיראות כמו <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 ריק. לא להציג את בלוק ה-assignment.
- דמי ניהול ריקים: service_charge.value ריק. לא להציג דמי ניהול.
18. כללי ייבוא
- פרויקט: לחפש לפי complex-id; אם נמצא, לעדכן; אם לא נמצא, ליצור.
- תכנית: לחפש לפי layouts.id; לקשר לפרויקט לפי project_id.
- מחיקה: אם אובייקט נעלם מה-Feed החדש, לסמן אותו כלא פעיל במקום למחוק מיד.
- enum לא מוכר: לשמור ערך גולמי, למפות כלא מוכר ולרשום.
- ערכים ריקים: לא להמיר ל-0 בלי כלל מפורש ספציפי לשדה.
19. מבנה נתונים מומלץ
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.