Просмотров: 116
Инструкция по работе с модулем "Интеграция с CRM INTRUM Realty"
Наш модуль позволяет выгружать информацию об объектах из CRM INTRUM Realty для отображения в каталоге сайта. В инструкции описана настройка и выгрузка объектов из CRM.
Настройка модуля
Вкладка «Настройки» отвечает за саму интеграцию. Там будет необходимо ввести сервер(обычно адрес CRM) Если не задан, используется localhost по умолчанию и ключ API. Пример на скриншоте ниже.
Api key и название сервера можно получить в вашей CRM Intrum для этого перейдите
Настройки > Интеграции > API V2 и создайте новый ключ.
Создание выгрузки
Для настройки выгрузки переходим Настройки -> Настройки продукта -> Настройка модулей -> Интеграция с CRM INTRUM Realty.
В вкладке «Добавить» мы можем добавить новую выгрузку, в пункте «Что выгружать» выбираем желаемые объекты, для примера мы возьмём «Квартиры и участки».
И создадим новый инфоблок нажимаем кнопку «Далее».
Выбираем желаемую категорию для выгрузки и снова нажимаем «Далее»
Здесь, мы можем выбрать различные параметры, если вам необходим, например «Размер комиссии для агента» выбираем «Создать новый» и нажимаем кнопку «Далее»
Перейдем во вкладку «Выгрузка»
Для того, чтобы произвести выгрузку нажимаем «Выгрузить сейчас» открывается окно загрузки.
Не закрываем его, пока импорт не завершится. Затем проверяем изменения на сайте в элементах инфоблока. Проверить это можно, если зайти в Контент -> INTRUM Realty -> Квартиры и комнаты.
Создание выгрузки по CRON
Обновление 1.0.1
Для того, чтобы создать выгрузку для CRON, необходимо при создании новой выгрузки поставить галочку «Выгружать по CRON».
Также можно отредактировать существующую выгрузку для работы с CRON.
После этого к названию выгрузки добавится «[CRON]».
ВАЖНО! Для того, чтобы выгрузка по CRON работала необходимо в Панели управления добавить задачу. Пример для ISPManager:
Опция «Проверять только наличие».
Обновление 1.0.1
Теперь при создании новой выгрузки, когда выбран существующий инфоблок, появляется поле «Проверять только наличие». Суть в том, чтобы не добавлять новые и не изменять существующие записи, а лишь проверять есть ли они в CRM, и если нету, то удалить. Для использования этой опции нужно создать отдельное правило
Также можно отредактировать существующую выгрузку. После активации этой галочки, рядом с названием выгрузки появится текст «(проверять только наличие)».
Фильтр элементов
Импортируемые элементы можно фильтровать по необходимым полям. Например, выгружать только комнаты. Или создать дополнительное поле в CRM “выгружать на сайт” и выгружать в каталог только нужные объекты.
Фильтр активируется при редактировании выгрузки. Нужно выбрать какое поле будет фильтроваться и какое значение должно быть у элементов, чтобы они добавились на сайт.
Список обновлений
Обновление 1.0.1
Описание:
-
Добавлена возможность делать выгрузку по CRON.
-
Добавлен функционал "Проверять только наличие". Новые товары не загружаются, но те, которые удалены в CRM, удаляются на сайте.
-
Теперь импортируются все изображения в одном поле.
Если у вас в CRM есть поле с изображениями, то они импортируются все (точнее ссылки на них).
И эти данные будут записаны в виде «[“путь к изображению 1”, “путь к изображению 2”]».
Такую структуру удобно использовать, преобразовав ее в массив с помощью функции json_decode.
Ошибки при работе модуля
1. “Импорт прерван. Ошибка” при импорте данных.
Выгрузилось только часть элементов из Intrum
Ошибка могла произойти по 2 причинам:
-
был превышен лимит запросов к Intrum. Решение: выгрузку можно производить не чаще одного раза в час, чтобы не вылетела ошибка лимита
-
упал сайт из-за большой нагрузки. Решение: Можно уменьшить количество элементов за шаг и увеличить ожидание между шагами, чтобы снизить нагрузку либо сменить хостинг.
Для снижения количества импортируемых за раз объектов необходимо:
-
открыть файл /bitrix/modules/creativebz.intrumrealty/include.php
-
Найти в нем примерно на строчке 633 параметр limit и установить в значение меньшее, чем 100, например 50
Для добавления таймаута во время ручного запуска импорта:
-
Необходимо открыть файл /bitrix/modules/creativebz.intrumrealty/import.php
-
Добавить в него функцию:
function sleep(milliseconds) {
const date = Date.now();
let currentDate = null;
do {
currentDate = Date.now();
} while (currentDate - date < milliseconds);
}
-
Вставить ее на строчку 36, а на строку 49 добавить строку sleep(2000);
-
Если нужен таймаут более 2 секунд, то можно указать например 5000, что будет равно 5 секундам
Для добавления таймаута в выгрузки по крону:
-
необходимо в файле /bitrix/modules/creativebz.intrumrealty/include.php добавить строку sleep(2); на строку 936, что означает 2 секундный таймаут
-
если нужно увеличить, то можно написать, например, sleep(5); - что будет равно 5 секундам
2. Исчезают конфиги выгрузки.
Решение. Такая проблема встречается старых версиях Битрикса: у них есть ограничение на длину строки, которую можно хранить в настройках, и, если полей в конфиге очень много, то строка при сохранении обрезается. В итоге это приводит к тому, что конфиг ломается и вообще не отображается. Чтобы проверить работу переделайте хранение конфига на сохранение в файл и проблемы с пропажей конфига не будет.




