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-парсер: зчитування структури XML і перетворення її у внутрішню модель даних.
  • Модуль імпорту: створення, оновлення та деактивація проєктів і планувань.
  • Планувальник завдань: регулярний запуск імпорту за розкладом, наприклад через cron або планувальник.
  • Журнал помилок: контроль невідомих значень enum, порожніх полів і помилок завантаження.

1.3 Як агентство використовує XML-фід

Типовий процес має такий вигляд:

  1. Система агентства завантажує XML за персональним вебпосиланням.
  2. XML зберігається як необроблений знімок для діагностики та повторної обробки.
  3. Парсер зчитує структуру realty-feed, offers, layouts і вкладені блоки.
  4. Модуль імпорту створює нові проєкти та планування або оновлює наявні.
  5. Об'єкти, що зникли з нового фіду, позначаються як неактивні.
  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: об'єкт. Кореневий блок фіду.
  • generation-date: datetime. Дата й час створення XML. Використовується для перевірки актуальності даних.
  • offers: object[]. Перелік проєктів або комплексів. Кожен блок offers містить дані про проєкт і його планування.

2.1 Доступ до фіду та обмеження завантаження

Фід надається клієнту через персональне вебпосилання. Посилання є унікальним для клієнта та використовується системою-одержувачем для автоматичного завантаження XML.

Персональне посилання доступне адміністратору в обліковому записі Alnair. Адміністратор може передати його технічній команді клієнта для налаштування імпорту.

  • Тип доступу: персональне вебпосилання. Індивідуальна URL-адреса XML-фіду клієнта.
  • Де отримати посилання: обліковий запис Alnair. Посилання доступне адміністратору клієнта.
  • Частота оновлення фіду: кожні 4 години. Дані XML оновлюються на стороні Alnair раз на 4 години.
  • Мінімальний інтервал завантаження: не частіше ніж раз на годину. Система-одержувач не повинна звертатися до фіду частіше ніж раз на годину.
  • Перевищення ліміту: блокування доступу. Якщо запити надходять надто часто, доступ до фіду може бути тимчасово заблокований.

Рекомендована логіка інтеграції: налаштувати планове завантаження через cron або планувальник, зберігати останній отриманий 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. Унікальний ID проєкту в Alnair. Використовуйте як зовнішній ID проєкту для upsert.
  • type: enum. Тип основної сутності: project або compound. Зберігайте вихідне значення та імпортуйте як проєкт верхнього рівня.
  • logo: url. Логотип проєкту. Використовуйте у брендингу, але не як обкладинку.
  • photo: url. Головне зображення або обкладинка проєкту. Використовуйте як обкладинку та головне зображення.
  • title: локалізований об'єкт. Назва проєкту мовами en/ru/ar. Відображайте відповідно до мови інтерфейсу.
  • description: локалізований HTML. Опис проєкту мовами en/ru/ar. Безпечно відображайте HTML, який міститься в CDATA.
  • price_on_request: 0/1. Прапорець приховування ціни. Якщо значення 1, показуйте «Ціна за запитом».
  • status: об'єкт. Статус будівництва. Не плутайте із sales_status.
  • construction_start_at: datetime. Дата початку будівництва. Відображайте, якщо заповнено.
  • construction_progress: decimal. Відсоток готовності будівництва. Відображайте у відсотках.
  • planned_completion_at: datetime. Запланована дата завершення проєкту. Використовуйте як дату введення в експлуатацію.
  • predicted_completion_at: datetime. Прогнозована дата завершення. Може використовуватися як оновлена дата завершення.
  • amenities: об'єкт. Зручності та характеристики проєкту. Зіставляйте за ключем.
  • developer: об'єкт. Забудовник проєкту. Зберігайте назву та логотип.
  • city / address: string. Місто й адреса проєкту. Використовуйте в даних про розташування.
  • latitude / longitude: decimal. Координати. Використовуйте для карти.
  • districts: об'єкт. Райони проєкту. Використовуйте для фільтрів і картки проєкту.
  • album: об'єкт. Основна некатегоризована галерея проєкту. Відображайте як загальну галерею.
  • albums: об'єкт. Тематичні галереї проєкту. Групуйте за заголовком.
  • for_sale_count: integer. Кількість доступних об'єктів у проєкті. Може відображатися як показник доступності.
  • price: об'єкт. Загальний діапазон цін проєкту. Приховуйте, якщо price_on_request=1.
  • br_prices: object[]. Ціни за кількістю спалень або категорією. Використовуйте для фільтрів і списків.
  • updated_at: datetime. Дата оновлення проєкту. Використовуйте для синхронізації.
  • is_sold_out: 0/1. Прапорець повного розпродажу. Використовуйте разом із sales_status.
  • payment_plans: object[]. Варіанти оплати від забудовника. Відображайте як платіжні опції.
  • sales_status: локалізований об'єкт. Статус продажів проєкту. Визначає етап продажів.
  • stocks: об'єкт. Маркетингові кампанії та рекламні повідомлення від забудовника. Відображайте як промоблоки.
  • eoi: об'єкт. Expression of Interest. Відображайте лише для Presale (EOI).
  • service_charge: об'єкт. Сервісний збір. Відображайте, якщо значення заповнено.
  • assignment: decimal. Умова переуступлення. Порожнє значення означає, що інформацію не зазначено.
  • is_limited_publication: 0/1. Обмеження публікації. Якщо значення 1, не публікуйте без дозволу.
  • layouts: object[]. Типові планування проєкту. Імпортуйте як дочірні сутності проєкту.

