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

Аватарка пользователя Веб-студия INDEXIS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Инструменты
1C-Bitrix
447