Utanvet Ellenor Risk Check
utanvet-ellenor/connector-magento
Integrates Utanvet Ellenor risk assessment into Magento 2 checkout, filtering available payment methods based on risk scores and sending order outcome signals on status transitions.
Build Tests
Code Quality
Tested on Magento 2.4.8-p4
Recent Test History
Each release is tested against the latest Magento version at that time.
Top Contributors
View LeaderboardShare This Module's Status
README
Loaded from GitHubUtanvet Ellenor Connector for Magento 2
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().
- If module is disabled, quote is missing, or no managed methods are configured: no filtering.
- Module calls
Model/Service/RequestService::sendRequest($quote). - If no valid API response arrives: no filtering (safe fallback).
- If
result.blockedistrue: configuredmanaged_methodsare removed. - If
result.blockedisfalse: configuredfallback_methodsare 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
multishippingcheckout. - 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/*
enabledpublic_api_keyprivate_api_key(encrypted in config storage)sandboxthreshold(float between-1and1)managed_methodsfallback_methodspositive_statusesnegative_statuseslogging_enabled(default scope)
Logging
- File:
var/log/utanvetellenor.log - Logger level:
infoand above. - Controlled by
logging_enabledconfig.
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.phpPlugin/Payment/MethodListPlugin.phpObserver/OrderStatusSignalObserver.phpModel/Service/SignalService.phpModel/GuestEmailManagement.phpview/frontend/web/js/guest-email-autosave.js
This content is fetched directly from the module's GitHub repository. We are not the authors of this content and take no responsibility for its accuracy, completeness, or any consequences arising from its use.