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

XakeR

Member
Регистрация
13.05.2006
Сообщения
1 912
Реакции
0
Баллы
16
Местоположение
Ukraine
К нам обратился клиент с интересной задачей: разработать портал, показывающий инновационный подход к продаже, покупке, строительству и благоустройству загородного жилья.

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

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

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

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


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

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

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


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

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

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


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

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


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

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

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


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

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

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

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


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

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

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


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

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


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

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


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

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

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


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

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


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

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


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

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


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

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


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


GitHub — sheerockoff/bitrix-elastic-indexer: Индексация инфоблоков Bitrix в Elasticsearch. github.com


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

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


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

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


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

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


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

Если есть вопросы, пишите в комментариях.
 
198 114Темы
635 085Сообщения
3 618 401Пользователи
EeOneНовый пользователь
Верх