Модуль интеграции с 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

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