Главное Авторские колонки Вакансии Образование
508 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

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

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

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

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

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

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

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

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

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

На примере представлена категория объектов «Участки в поселках FEED»

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

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

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

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

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

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

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

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

Выгрузка данных из Google Таблиц через функционал «именованные диапазоны»

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

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

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

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

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

Код, показывающий использование API Google Диска для получения загруженных на Google Диск фотографий

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

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

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

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

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

https://github.com/sheerockoff/bitrix-elastic-indexer

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

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

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

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

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

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем