Лето. Море. Сочи
Онлайн-каталог элитной недвижимости у моря
Лето. Море. Сочи
Онлайн-каталог элитной недвижимости у моря
Солнце круглый год, пляж в трех шагах… ммм, мечта да и только! И не только :) Агентство недвижимости «Лето» занимается тем, что превращает мечту в самую настоящую квартиру или домик у моря. А для комфортного и быстрого поиска жилья мы сделали удобный и красивый онлайн-каталог.
Чтобы понять специфику аудитории, мы подробно пробрифовали десяток специалистов со стороны заказчика. Среди них каждый — эксперт в своем сегменте рынка. Мы развернули пользовательские сценарии и получили несколько портретов пользователей — на их основе предложили несколько интересных функций и возможностей сайта :)
Чтобы понять специфику аудитории, мы подробно пробрифовали десяток специалистов со стороны заказчика. Среди них каждый — эксперт в своем сегменте рынка. Мы развернули пользовательские сценарии и получили несколько портретов пользователей — на их основе предложили несколько интересных функций и возможностей сайта :)
Просьба заказчика к дизайну была сформулирована четко: сайт должен быть современным, стильным, но в выдержанном и достаточно строгом стиле. Сделано!
Мы предусмотрели два варианта детальной страницы объекта — для обычных квартир и жилых комплексов и для элитного жилья. Страница обычных объектов недвижимости — это карточка товара с подробной информацией. Для элитного объекта, эксклюзивного предложения — целая лендинговая страница!
И чтобы заказчик сам мог собирать крутые лендинговые страницы для новых элитных объектов, мы реализовали простой конструктор для их создания.
Для страниц «Инвестиции» и «Ипотека» мы тоже сделали посадочные страницы. Аудитории этих страниц отличаются от основной аудитории сайта. И с посадочными страницами легче рекламировать предложения.
Информация по объектам недвижимости передается на сайт из CRM заказчика. Система YUcrm предназначена для сферы купли-продажи недвижимости. Из нее мы получаем по API базу объектов разных типов, со своим набором свойств для каждого, и выводим на сайте.
И чтобы заказчик сам мог собирать крутые лендинговые страницы для новых элитных объектов, мы реализовали простой конструктор для их создания.
Для страниц «Инвестиции» и «Ипотека» мы тоже сделали посадочные страницы. Аудитории этих страниц отличаются от основной аудитории сайта. И с посадочными страницами легче рекламировать предложения.
Информация по объектам недвижимости передается на сайт из CRM заказчика. Система YUcrm предназначена для сферы купли-продажи недвижимости. Из нее мы получаем по API базу объектов разных типов, со своим набором свойств для каждого, и выводим на сайте.
Евгений
разработчик
Импорт, который мы реализовали, полностью нештатный — это не привычный всем XML-файл, алгоритмы импорта писали с нуля.
Заказчик предоставил все инструкции к импорту: документацию и песочницу (специально выделенная среда для безопасного хранения и исполнения запросов). В инструкции есть несколько методов для импорта данных. Основные данные — это справочники и объекты. Справочники содержат информацию об объектах (например, тип санузла). Какие свойства объектов выводятся на сайте, мы договорились заранее.
Красота в том, что справочники структурно одинаковы (содержат идентификатор и значение), хоть и несут разную информацию. Это хорошо тем, что, написав один раз алгоритм импорта такого справочника, затем можно импортировать абсолютно любой справочник из CRM на сайт. Для объектов это работает так же.
Заказчик предоставил все инструкции к импорту: документацию и песочницу (специально выделенная среда для безопасного хранения и исполнения запросов). В инструкции есть несколько методов для импорта данных. Основные данные — это справочники и объекты. Справочники содержат информацию об объектах (например, тип санузла). Какие свойства объектов выводятся на сайте, мы договорились заранее.
Красота в том, что справочники структурно одинаковы (содержат идентификатор и значение), хоть и несут разную информацию. Это хорошо тем, что, написав один раз алгоритм импорта такого справочника, затем можно импортировать абсолютно любой справочник из CRM на сайт. Для объектов это работает так же.
Когда начали интегрировать сайт с CRM, оказалось, что в ней недостает большого количества данных для вывода на сайт. Выхода два: либо донастроить CRM, либо вручную через административную панель сайта заполнить недостающие данные. А объектов тысячи :)
Решили дорабатывать CRM. Это делали технические специалисты со стороны заказчика: мы давали требования по доработке CRM, а они оперативно их вносили. Вышло даже быстрее, чем мы думали!
Для фильтра в списке объектов мы реализовали интересную фишку: при фильтрации объектов в определенной категории, например, «Квартиры», при выборе района меняется фоновое изображение — это реальное фото этого района. Так и влюбиться можно ненароком :)
Решили дорабатывать CRM. Это делали технические специалисты со стороны заказчика: мы давали требования по доработке CRM, а они оперативно их вносили. Вышло даже быстрее, чем мы думали!
Для фильтра в списке объектов мы реализовали интересную фишку: при фильтрации объектов в определенной категории, например, «Квартиры», при выборе района меняется фоновое изображение — это реальное фото этого района. Так и влюбиться можно ненароком :)
В CRM заказчика агент (так называемый брокер) закреплен за объектом недвижимости. Если стоимость жилья исчисляется десятками миллионов рублей, авторитет брокера — одно из первых, на что покупатели обращают внимание. Поэтому на детальной странице объекта мы также сделали привязку объект-брокер — эта информация автоматически подгружается из CRM и выводится на сайте.
Расположение объектов недвижимости и подробную информацию о них можно посмотреть не только в каталоге, но и на карте (сайт интегрирован с Яндекс.Картами). Но не все так просто. Помните, что объектов несколько тысяч? :)
При стандартной реализации, как только открывалась карта, Яндекс.Карты пытались подгрузить тысячи объектов из каталога и их данные, браузер не выдерживал такой нагрузки и отказывался работать. Мы переосмыслили подход: теперь, когда вы открываете карту, сайт получает информацию о местоположении всех объектов из каталога, учитывая выбранные параметры в фильтре (!). А затем, когда вы нажимаете на пин определенного объекта, сайт подгружает информацию только для этого объекта.
При стандартной реализации, как только открывалась карта, Яндекс.Карты пытались подгрузить тысячи объектов из каталога и их данные, браузер не выдерживал такой нагрузки и отказывался работать. Мы переосмыслили подход: теперь, когда вы открываете карту, сайт получает информацию о местоположении всех объектов из каталога, учитывая выбранные параметры в фильтре (!). А затем, когда вы нажимаете на пин определенного объекта, сайт подгружает информацию только для этого объекта.
Если, например, в одном и том же доме несколько квартир в продаже, то объекты имеют одни и те же координаты. Поэтому мы сделали вывод нескольких карточек в одном всплывающем окне, доработав яндексовый балун-кластер и сверстали сами карточки под общую дизайн-концепцию проекта.
Евгений
Разработчик
Итак, мы сделали интеграцию с CRM, все работает. В один момент мы с заказчиком понимаем, что объекты и их свойства, которые содержатся в CRM, неактуальны. Но зато актуальны те, что на старом сайте. Вот и новая задача: данные по объектам со старого сайта перенести на новый. Свойства одни и те же, но у них разный вид — просто так они никуда не перенесутся.
Я написал конвертер. Для этого перебрал в ручную свойства из инфоблока старого старого сайта, он тоже реализован на Битрикс, и для каждого типа свойства написал алгоритм, который преобразовывал их в нужный нам вид.
На тестовом сервере заработало. На боевом — нет :) На нем стоят самые свежие версии Битрикса и базы данных, которые между собой отказываются работать.
Окей, решаем вопрос по-другому. В арсенале «чистой сборки» у нас есть модуль «Миграции» с функцией переноса данных из инфоблоков. Инфоблоки содержат свойства, которые нам нужно вывести на сайт. Берем инфоблоки с тестового сервера и переносим их на боевой. Теперь на сайте есть все, что нужно, кроме цен. Модуль «Миграция» не умеет их импортировать. Ручное заполнение исключается — объектов тысячи. Цены мы перенесли уже из локальной базы данных: собрали всю базу в один файл и перенесли на боевой. Так на сайт мы вывели все, что нам нужно.
Это временное решение. Когда заказчик заполнит CRM нужными данными, импорт продолжит работать. Также на перспективу мы сделали еще один удобный функционал. Данные некоторых объектов обновляются в CRM реже других. Чтобы не нагружать сайт ежедневными импортами, у определенных объектов уже настроено расписание обновлений, а при необходимости импорт можно запустить вручную.
Я написал конвертер. Для этого перебрал в ручную свойства из инфоблока старого старого сайта, он тоже реализован на Битрикс, и для каждого типа свойства написал алгоритм, который преобразовывал их в нужный нам вид.
На тестовом сервере заработало. На боевом — нет :) На нем стоят самые свежие версии Битрикса и базы данных, которые между собой отказываются работать.
Окей, решаем вопрос по-другому. В арсенале «чистой сборки» у нас есть модуль «Миграции» с функцией переноса данных из инфоблоков. Инфоблоки содержат свойства, которые нам нужно вывести на сайт. Берем инфоблоки с тестового сервера и переносим их на боевой. Теперь на сайте есть все, что нужно, кроме цен. Модуль «Миграция» не умеет их импортировать. Ручное заполнение исключается — объектов тысячи. Цены мы перенесли уже из локальной базы данных: собрали всю базу в один файл и перенесли на боевой. Так на сайт мы вывели все, что нам нужно.
Это временное решение. Когда заказчик заполнит CRM нужными данными, импорт продолжит работать. Также на перспективу мы сделали еще один удобный функционал. Данные некоторых объектов обновляются в CRM реже других. Чтобы не нагружать сайт ежедневными импортами, у определенных объектов уже настроено расписание обновлений, а при необходимости импорт можно запустить вручную.
Антон
Менеджер проекта
Есть проекты, которые мы делаем на одном дыхании. Вот это именно такая история!
Отдельный кайф — звонки для демонстрации работы заказчику и дальнейшее согласование. Мы находили общий язык так быстро, что каждый звонок заканчивался фразой «Антон, все хорошо, прямо сейчас начинайте следующий этап» :) И мы начинали.
Проект завершили на несколько недель раньше дедлайна. Большое спасибо за это Александру, который идеально исполнял роль Product Owner'а: устранял все преграды и обеспечивал нас всем необходимым для непрерывной работы.
Отдельный кайф — звонки для демонстрации работы заказчику и дальнейшее согласование. Мы находили общий язык так быстро, что каждый звонок заканчивался фразой «Антон, все хорошо, прямо сейчас начинайте следующий этап» :) И мы начинали.
Проект завершили на несколько недель раньше дедлайна. Большое спасибо за это Александру, который идеально исполнял роль Product Owner'а: устранял все преграды и обеспечивал нас всем необходимым для непрерывной работы.