Модуль интеграции с 1С-Битрикс
Удобный способ настроить постоянный обмен между базой данных EKF и сайтом интернет-магазина, работающим на системе «1С-Битрикс: Управление сайтом». С помощью него вы можете настроить автоматическое обновление номенклатуры и всех атрибутов, а также обновление остатков на складах EKF. Ниже размещена инструкция для работы с модулем.
Установка, настройка и запуск модуля
Скопировать модуль в папку /bitrix/modules/
Зайти в меню Marketplace – Установленные решения (/bitrix/admin/partner_modules.php?lang=ru) и установить решение «Обмен с ekfgroup.com (ekf.exchange)»
Зайти в настройки модуля: Настройки – Настройки модулей – Обмен с ekfgroup.com (/bitrix/admin/settings.php?lang=ru&mid=ekf.exchange&mid_menu=1)
Запуск обмена осуществляется на странице Сервисы – Обмен EKFGroup (/bitrix/admin/ekf_exchange.php)
Рекомендуемым способом запуска обмена является запуск через консоль скриптов в папке bitrix/modules/ekf.exchange/admin/exchange/products.php
Запуск через интерфейс, возможно, не сможет выполниться, это зависит от настроек вашего сервера.
Минимальная версия PHP, необходимая для работы модуля, – 7.1.
Общая схема работы модуля
Из API отдельно получаем:
- Разделы – categories.php
- Товары – products.php
- Значения свойств – products.php
- Остатки – remains.php
- Цены – prices.php
- Изображения – files.php
- Полный обмен – full.php
Для обмена каждым типом данных создан отдельный скрипт в директории bitrix/modules/ekf.exchange/admin/exchange/
При этом в обмене товарами в понимании битрикс содержится информация из нескольких сущностей:
- Элемент инфоблока (название, внешний код и т. д.)
- Элемент каталога (размеры, вес)
- Несколько свойств (серия, кратность и т. д.)
В начале каждого обмена запускается файндер – объект, который делает выборку данных из БД, сохраняет информацию в массив и затем позволяет без выполнения отдельного запроса на каждый товар сверить данные сайта и API и понять, нужно ли обновлять данные.
Существует несколько разных фандеров: ProductRemainsFinder для остатков, ProductsFinder для элементов инфоблока итд.
Для того, чтобы понять, изменилась ли картинка товара, достаточно посмотреть на ее название из API. Название картинки является хэшем содержимого. Поменялось содержимое – поменялось и название.
Для того, чтобы понять, изменилась ли информация об элементе инфоблока и его свойствах, рассчитывается хэш (чтобы не делать тяжелую выборку всех товаров и не помещать их в массив) и записывается в свойство инфоблока (соозданное при установке модуля). EKF_HASH – хэш основной информации, EKF_HASH_F – хэш файлов, EKF_HASH_P – хеш свойств. При изменении разделов и товаров через API необходимо сбрасывать их хэш (см. bitrix/modules/ekf.exchange/lib/handler/).
Также для элементов инфоблока создается свойство EKF_UPDATED, чтобы после обмена мы могли понять, какие товары пропали из обмена и деактивировать либо удалить их.
Для документации по событиям см. bitrix/modules/ekf.exchange/lib/functions/events.php
Модификации в код модуля вносить запрещено, т. к. это не позволит получать обновления. Если нужен какой-то функционал, пишите в техподдержку, мы добавим события в нужное вам место в код модуля.