eCommSender

Компонент для отправки данных в сервисы электронной коммерции.
Автор дополнения
Артур Шевченко
Пакетов
15
Закачек
3 319
Обычно отвечает в течение суток
Автор дополнения
Пакетов
15
Закачек
3 319
Обычно отвечает в течение суток
Версия 1.0.4-rc
Дата выпуска 16.06.2026
Загрузки 1
Просмотры 1 591
Внимание, этот компонент несовместим с MODX 3.
Зависимости:
1. UniversalEventBus

Как пользоваться:
1. Создать копию файла core/components/ecommsender/services/config.inc.php и изменить параметры
* templateIds — содержит массив id шаблонов ключевых страниц (корзина, форма заказа, страница благодарности)
* chunks — содержит массив шаблонов структуры данных для различных событий
* payedStatuses — содержит массив, где ключами являются id способов оплаты, а значениями — id статусов
* paymentKeyParams — содержит массив, где ключами являются id способов оплаты, а значениями — параметр в ссылке на оплату содержащий ключ оплаты
* counterId — id счетчика метрики (актуально только при использовании Яндекс метрики).
* measurementProtocolToken — токен для передачи события purchase в случае невозврата пользователя на сайт
после оплаты (актуально только при использовании Яндекс метрики).

2. Указать путь к вашему файлу конфигурации в системных настройках.
3. Установить код метрики на сайт.

После этого будут доступны следующие события:
* click
* detail
* add
* remove
* view_cart
* initiate_checkout
* order_created
* dl_purchase
* purchase

!!! ВАЖНО!!! События dl_purchase и purchase являются взаимоисключающими,
т.е. если было отправлено одно из них, второе отправлено не будет.

Для отслеживания событий просмотра списка товаров (impressions) необходимо каждому списку добавить следующие атрибуты:
* data-ecs-list
* data-ueb-event=«show»
* data-ueb-once=«1»

Для отслеживания просмотра миникорзины, если она у вас сделана в модальном окне, нужно добавить следующие атрибуты:
* data-ueb-event=«open»
* data-ueb-params=«eventName:ecsViewMiniCart»
И добавить в системные настройки селектор открытой миникорзины.

Для отслеживания открытия окна быстрого заказа нужно добавить следующие атрибуты:
* data-ueb-event=«open»
* data-ueb-params=«eventName:ecsFastOrderWithCart»
И добавить в системные настройки селектор открытого окна быстрого заказа.

Чтобы не отправлять данные о каких-либо событиях, можно просто оставить пустым имя чанка в конфигурации.
Чтобы не отслеживать события, нужно отключить привязку к системным событиям в настройках плагина ecsEventWatcher.
Для отмены отслеживания кликов, оставьте пустым системную настройку с селектором ссылок.

Системные события:
1. OnGetEcsWebConfig — можно добавить свои параметры в веб-конфиг
$object->webConfig['paramName'] = 'paramValue';
2. OnGetEcsHandleEvent — для обработки кастомных событий, можно вернуть массив с данными для добавления в dataLayer
$object->output = ['eventName' => 'eventName', 'eventData' => 'eventData'];

Для внесения изменений в имеющиеся события (click, detail и т.д.) корректируйте содержимое чанков, предварительно скопировав их.

1.0.4-rc

  • Логирование переведено с файлов (assets/logs/*.txt) на mxLogger. Logger делегирует записи сервису mxLogger (если установлен), иначе молчит и один раз предупреждает в журнале MODX. Перевод затронул eCommSender и Request.
  • Гейты: ecs_debug (вкл/выкл) + новая настройка ecs_log_level (минимальный уровень debug|info|warning|error, по умолчанию error; единый приёмник mxLogger, включено из коробки). Консистентно с mxLogger.min_level.
  • Тэги: базовые ecommsender + analytics, этапные event (dataLayer-событие), protocol (отправка в measurement protocol), http (CURL). Воронка processuid = «ecommsender»+md5(session_id).
  • Сигнатура Logger::write сохранена (позиционные method/msg/data), добавлены $level и $tags. Уровни: отправка событий — info, CURL-детали — debug (ошибка CURL — warning).
  • Настройка ecs_log_path больше не используется (файлового лога нет) — оставлена для обратной совместимости.
  • ВНИМАНИЕ: перед сборкой настройку ecs_log_level создать в менеджере (namespace ecommsender) — сборка тянет настройки из БД стенда.

1.0.3-rc

  • Добавил селектор формы заказа.

1.0.2-rc

  • Добавил проверку на массив в hashUserData() перед перебором hashedKeys.
  • Исправил получение списка событий measurementProtocol для избежания ошибки при пустом значении.

1.0.1-rc

  • Убрал из clickHandler() e.preventDefault().

1.0.0-rc

  • Добавил возможность указывать несколько статусов для оплаченных заказов.
  • Добавил возможность отключить переопределение submit miniShop2.
  • Добавил событие OnSendEventByMeasurementProtocol
  • Добавил возможность отправлять события в GTM с сервера по Measurment Protocol
  • Перенёс список данных пользователя для хэширования в конфигурацию

1.0.0-beta9

  • Мелкие правки.
  • Добавил явную передачу контекста в плагин-наблюдатель за событиями.

1.0.0-beta7

  • Добавил очистку localstorage при отмене редиректа.
  • Добавил проверку на ajax при событии ecsOnLoadWebDocument.
  • Добавил событие page_view при просмотре НЕтовара.
  • Добавил редирект даже если событие order_created не отслеживается
  • Добавил опциональную цепочку при доступе к e.detail?.data?.pushed

1.0.0-beta6

  • Переместил создание экземпляра класса eCommSender из обработчика события DOMContentLoaded.

1.0.0-beta5

  • Сделал вызов редиректа постоянным.

1.0.0-beta4

  • Поменял имя события для обработки данных возвращаемых из события.
  • Поменял порядок формирования данных в плагине подготовки ответа.

1.0.0-beta3

  • Добавил проверку наличия файла конфигураци.
  • Добавил события JS 'ecommsender:click' и 'ecommsender:getlistdata'
  • Уточнил данные зааписываемые в localstorage responseOrder

1.0.0-beta2

  • Добавил в конфигурацию параметр clientIdKey для передачи ключа клиента.
  • Добавил в конфигурацию параметр savedCookiesOnCreatingOrder для передачи ключей кук которые необходимо записать в свойства заказа.

1.0.0-beta

  • Первая сборка.

Последние обсуждения в сообществе MODX.pro