GetResponse

Подписки, контакты по заказам и синхронизация каталога с GetResponse
Автор дополнения
Артур Шевченко
Пакетов
31
Закачек
3 488
Обычно отвечает в течение суток
Автор дополнения
Пакетов
31
Закачек
3 488
Обычно отвечает в течение суток
Версия 1.0.4-pl
Дата выпуска 05.08.2026
Загрузки 0
Просмотры 112
Внимание, этот компонент несовместим с MODX 3.
Что делает
  • Собирает подписчиков с любых форм сайта и отправляет их в выбранный список GetResponse через очередь — посетитель не ждёт ответа стороннего API.
  • Заводит контакт по каждому оформленному заказу: покупатель попадает в рассылку автоматически, вместе с данными заказа.
  • Синхронизирует товары и категории магазина с GetResponse Shop, чтобы в письмах работали товарные рекомендации и брошенные корзины на стороне сервиса.
Как устроено
  • Обмен идёт через встроенный менеджер очередей MODX: сбои связи не роняют оформление заказа, задания повторяются.
  • Экспорт товаров и загрузка заказов — отдельные консольные команды, их удобно ставить в cron.
  • Синхронизация магазина отключается одной настройкой — если нужны только подписки, лишние запросы не уходят.
Требования
  • MODX Revolution 2.5+, PHP 7.4+
  • miniShop2 и pdoTools
  • Аккаунт GetResponse с доступом к API

1.0.4-pl

  • FEATURE: лимит попыток переотправки сообщений очереди (настройка gr_queue_max_attempts, по умолчанию 5). Неотправляемое сообщение (например, email на несуществующем домене, который GetResponse отклоняет) больше не циклится вечно: после исчерпания попыток выбрасывается из очереди с error-записью в лог (для контактов — с email и campaignName, для заказов — с orderId и ctx; тэг queue).
  • FIX: убран отладочный $modx->log(1, print_r($messages)) из load-contacts — сыпал содержимое очереди в MODX error.log на уровне ERROR при каждом непустом прогоне.

1.0.3-pl

  • FEATURE: Contacts::manageContact — итоговая запись о судьбе подписчика в лог (info «Contact synced to GetResponse» / error «Contact sync to GetResponse failed» с email, campaignName, grId; тэг contact). Замена Telegram-уведомлений старого сайта.
  • FIX: уровни существующих записей Contacts: «User not found» → warning, ошибка API в getContactGRId → error (раньше писались с уровнем info по умолчанию и терялись при gr_log_level=error).

1.0.2-pl

  • Логирование переведено с файлов (services/logs/*.txt) на mxLogger. Класс Logging делегирует записи сервису mxLogger (если установлен), иначе молчит и один раз предупреждает в журнале MODX. Перевод затронул Shop, Request, QueueManager (через Base).
  • Новые гейты: gr_debug (вкл/выкл) + gr_log_level (минимальный уровень debug|info| warning|error, по умолчанию error; единый приёмник mxLogger, включено из коробки). Раньше gr_debug не было — логирование шло всегда. Консистентно с mxLogger.min_level.
  • Тэги: базовые getresponse + crm, этапные category / product / order / cart / api / http / queue. Воронка processuid = «getresponse»+md5(тип:id) на manageCategory/ manageProduct/manageOrder/manageCart.
  • Сигнатура Logging::write сохранена (позиционные method/msg/data), добавлены $level и $tags. Уровни: «не найдено»/ответы API — warning; «Error export order» и «Method not found on ApiClient» — error; CURL — debug.
  • Request получил параметр $modx (нужен для mxLogger), ApiClient передаёт его.
  • ВНИМАНИЕ: перед сборкой настройки gr_debug и gr_log_level создать в менеджере (namespace getresponse) — сборка тянет настройки из БД стенда.

1.0.1-pl

  • Добавил в системные события grOnBeforeGetContactGRId и grOnGetContactGRId параметры user, profile, campaignName.

1.0.0-pl

  • Добавил системные события grOnBeforeGetContactGRId, grOnBeforeManageOrder, grOnGetOrderData.

1.0.0-rc1

  • Добавил проверку shopId в ApiClient.

1.0.0-rc

  • Добавил системное событие grOnGetContactGRId.

1.0.0-beta

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

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