Что умеет решение
Модуль сохраняет историю изменения цен товаров и торговых предложений, отображая динамику в виде графиков в карточке товара административной панели Bitrix. Публичные компоненты отсутствуют.
Настройки доступны по пути: Настройки → Настройки продукта → Настройки модулей → Трекер истории цен (или через меню: Настройки → История цен → Настройки).
Глобальное включение модуля: при отключении триггеры базы данных снимаются, запись истории прекращается, а соответствующая вкладка скрывается из карточки товара.
Срок хранения истории: период хранения записей в базе данных составляет от 30 до 3650 дней. Удаление устаревших записей выполняется через сервис очистки.
Статус триггеров базы данных: информационное поле для мониторинга текущего состояния.
Типы цен для отслеживания: список всех типов цен каталога с возможностью выбора. На графике и в истории фиксируются только отмеченные типы. Список синхронизируется с базой данных для корректной работы триггеров.
Режимы работы триггеров:
- Триггеры MySQL: фиксируются любые изменения в таблице цен, включая действия в административной панели, обмен данными и прямые SQL-запросы при наличии соответствующих прав.
- Режим событий: запись данных происходит через события изменения каталога (админка и API каталога). Прямой SQL-обмен в этом режиме может не попадать в историю.
- Выключены: модуль отключен глобально или не выбраны типы цен для отслеживания.
Модуль отслеживания истории цен EcomLabs обновляет таблицу базы данных после сохранения настроек. Система автоматически выбирает между режимом триггеров и режимом событий. Если у пользователя отсутствует право CREATE TRIGGER или включён бинарный лог без параметра log_bin_trust_function_creators, активируется режим событий.
Интерфейс модуля построен вокруг настроек и вкладок в карточках товаров. В разделе настроек доступны переключатели включения и выключения, параметры срока хранения, выбор типов цен и индикатор статуса режима записи. Путь в меню административной панели: Настройки → История цен → Настройки. Отдельных пунктов для отчётов или списков в админке не предусмотрено.
В карточке товара (элемент информационной базы или каталога) открывается вкладка «История цен», отображающая графики для каждого отслеживаемого типа цены. Для торгового предложения (SKU) используется та же вкладка, где фиксируется история цен конкретного предложения (PRODUCT_ID соответствует ID предложения). В карточке товара с несколькими торговыми предложениями отображается список с возможностью выбора через галочки. Доступны кнопки «Выбрать все» и «Показать графики». По умолчанию отображается до пяти предложений. Каждое предложение имеет отдельный график, где название торгового предложения сопоставлено с типом цены.
Режим триггеров работает только при наличии права CREATE TRIGGER в MySQL. В этом случае создаются триггеры AFTER INSERT и AFTER UPDATE для таблицы b_catalog_price. Запись в таблицу b_ecl_price_history выполняется только в том случае, если CATALOG_GROUP_ID присутствует в таблице b_ecl_price_history_watch.
Запись в историю обновляется только при фактическом изменении цены, валюты или типа цены.
В режиме событий (резервный вариант) обработчики OnPriceAdd и OnPriceUpdate вызывают метод HistoryService::recordIfChanged(), что исключает создание дубликатов при одинаковых значениях цены.
Отображение
При открытии товара и соответствующей вкладки загружается набор точек графика. Если история пуста, в качестве начальной точки может быть записана текущая цена. График строится только в момент активации вкладки, а не в скрытом состоянии. Ширина контейнера зафиксирована, чтобы библиотека AmCharts не искажала макет страницы.
Внедрение «Трекер истории цен (EcomLabs)» можно поручить General iT — от установки до настройки и проверки совместимости с сайтом.