4. Локалізовані поля

Локалізовані поля мають однакову структуру: значення англійською, російською та арабською передаються всередині тегу.

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

  • en: значення англійською. Рекомендований запасний варіант.
  • ru: значення російською.
  • ar: значення арабською.

Правило запасного варіанта:

  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>

Статус продажів показує комерційний етап проєкту: анонс, передпродаж, старт, активні продажі або повний розпродаж.

  • 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. Мінімальна ціна в 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. Медіа

Медіа у фіді поділяється на кілька типів. Не об'єднуйте їх в одну галерею без урахування призначення: одне зображення може бути обкладинкою проєкту, інше логотипом, рекламним зображенням або планом поверху.

  • logo: offers.logo. Логотип проєкту. Відображайте у брендингу, але не використовуйте як обкладинку.
  • photo: offers.photo. Головне зображення або обкладинка проєкту. Використовуйте як обкладинку картки та головне зображення сторінки проєкту.
  • 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-тегу history/story. Новини, рекламні повідомлення та маркетингові матеріали проєкту передаються через 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/порожнє. 0 = без повернення, 1 = з поверненням, порожнє = не зазначено.
  • eoi_items: об'єкт. Контейнер умов EOI.
  • eoi_item: об'єкт. Одна умова EOI.
  • price: decimal. Фіксована сума EOI.
  • percent: decimal. Відсоток EOI, якщо використовується.
  • description: локалізований об'єкт. Опис умови.
  • sales_status.en = Presale (EOI) і eoi_items заповнено: показуйте EOI.
  • Будь-який інший sales_status: приховуйте EOI.

12. Сервісний збір і переуступлення

<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: відсоток, після якого можлива переуступка. Порожнє значення означає, що інформацію не зазначено, а не наявність обмеження.

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. Унікальний ID планування. Використовуйте як зовнішній ID планування.
  • title: локалізований об'єкт. Назва планування. Відображайте відповідно до мови інтерфейсу.
  • project_id: integer. ID батьківського проєкту. Пов'язуйте з offers.complex-id.
  • building_name: локалізований об'єкт. Назва будівлі. Не відображайте, якщо поле порожнє.
  • price_on_request: 0/1. Прапорець приховування ціни. Якщо значення 1, не показуйте ціну.
  • area_min / area_max: об'єкт. Діапазон площі. m2 та ft2.
  • area_balcony_min / area_balcony_max: об'єкт. Діапазон площі балкона. Може бути порожнім.
  • type: локалізований об'єкт. Тип об'єкта. Див. довідник типів.
  • sale_units_count: integer. Кількість доступних об'єктів цього типу. Це не перелік ділянок.
  • album: об'єкт. Галерея планування. Відображайте на рівні планування.
  • levels_photos: об'єкт. Зображення за рівнями. Використовуйте як плани поверхів.
  • floors_count: integer. Кількість рівнів. 1, 2, 3 тощо.
  • rooms_count: локалізований об'єкт. Кількість кімнат. Див. довідник кількості кімнат.
  • price: об'єкт. Діапазон цін планування. Приховуйте, якщо 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; для деяких полів допускається порожнє значення.

Якщо фід містить значення, якого немає у довіднику, імпорт не повинен завершуватися помилкою. Значення потрібно зберегти як вихідне, позначити як невідоме та записати в журнал для перевірки.

16. Порожні значення

Порожнє значення означає «не зазначено», а не 0. Порожні теги можуть мати вигляд <field/> або <field></field>.

  • 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.
  • Продано: is_sold_out = 1 або sales_status.en = Sold Out. Показуйте «Продано» або приховуйте з переліку.
  • Обмежена публікація: is_limited_publication = 1. Не публікуйте відкрито.
  • Порожнє assignment: assignment порожнє. Не відображайте блок переуступлення.
  • Порожній сервісний збір: service_charge.value порожнє. Не відображайте сервісний збір.

18. Правила імпорту

  • Проєкт: шукайте за complex-id; якщо знайдено, оновлюйте, якщо ні, створюйте.
  • Планування: шукайте за layouts.id; пов'язуйте з проєктом через project_id.
  • Видалення: якщо об'єкт зник із нового фіду, спочатку позначайте його неактивним, а не видаляйте одразу.
  • Невідомий 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.