Реклама
Перетяжка // Коробка 3.0

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости

Рассказываем, как настроить интеграцию Google Sheets и сайта на Битрикс, чтобы данные из таблицы выгружались на сайт.

Обложка: Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости

К нам обратился клиент с интересной задачей: разработать портал, показывающий инновационный подход к продаже, покупке, строительству и благоустройству загородного жилья.

Гипермаркет загородной жизни «Новый дом» состоит из двух частей. Первая часть посвящена покупке загородной недвижимости. Вторая — продаже услуги строительства домов по готовым проектам.

Остановимся на первой части. На сайте можно купить участки, коттеджи, таунхаусы, дуплексы. Продавцами являются компании-застройщики.

Клиенту было важно автоматизировать работу с продавцами недвижимости и загрузку объектов на сайт.

Схема автоматизации

Данные по объектам вносятся продавцами в Google-форму. Далее информация об объекте недвижимости складывается в таблицу с функцией редактирования. Менеджеры агентства недвижимости проверяют, дополняют информацию об объекте и разрешают его выгрузку на сайт.

У клиента есть несколько категорий объектов: поселки; участки; дома, таунхаусы, дуплексы. Каждая вкладка — это набор объектов определенной категории со своими параметрами. Символом * клиент отмечает в таблице поля, которые необходимо вывести на сайт. Поля без этого символа используются для внутренних нужд и на сайт не выгружаются.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_7
На примере представлена категория объектов «Участки в поселках FEED»

Объекты из каждой категории перемещаются в соответствующие категории на сайте.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_9

После отметки «Да» в столбце «Поселок проверен и готов к размещению» парсер заберет объект и выгрузит на сайт.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_11

Каждую ночь парсер забирает данные из Google Таблиц и загружает на сайт.

После продажи объекта, в Google Таблицах менеджер обновляет статус на «Продан». Потом парсер обновляет данные в справочнике сайта, и объект остается на сайте со статусом «Продан» и не выводится в доступных для покупки.

Как работает парсер

Парсер позволяет работать с Google Таблицами посредством их API.

Через него происходит прием данных из Google Таблиц на сторону Битрикс.

Для выгрузки данных из Google Таблиц через функционал «именованные диапазоны» столбцам мы назначили уникальные символьные коды, определяющие их категорию (поселки, участки, дома/таунхаусы/дуплексы) и свойство.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_18
Выгрузка данных из Google Таблиц через функционал «именованные диапазоны»

Далее через скрипт получили столбцы, у которых существуют «именованные диапазоны» и провели их обработку.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_20

Каждое значение ячейки столбца идет в аналогичное его коду в «именованном диапазоне» свойство на сайте.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_22

Например, столбец с кодом именованного диапазона WATERPOOL подтягивается в свойство WATERPOOL («Бассейн») на сайте.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_24

Еще одна особенность — возможность загрузки фотографий через Google Таблицы. Для этого код в «именованном диапазоне» должен быть вида «PHOTO_#КОД_СВОЙСТВА#», а само значение ячейки — ссылкой на Google Диск.

На этом уровне мы использовали API Google Диска для получения загруженных на Google Диск фотографий.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_27
Код, показывающий использование API Google Диска для получения загруженных на Google Диск фотографий

Как хранятся данные на стороне «1С-Битрикс»

1. Разделы в каталоге — это поселки, которые идут из отдельной категории «Поселки» таблицы Google Docs.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_30

2. Все элементы — это внутреннее наполнение поселков: участки, коттеджи, дома, таунхаусы. Получается, каждый элемент принадлежит какому-либо поселку.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_32

3. Свойства элементов и объектов — это столбцы из таблицы Google Docs.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_34

Для поиска по объектам используется модуль elasticsearch. Запросы к нему идут через внешнюю оболочку, предназначенную для работы с «1С-Битрикс».

Хранение данных elasticsearch происходит в специальной карте индекса для инфоблока каталога.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_38

После выполнения парсинга сырые данные элементов через метод $indexer->put попадают в наш индекс.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_40

Соответственно, для дальнейшей фильтрации по данному индексу, вместо стандартных запросов «1С-Битрикс» по API «1С-Битрикс», также необходимо пользоваться конструкцией $indexer->search со своими параметрами.

Интеграция «1С-Битрикс» с Google Sheets на примере сайта агрегатора недвижимости_42

Разработанный функционал позволяет клиенту экономить время менеджеров, исключить ошибки при переносе данных и заниматься более творческими и сложными задачами.

Если есть вопросы, пишите в комментариях.

Рекомендуем