msKlarna

Оплата частями через Klarna Payments для miniShop2
Автор дополнения
Артур Шевченко
Пакетов
31
Закачек
3 502
Обычно отвечает в течение суток
Автор дополнения
Пакетов
31
Закачек
3 502
Обычно отвечает в течение суток
Версия 1.0.16-rc
Дата выпуска 05.08.2026
Загрузки 0
Просмотры 138
Внимание, этот компонент несовместим с MODX 3.
Что делает
  • Добавляет в оформление заказа оплату Klarna Payments — «купи сейчас, плати потом» и оплату частями.
  • Сессия оплаты создаётся из состава заказа miniShop2: позиции, доставка, налоги передаются как есть.
  • Итог оплаты подтверждается на стороне Klarna, статус заказа обновляется автоматически.
Особенности
  • Эндпоинты API вынесены в системные настройки и читаются для каждого контекста отдельно — в мультиязычном магазине разные регионы Klarna настраиваются независимо.
  • Переключатель тестового режима отправляет запросы в playground, не трогая боевые ключи.
  • Лексиконы переведены на 16 языков.
  • Полное логирование: в отладочный лог пишется payload запроса и использованный адрес API.
Требования
  • MODX Revolution 2.5+, PHP 7.4+
  • miniShop2
  • Merchant-аккаунт Klarna

1.0.16-rc

  • FIX: из debug-лога создания сессии убраны учётные данные Klarna (username и password API). В 1.0.15-rc они писались в лог вместе с payload — при включённом уровне debug пароль магазина оседал в журнале. Остальной состав записи не изменился: baseUrl и тело запроса.

1.0.15-rc

  • LOG: в debug-лог создания сессии (createSession) пишется полный payload запроса ($data целиком) и baseUrl — видно, какой эндпоинт (live/test, регион) реально использовался. Раньше писался только order_amount.

1.0.14-rc

  • FEATURE: эндпоинты Klarna API вынесены в системные настройки msklr_endpoint_live (по умолчанию https://api.klarna.com) и msklr_endpoint_test (по умолчанию https://api.playground.klarna.com). Раньше URL были захардкожены в msKlarna::initialize(). Переключатель msklr_test_mode по-прежнему выбирает live/test. Значения читаются per-context (getOption по contextSettings) — в разных контекстах MODX можно задать разные эндпоинты, в т.ч. региональные live/playground (api-na., api-oc.). baseUrl нормализуется rtrim('/').
  • Лексикон: msklr_endpoint_live/test добавлены во все 16 языков (полный перевод). Уточнён msklr_test_mode_desc (раньше упоминал захардкоженный playground-URL).
  • ВНИМАНИЕ: перед сборкой настройки msklr_endpoint_live и msklr_endpoint_test создать в менеджере стенда (namespace msklarna) — сборка тянет настройки из БД стенда.

1.0.13-rc

  • Логирование переведено с файлов (logs/*.txt) на mxLogger. Logger делегирует записи сервису mxLogger (если установлен), иначе молчит и один раз предупреждает в журнале MODX. Перевод затронул: msKlarna, KlarnaApi, ms2-handler (msklarnahandler), PluginHandler.
  • Гейты: msklr_debug (вкл/выкл) + новая настройка msklr_log_level (минимальный уровень debug|info|warning|error, по умолчанию error; единый приёмник mxLogger, включено из коробки). Консистентно с mxLogger.min_level. PluginHandler теперь тоже учитывает msklr_debug (раньше логировал всегда).
  • Тэги: базовые msklarna + payment, этапные session / order / webhook / http. Воронка processuid = «msklarna»+md5(orderId) (send/receive) — сессия, заказ и callback одного заказа склеиваются в mxLogger одним процессом.
  • Уровни: ошибки API/cURL/JSON и пустой client_token — error; REJECTED(fraud), пустая корзина, нет auth-токена — warning; создание заказа/сессии и подтверждение — info; служебные запросы сессии — debug. getResponse использует skip=2 для корректного «Источника».
  • Лексикон: msklr_log_level добавлен во все 16 языков (ru/en — перевод, остальные — EN-лейбл).
  • ВНИМАНИЕ: перед сборкой настройку msklr_log_level создать в менеджере (namespace msklarna) — сборка тянет настройки из БД стенда.

1.0.12-rc

  • klarna.js: увеличен таймаут ожидания загрузки miniShop2 с 10 до 60 секунд.

1.0.11-rc

  • klarna.js: ошибки выводятся через miniShop2.Message.error() вместо console.error.
  • klarna.js: сообщения вынесены в лексиконы, передаются через msKlarnaConfig.lexicon.
  • klarna.js: автоматическое создание контейнера #klarna-payments-container.
  • klarna.js: корректная передача payment_method_category в Klarna.Payments.load().
  • Добавлены лексиконы для 14 языков стран Klarna (de, fr, es, it, nl, sv, da, fi, nb, pl, pt, cs, ro, el).

1.0.10-rc

  • detectContext() вынесен в msKlarna (DRY), handler использует $this->service->detectContext().
  • Определение контекста из куки добавлено в msKlarna.php (ранее только в handler).

1.0.9-rc

  • Добавлена настройка msklr_context_cookie_key — определение контекста MODX из куки (fallback на текущий контекст).

1.0.8-rc

  • Исправлена загрузка payment handler: заменён несуществующий miniShop2->loadPaymentHandler() на msPayment->loadHandler() (connector, callback, webhook).

1.0.7-rc

  • klarna.js: добавлено ожидание загрузки miniShop2 (до 10 сек) вместо молчаливого выхода.

1.0.6-rc

  • Добавлена настройка msklr_checkout_template — скрипты Klarna подключаются только на странице оформления.

1.0.5-rc

  • Исправил ошибку множественной загрузки SDK.
  • Вынес data-атрибуты в параметры сниппета.

1.0.1-rc

  • Добавил элементы в админку.

1.0.0-rc

  • Первая сборка. Компонент создан на базе msSezzle, адаптирован под Klarna.

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