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
Requires
- magento/framework: ^103.0
- utanvet-ellenor/client-php: ^2.1
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().
- 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