utanvet-ellenor/connector-magento

Utánvét Ellenőr Magento 2 connector: filter payment methods based on customer reputation and send order outcome signals on status changes.

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:magento2-module

pkg:composer/utanvet-ellenor/connector-magento

1.0.0 2026-02-18 19:39 UTC

This package is auto-updated.

Last update: 2026-02-19 07:45:26 UTC


README

Magento 2 module that integrates the Utanvet Ellenor risk check into checkout payment filtering and sends order outcome signals after status changes.

Features

  • Filters available payment methods during checkout based on Utanvet Ellenor sendRequest() response.
  • Sends sendSignal() outcome events on configured order status transitions.
  • Saves guest email early during one-page checkout flows to avoid missing email in risk checks.
  • Supports multiple checkout implementations (Luma, Hyva Checkout, common one-step checkouts) without checkout-specific module toggles.

How Payment Filtering Works

Plugin/Payment/MethodListPlugin.php intercepts MethodList::getAvailableMethods().

  1. If module is disabled, quote is missing, or no managed methods are configured: no filtering.
  2. Module calls Model/Service/RequestService::sendRequest($quote).
  3. If no valid API response arrives: no filtering (safe fallback).
  4. If result.blocked is true: configured managed_methods are removed.
  5. If result.blocked is false: configured fallback_methods are removed.

This means:

  • "managed methods" are shown only for non-blocked customers.
  • "fallback methods" are shown only for blocked customers.

How Outcome Signaling Works

Observer/OrderStatusSignalObserver.php listens to sales_order_save_after.

  • Signal is sent only when status actually changes.
  • Positive/negative status lists are configurable.
  • If a status exists in both lists, negative outcome (-1) wins.

Guest Email Autosave (Checkout)

The module injects view/frontend/web/js/guest-email-autosave.js via view/frontend/layout/default.xml.

What it does:

  • Runs only in one-page checkout contexts.
  • Explicitly skips multishipping checkout.
  • Watches email inputs (input, change, blur) and dynamic DOM updates.
  • Debounces requests and deduplicates already-saved values.
  • Saves email through custom REST endpoint using checkout session.
  • Triggers payment-info refresh only when needed, with dedupe to avoid double calls when checkout already refreshes itself.

Custom REST API Endpoints

Defined in etc/webapi.xml:

  • PUT /V1/utanvetellenor/guest-email
    • Saves guest email for current checkout session quote.
    • Service: UtanvetEllenor\ConnectorMagento\Api\GuestEmailManagementInterface::setForCurrentQuote
  • PUT /V1/utanvetellenor/guest-carts/:cartId/email
    • Saves guest email by masked cart id.
    • Service: UtanvetEllenor\ConnectorMagento\Api\GuestEmailManagementInterface::set

Both endpoints are anonymous resources and return bool.

Admin Configuration

Path: Stores -> Configuration -> Sales -> Utanvet Ellenor

Config key prefix: utanvetellenor/general/*

  • enabled
  • public_api_key
  • private_api_key (encrypted in config storage)
  • sandbox
  • threshold (float between -1 and 1)
  • managed_methods
  • fallback_methods
  • positive_statuses
  • negative_statuses
  • logging_enabled (default scope)

Logging

  • File: var/log/utanvetellenor.log
  • Logger level: info and above.
  • Controlled by logging_enabled config.

Installation

Example (composer-based):

composer require utanvet-ellenor/connector-magento
bin/magento module:enable UtanvetEllenor_ConnectorMagento
bin/magento setup:upgrade
bin/magento cache:flush

If your deployment mode requires static assets:

bin/magento setup:static-content:deploy -f

Compatibility Notes

  • Designed for Magento 2.4.x.
  • Uses utanvet-ellenor/client-php (^2.1).
  • Checkout autosave logic is frontend-agnostic, but still depends on checkout rendering an email input field.

Current Behavior and Limits

  • If request/signal API keys are missing or invalid, external calls are skipped safely.
  • If Utanvet Ellenor request fails or returns error, payment methods are not filtered (safe fallback).
  • No response cache layer is currently active in this module version.

Development Pointers

Main classes:

  • Model/Service/RequestService.php
  • Plugin/Payment/MethodListPlugin.php
  • Observer/OrderStatusSignalObserver.php
  • Model/Service/SignalService.php
  • Model/GuestEmailManagement.php
  • view/frontend/web/js/guest-email-autosave.js