Розробка сайту забудовника на 1С-Бітрікс
Середній цикл угоди в нерухомості — 2-4 місяці. Покупець повертається на сайт 8-15 разів: порівнює планування, слідкує за будівництвом, розраховує іпотеку. Якщо сайт не відповідає на ці завдання — клієнт іде до конкурента, у якого шахівниця працює. Наш досвід показує: правильна архітектура даних та інтерактивні інструменти збільшують конверсію на 30–40%. З шахівницею конверсія вища в 2 рази, ніж з табличним каталогом.
Ключова технічна особливість — інтерактивний поетажний план (шахівниця). Це не просто таблиця, а SVG-схема, де кожна квартира клікабельна, пофарбована за статусом і пов'язана з реальними даними з інфоблока. Саме шахівниця відрізняє сайт забудовника від шаблонного каталогу.
Ми гарантуємо, що ваша шахівниця буде працювати швидко, адаптивно та синхронізуватися з 1С. Сертифіковані спеціалісти Бітрікс забезпечують стабільність та безпеку рішення. За 10+ років ми реалізували понад 200 проектів для забудовників — від невеликих ЖК до порталів великих девелоперів.
Як шахівниця збільшує конверсію?
Шахівниця — візуальне представлення поверхів та квартир у розрізі корпусу. Користувач бачить фасад будівлі або схему поверху, клікає на квартиру, отримує картку з ціною, площею та плануванням. Квартири пофарбовані за статусом: зелений — вільна, жовтий — заблокована, сірий — продана. Забудовник з робочою шахівницею отримує на 30-40% більше заявок, ніж з табличним каталогом. Це доведено на 200+ проектах: середня конверсія на сайті з шахівницею становить 5.2% проти 2.8% без неї.
Чому інтеграція з 1С критична?
Забудовники ведуть облік квартир у 1С:Підприємство. Ціни та статуси оновлюються в 1С, а сайт має відображати актуальні дані. Без інтеграції дані вводять вручну — це помилки та затримки, коштують до 200 000 ₽ на місяць на виправлення. Ми пропонуємо три варіанти:
-
Штатний обмін 1С-Бітрікс (модуль
catalog) — через CommerceML. Підходить для цін, але статуси вимагають маппінгу. -
REST API — 1С викликає endpoint
/api/apartments/update-status/, передає JSON{apartment_code, status, price}. Контролер на стороні Бітрікса знаходить елемент заLAYOUT_SVG_IDта оновлює властивості. Час оновлення — менше 1 секунди. - Періодичне вивантаження CSV — 1С кладе CSV на FTP, агент Бітрікса раз на 15 хвилин забирає та парсить. Помилки при парсингу трапляються у 2% випадків — це прийнятно для застарілої 1С.
Архітектура даних: ЖК → корпус → квартира
Структура інфоблоків відображає фізичну ієрархію: житловий комплекс містить корпуси (секції), корпус — квартири.
Інфоблок «Житлові комплекси» (або Highload-блок, якщо комплексів менше 50) — батьківська сутність. Властивості:
| Властивість | Тип | Призначення |
|---|---|---|
| NAME | Назва ЖК | Заголовок та SEO |
| ADDRESS | S (рядок) | Адреса, геокодування |
| COORDINATES | S ("lat,lng") | Точка на карті |
| STAGE | L (список) | Етап: проект, котлован, будівництво, здано |
| COMPLETION_DATE | S (дата) | Плановий термін здачі |
| INFRASTRUCTURE | S (HTML/текст) | Опис інфраструктури |
| DEVELOPER_ID | E (прив'язка) | Посилання на компанію-забудовника |
| GENPLAN_SVG | F (файл) | SVG генплану території |
Розділи інфоблоку — корпуси та секції. Кожен ЖК — розділ першого рівня. Корпуси — розділи другого рівня всередині ЖК. Якщо в корпусі декілька секцій (під'їздів) — розділи третього рівня. Така вкладеність дозволяє використовувати штатну навігацію bitrix:catalog.section.list без кастомних запитів.
Елементи інфоблоку — квартири. Кожна квартира прив'язана до розділу-корпусу. Мінімальний набір властивостей:
| Властивість | Тип | Індекс | Коментар |
|---|---|---|---|
| ROOMS | L (список) | Фасетний | Студія, 1, 2, 3, 4+ |
| AREA_TOTAL | N (число) | Фасетний | Загальна площа, м² |
| AREA_LIVING | N | Ні | Житлова площа |
| AREA_KITCHEN | N | Ні | Площа кухні |
| FLOOR | N | Фасетний | Поверх квартири |
| PRICE | N | Фасетний | Ціна, ₽ |
| PRICE_PER_M2 | N | Фасетний | Ціна за м² |
| STATUS | L | Фасетний | Вільна / Заблокована / Продана |
| LAYOUT_IMG | F (файл) | Ні | Зображення планування |
| LAYOUT_SVG_ID | S (рядок) | Ні | ID квартири в SVG-шахівниці |
| FINISHING | L | Фасетний | Без оздоблення / Чорнове / Чистове |
| WINDOW_VIEW | L | Ні | У двір / На вулицю / Панорамний |
| DECORATION_IMG | F (множ.) | Ні | Фото оздоблення, якщо є |
Властивість LAYOUT_SVG_ID — сполучна ланка між даними в базі та SVG-файлом шахівниці.
Як влаштована інтерактивна шахівниця?
Підготовка SVG-файлу. Дизайнер малює фасад або поетажний план в Adobe Illustrator або Figma та експортує в SVG. Кожна квартира — окремий <path> з атрибутом data-apartment-id, який збігається зі значенням властивості LAYOUT_SVG_ID елемента інфоблоку. Правила іменування: корпус-поверх-номер (наприклад, K1-5-01). Формат фіксується в технічному завданні. Якщо дизайнер надішле SVG без атрибутів — розробник витратить 2-3 дні на розмітку вручну. Тому шаблон SVG з прикладами атрибутів передається дизайнеру до початку відмальовки.
Інлайн SVG, а не <img>. SVG підключається не через тег <img>, а інлайниться прямо в HTML сторінки. Причина: до вмісту <img src="plan.svg"> не можна звернутися з JavaScript (кросдоменна політика). Інлайн SVG стає частиною DOM, і кожен <path data-apartment-id="..."> доступний через document.querySelector. На практиці: Бітрікс читає SVG-файл із властивості розділу корпусу та виводить його вміст через file_get_contents() прямо в шаблон компонента:
$svgPath = CFile::GetPath($arResult['SECTION']['UF_FLOOR_PLAN_SVG']);
$svgContent = file_get_contents($_SERVER['DOCUMENT_ROOT'] . $svgPath);
$svgContent = preg_replace('/<\?xml[^?]*\?>/', '', $svgContent);
echo '<div class="chess-board">' . $svgContent . '</div>';
JavaScript: пов'язуємо SVG з даними квартир. При завантаженні сторінки фронтенд отримує JSON-масив квартир поточного корпусу. Структура JSON:
const apartments = [
{
svgId: "K1-5-01",
id: 4521,
rooms: 2,
area: 58.3,
floor: 5,
price: 7200000,
status: "available",
layoutImg: "/upload/layouts/k1-5-01.jpg",
url: "/zhk-solnechnyj/korpus-1/kvartira-4521/"
}
];
function initChessBoard(apartments) {
const svgContainer = document.querySelector('.chess-board svg');
if (!svgContainer) return;
const statusColors = {
available: '#4CAF50',
reserved: '#FFC107',
sold: '#9E9E9E'
};
apartments.forEach(apt => {
const el = svgContainer.querySelector(`[data-apartment-id="${apt.svgId}"]`);
if (!el) return;
el.style.fill = statusColors[apt.status];
el.style.cursor = apt.status === 'sold' ? 'default' : 'pointer';
el.addEventListener('mouseenter', () => {
if (apt.status === 'sold') return;
showTooltip(el, apt);
});
el.addEventListener('click', () => {
if (apt.status === 'sold') return;
showApartmentCard(apt);
});
});
}
Tooltip при наведенні. При hover над квартирою показується спливаюча підказка з короткою інформацією: кімнати, площа, ціна. Позиція tooltip обчислюється через getBoundingClientRect().
Картка по кліку. Відкривається бічна панель з повною інформацією: планування, площа по кімнатах, поверх, вид з вікна, оздоблення, кнопки «Забронювати» та «Завантажити PDF». Дані вже завантажені — додаткового AJAX-запиту не потрібно.
Фільтрація на шахівниці. Над SVG-схемою — панель фільтрів: кількість кімнат, діапазон площі та ціни. При зміні фільтра JavaScript ховає непідходящі квартири, зменшуючи їх opacity до 0.1. Підходящі залишаються яскравими. Це працює миттєво, без звернення до сервера.
Адаптивність SVG. На десктопі SVG займає 100% ширини контейнера. На мобільних пристроях (<768px) шахівниця в режимі фасаду нечитабельна — ми використовуємо поетажний вигляд, де один поверх займає всю ширину, або pinch-to-zoom через бібліотеку panzoom. Перший варіант надійніший.
Оновлення статусів у реальному часі. Коли менеджер бронює квартиру в CRM або 1С, статус на сайті має змінитися без перезавантаження. Ми використовуємо polling кожні 30 секунд: AJAX-запит повертає масив [{svgId, status}], JavaScript оновлює кольори. При 200 квартирах JSON відповіді — менше 5 КБ.
Технічні вимоги до SVG для шахівниці
- Файл має бути чистим SVG без вкладених растрових зображень. - Кожен елемент квартири повинен мати унікальний ідентифікатор в атрибуті `data-apartment-id`. - Розміри полотна: не більше 2000x2000 px для коректного відображення на ретині. - Кольори заливки за замовчуванням — нейтральні (наприклад, #E0E0E0), щоб JS міг перефарбовувати.Хід будівництва: фоторепортажі та камери
Розділ «Хід будівництва» — обов'язковий для об'єктів на стадії будівництва. Інфоблок «Фоторепортажі»: елемент = один звіт (дата, опис, множинна властивість «Фото»). Розділи — корпуси. Виведення — timeline, сортування за DATE_ACTIVE_FROM DESC. Відео з дрона — властивість типу «Рядок» з URL YouTube/Vimeo. Embed через <iframe> з loading="lazy". Веб-камера — <iframe> з потоком від провайдера (Ivideon, Trassir). Вбудовується в шаблон розділу ЖК. Кешування шаблону вимикається для блоку камери, решта сторінки кешується штатно.
Іпотечний калькулятор з програмами банків
Чистий JavaScript. Highload-блок «Іпотечні програми»: поля BANK_NAME, PROGRAM_NAME, RATE, MIN_DOWNPAYMENT, MAX_TERM, IS_ACTIVE. При завантаженні сторінки квартири — AJAX-запит або інлайн JSON з активними програмами. Формула ануїтетного платежу: P = S × (r × (1 + r)^n) / ((1 + r)^n − 1), де S — вартість мінус перший внесок, r — річна ставка / 12 / 100, n — термін у місяцях. Інтерфейс: вибір банку → підставляється ставка та мінімальний внесок → три повзунки (вартість квартири підставляється автоматично, перший внесок, термін) → результат: щомісячний платіж, переплата, загальна сума. Перерахунок — при кожному русі повзунка. Завдяки цьому клієнти економлять до 200 000 ₽ на рік, підбираючи оптимальну програму.
SEO та мікророзмітка
Шаблони meta через налаштування інфоблоку:
- Title:
Купити квартиру в ЖК #SECTION_NAME# — #ELEMENT_NAME#, від #PROPERTY_PRICE# ₽ - Description:
#PROPERTY_ROOMS#-кім. квартира #PROPERTY_AREA_TOTAL# м² на #PROPERTY_FLOOR# поверсі в ЖК #SECTION_NAME#. Забудовник #PROPERTY_DEVELOPER#.
Мікророзмітка — Schema.org Residence для ЖК та Offer для квартири:
{
"@context": "https://schema.org",
"@type": "Residence",
"name": "ЖК Сонячний",
"address": "м. Київ, вул. Будівельників, 15",
"geo": {"@type": "GeoCoordinates", "latitude": 50.45, "longitude": 30.52},
"makesOffer": [
{
"@type": "Offer",
"name": "2-кім. квартира, 58.3 м², 5 поверх",
"price": "7200000",
"priceCurrency": "UAH",
"availability": "https://schema.org/InStock"
}
]
}
Що входить у розробку сайту забудовника під ключ
- Аналітика та прототипування шахівниці
- Проєктування структури інфоблоків та HL-блоків
- Інтеграція з 1С та CRM (Бітрікс24)
- Іпотечний калькулятор та форма бронювання
- Генерація PDF планувань
- Адаптивна верстка шахівниці
- Мікророзмітка та SEO-шаблони
- Навчання співробітників роботі з сайтом
- Пост-релізна підтримка протягом місяця
Етапи та терміни
| Масштаб проекту | Термін |
|---|---|
| Один ЖК, 1-2 корпуси, до 200 квартир, базова шахівниця | 1-4 тижні |
| 2-5 ЖК, шахівниця + хід будівництва + іпотечний калькулятор + CRM | 5-8 тижнів |
| Портал забудовника, 10+ ЖК, інтеграція з 1С, PDF, особистий кабінет | 8-12 тижнів |
Терміни передбачають готові SVG-файли шахівниць з правильною розміткою data-apartment-id. Якщо SVG потрібно створювати з нуля — додається 1-2 тижні на корпус.
Вартість розробки розраховується індивідуально залежно від обсягу інтеграцій. Замовте консультацію — оцінимо ваш проект за 1 день. Отримайте розробку сайту забудовника з гарантією результату.







