Version Notes
- Order grid rewrite removed
- Fraud status added to order and orders grid and can be used by other extensions
- Behavior of "Disable Extension Output" setting improved
- Get IP address from forwarding list
Download this release
Release Info
Developer | Shloimy Stauber |
Extension | Eye4Fraud_Connector_integration |
Version | 1.2.5 |
Comparing to | |
See all releases |
Code changes from version 1.2.4 to 1.2.5
- app/code/local/Eye4Fraud/Connector/Block/Sales/Order/Grid.php +3 -0
- app/code/local/Eye4Fraud/Connector/Helper/Data.php +3 -6
- app/code/local/Eye4Fraud/Connector/Helper/Order/Grid.php +35 -0
- app/code/local/Eye4Fraud/Connector/Model/Config/Frontend/Cron.php +3 -1
- app/code/local/Eye4Fraud/Connector/Model/Config/Frontend/Version.php +27 -0
- app/code/local/Eye4Fraud/Connector/Model/Observer.php +47 -13
- app/code/local/Eye4Fraud/Connector/Model/Observer/Sales/Grid.php +23 -0
- app/code/local/Eye4Fraud/Connector/Model/Resource/Order/Collection.php +24 -0
- app/code/local/Eye4Fraud/Connector/Model/Resource/Status/Collection.php +22 -3
- app/code/local/Eye4Fraud/Connector/Model/Sales/Order.php +17 -0
- app/code/local/Eye4Fraud/Connector/Model/Status.php +44 -2
- app/code/local/Eye4Fraud/Connector/changes.txt +6 -0
- app/code/local/Eye4Fraud/Connector/etc/config.xml +36 -17
- app/code/local/Eye4Fraud/Connector/etc/system.xml +10 -10
- app/code/local/Eye4Fraud/Connector/sql/eye4fraud_setup/upgrade-1.2.4-1.2.5.php +10 -0
- app/design/adminhtml/default/default/layout/eye4fraud/salesgrid.xml +23 -0
- app/locale/en_US/Eye4Fraud_Connector.csv +1 -1
- app/locale/en_US/template/email/authorizepopulation.html +0 -57
- package.xml +8 -5
app/code/local/Eye4Fraud/Connector/Block/Sales/Order/Grid.php
CHANGED
@@ -19,6 +19,9 @@ class Eye4Fraud_Connector_Block_Sales_Order_Grid extends _BaseGridClass
|
|
19 |
{
|
20 |
protected function _prepareColumns()
|
21 |
{
|
|
|
|
|
|
|
22 |
if(!Mage::helper('eye4fraud_connector')->isEnabled()) return parent::_prepareColumns();
|
23 |
|
24 |
$this->addColumnAfter('eye4fraud_status', array(
|
19 |
{
|
20 |
protected function _prepareColumns()
|
21 |
{
|
22 |
+
/** This file is kept for compatibility with some stores which may used it to resolve the rewrite conflict */
|
23 |
+
return parent::_prepareColumns();
|
24 |
+
|
25 |
if(!Mage::helper('eye4fraud_connector')->isEnabled()) return parent::_prepareColumns();
|
26 |
|
27 |
$this->addColumnAfter('eye4fraud_status', array(
|
app/code/local/Eye4Fraud/Connector/Helper/Data.php
CHANGED
@@ -80,12 +80,9 @@ class Eye4Fraud_Connector_Helper_Data
|
|
80 |
*/
|
81 |
public function isEnabled(){
|
82 |
// Check if soap client exists - if not, we cannot enable the module
|
83 |
-
if (!$this->hasSoapClient())
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
$config = $this->getConfig();
|
88 |
-
return !isset($config['general']['enabled']) ? false : (bool)$config['general']['enabled'];
|
89 |
}
|
90 |
|
91 |
/**
|
80 |
*/
|
81 |
public function isEnabled(){
|
82 |
// Check if soap client exists - if not, we cannot enable the module
|
83 |
+
if (!$this->hasSoapClient()) return false;
|
84 |
+
if (!Mage::helper('core/data')->isModuleOutputEnabled('Eye4Fraud_Connector')) return false;
|
85 |
+
return (bool)$this->getConfig('general/enabled');
|
|
|
|
|
|
|
86 |
}
|
87 |
|
88 |
/**
|
app/code/local/Eye4Fraud/Connector/Helper/Order/Grid.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Insert fraud_status column and render it
|
5 |
+
* @author Mikhail Valiushka
|
6 |
+
* @since 1.2.5
|
7 |
+
*/
|
8 |
+
class Eye4Fraud_Connector_Helper_Order_Grid {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @param $renderedValue
|
12 |
+
* @param Mage_Sales_Model_Order $order
|
13 |
+
* @param $column
|
14 |
+
* @return string
|
15 |
+
*/
|
16 |
+
public static function addStatusDescription($renderedValue, $order, $column){
|
17 |
+
$status_collection = Mage::getResourceSingleton('eye4fraud_connector/status_collection');
|
18 |
+
return $status_collection->addStatusDescription($renderedValue, $order, $column);
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Generate Fraud Statuc column definition for orders grid.
|
23 |
+
* @return array
|
24 |
+
* @see layout/eye4fraud/salesgrid.xml
|
25 |
+
*/
|
26 |
+
public function generateFraudColumnDefinition(){
|
27 |
+
return array(
|
28 |
+
'header' => 'Fraud Status',
|
29 |
+
'width' => '123',
|
30 |
+
'type' => 'text',
|
31 |
+
'index' => 'eye4fraud_status',
|
32 |
+
'frame_callback' => array('Eye4Fraud_Connector_Helper_Order_Grid','addStatusDescription')
|
33 |
+
);
|
34 |
+
}
|
35 |
+
}
|
app/code/local/Eye4Fraud/Connector/Model/Config/Frontend/Cron.php
CHANGED
@@ -41,14 +41,16 @@ class Eye4Fraud_Connector_Model_Config_Frontend_Cron extends Mage_Adminhtml_Bloc
|
|
41 |
if(!$cron_task_pending->isEmpty()){
|
42 |
$color = 'green';
|
43 |
$tooltip = '';
|
|
|
44 |
if($cron_task_pending->getData('scheduled_at')){
|
45 |
$pending_interval = strtotime($cron_task_pending->getData('scheduled_at')) - time();
|
|
|
46 |
if($pending_interval < 0) {
|
47 |
$color = 'red';
|
48 |
$tooltip = 'Task scheduled time is in the past';
|
49 |
}
|
50 |
}
|
51 |
-
$value .= '<div>Cron task scheduled at <span style="color: '.$color.'" title="'.$tooltip.'">'.$
|
52 |
}
|
53 |
else{
|
54 |
$value .= '<div>Scheduled cron task <strong>NOT</strong> found</div>';
|
41 |
if(!$cron_task_pending->isEmpty()){
|
42 |
$color = 'green';
|
43 |
$tooltip = '';
|
44 |
+
$pending_date_time = 'Not set yet';
|
45 |
if($cron_task_pending->getData('scheduled_at')){
|
46 |
$pending_interval = strtotime($cron_task_pending->getData('scheduled_at')) - time();
|
47 |
+
$pending_date_time = Mage::getModel('core/date')->date(null, $cron_task_pending->getData('scheduled_at'));
|
48 |
if($pending_interval < 0) {
|
49 |
$color = 'red';
|
50 |
$tooltip = 'Task scheduled time is in the past';
|
51 |
}
|
52 |
}
|
53 |
+
$value .= '<div>Cron task scheduled at <span style="color: '.$color.'" title="'.$tooltip.'">'.$pending_date_time.'</span></div>';
|
54 |
}
|
55 |
else{
|
56 |
$value .= '<div>Scheduled cron task <strong>NOT</strong> found</div>';
|
app/code/local/Eye4Fraud/Connector/Model/Config/Frontend/Version.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Show extension version
|
5 |
+
* @category Eye4fraud
|
6 |
+
* @package Eye4fraud_Connector
|
7 |
+
*/
|
8 |
+
class Eye4Fraud_Connector_Model_Config_Frontend_Version extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
+
{
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Render config field
|
13 |
+
*
|
14 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
15 |
+
* @return string
|
16 |
+
*/
|
17 |
+
public function render(Varien_Data_Form_Element_Abstract $element){
|
18 |
+
$config = Mage::getConfig();
|
19 |
+
$module_config = $config->getModuleConfig('Eye4Fraud_Connector');
|
20 |
+
|
21 |
+
$element->setData('value', "[Dummy]");
|
22 |
+
|
23 |
+
$html = parent::render($element);
|
24 |
+
$html = str_replace("[Dummy]", '<b>'.(string)$module_config->version."</b>", $html);
|
25 |
+
return $html;
|
26 |
+
}
|
27 |
+
}
|
app/code/local/Eye4Fraud/Connector/Model/Observer.php
CHANGED
@@ -49,6 +49,8 @@ class Eye4Fraud_Connector_Model_Observer
|
|
49 |
*/
|
50 |
public function orderPlacedAfter(&$observer)
|
51 |
{
|
|
|
|
|
52 |
$order = $observer->getEvent()->getOrder();
|
53 |
$payment = $order->getPayment();
|
54 |
if (empty($payment)) {
|
@@ -220,6 +222,7 @@ class Eye4Fraud_Connector_Model_Observer
|
|
220 |
if ($card["cc_type"]) {
|
221 |
$card_type = $card["cc_type"];
|
222 |
}
|
|
|
223 |
}
|
224 |
}
|
225 |
}
|
@@ -233,6 +236,7 @@ class Eye4Fraud_Connector_Model_Observer
|
|
233 |
}
|
234 |
$cc_number = $payment->getData('cc_number');
|
235 |
$card_type = $payment->getData('cc_type');
|
|
|
236 |
break;
|
237 |
case $helper::PAYMENT_METHOD_USAEPAY:{
|
238 |
$transId = $payment->getData('cc_trans_id');
|
@@ -277,6 +281,14 @@ class Eye4Fraud_Connector_Model_Observer
|
|
277 |
break;
|
278 |
}
|
279 |
$remoteIp = $order->getRemoteIp() ? $order->getRemoteIp() : false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
|
281 |
//Double check we have CC number
|
282 |
if (empty($cc_number)) {
|
@@ -397,11 +409,15 @@ class Eye4Fraud_Connector_Model_Observer
|
|
397 |
break;
|
398 |
}
|
399 |
case Mage_Paypal_Model_Config::METHOD_PAYFLOWPRO:{
|
|
|
|
|
400 |
if(method_exists($method_instance,'getResponseData')){
|
401 |
/** @var Eye4Fraud_Connector_Model_Payflowpro $method_instance */
|
402 |
$details = $method_instance->getResponseData();
|
403 |
-
$
|
404 |
-
|
|
|
|
|
405 |
}
|
406 |
else{
|
407 |
$helper->log('Payflow class is wrong: '.get_class($payment).'; Required method not exists', true);
|
@@ -440,7 +456,9 @@ class Eye4Fraud_Connector_Model_Observer
|
|
440 |
break;
|
441 |
}
|
442 |
case Mage_Paygate_Model_Authorizenet::METHOD_CODE:{
|
443 |
-
|
|
|
|
|
444 |
if(method_exists($method_instance,'getResponseData')){
|
445 |
/** @var Mage_Paygate_Model_Authorizenet_Result|array $details */
|
446 |
$details = $method_instance->getResponseData();
|
@@ -498,9 +516,14 @@ class Eye4Fraud_Connector_Model_Observer
|
|
498 |
else{
|
499 |
$helper->log("Prepare and queue request for order #".$post_array['OrderNumber']);
|
500 |
$this->_getHelper()->prepareRequest($post_array, $payment_method);
|
501 |
-
|
502 |
-
|
503 |
-
|
|
|
|
|
|
|
|
|
|
|
504 |
}
|
505 |
} catch (Exception $e) {
|
506 |
$this->_getHelper()->log($e->getMessage() . "\n" . $e->getTraceAsString());
|
@@ -524,25 +547,33 @@ class Eye4Fraud_Connector_Model_Observer
|
|
524 |
* @param array $event
|
525 |
*/
|
526 |
public function prepareFraudStatuses($event){
|
527 |
-
if (!Mage::helper('core/data')->isModuleOutputEnabled('Eye4Fraud_Connector')) return;
|
528 |
if (!$this->_getHelper()->isEnabled()) return;
|
529 |
|
530 |
-
/** @var Mage_Sales_Model_Resource_Order_Grid_Collection $
|
531 |
$ordersCollection = $event['order_grid_collection'];
|
532 |
-
$statuses = array();
|
533 |
-
foreach ($ordersCollection as $order) $statuses[$order['increment_id']] = 0;
|
534 |
/** @var Eye4Fraud_Connector_Model_Resource_Status_Collection $statusesCollection */
|
535 |
$statusesCollection = Mage::getResourceSingleton('eye4fraud_connector/status_collection');
|
536 |
-
$statusesCollection->
|
537 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
|
539 |
/**
|
540 |
* Refresh fraud status in cron job
|
541 |
*/
|
542 |
public function cronRefreshStatus(){
|
543 |
-
if (!Mage::helper('core/data')->isModuleOutputEnabled('Eye4Fraud_Connector')) return;
|
544 |
if (!$this->_getHelper()->isEnabled()) return;
|
545 |
|
|
|
|
|
546 |
$helper = Mage::helper('eye4fraud_connector');
|
547 |
$helper->log("Start cron job ".date("d-m-Y H:i"));
|
548 |
|
@@ -554,6 +585,7 @@ class Eye4Fraud_Connector_Model_Observer
|
|
554 |
$statusesCollection->prepareCronUpdateQuery();
|
555 |
$records_count = $statusesCollection->count();
|
556 |
$helper->log("Processed records: ".json_encode($records_count));
|
|
|
557 |
|
558 |
$helper->log("Cron job finished ".date("d-m-Y H:i"));
|
559 |
}
|
@@ -562,6 +594,8 @@ class Eye4Fraud_Connector_Model_Observer
|
|
562 |
* Send requests manually from orders page
|
563 |
*/
|
564 |
public function sendRequestsManual(){
|
|
|
|
|
565 |
$helper = Mage::helper('eye4fraud_connector');
|
566 |
$helper->log("Start from orders grid");
|
567 |
$helper->log("Send request manually");
|
49 |
*/
|
50 |
public function orderPlacedAfter(&$observer)
|
51 |
{
|
52 |
+
if (!$this->_getHelper()->isEnabled()) return $this;
|
53 |
+
|
54 |
$order = $observer->getEvent()->getOrder();
|
55 |
$payment = $order->getPayment();
|
56 |
if (empty($payment)) {
|
222 |
if ($card["cc_type"]) {
|
223 |
$card_type = $card["cc_type"];
|
224 |
}
|
225 |
+
if(!$cc_number && $card['cc_last4']) $cc_number = '000000 '.$card['cc_last4'];
|
226 |
}
|
227 |
}
|
228 |
}
|
236 |
}
|
237 |
$cc_number = $payment->getData('cc_number');
|
238 |
$card_type = $payment->getData('cc_type');
|
239 |
+
if(!$cc_number && $payment->getData('cc_last4')) $cc_number = '000000 '.$payment->getData('cc_last4');
|
240 |
break;
|
241 |
case $helper::PAYMENT_METHOD_USAEPAY:{
|
242 |
$transId = $payment->getData('cc_trans_id');
|
281 |
break;
|
282 |
}
|
283 |
$remoteIp = $order->getRemoteIp() ? $order->getRemoteIp() : false;
|
284 |
+
if($order->getXForwardedFor()) {
|
285 |
+
$forwarded_ips = explode(",", $order->getXForwardedFor());
|
286 |
+
if(isset($forwarded_ips[0]) and $forwarded_ips[0]) {
|
287 |
+
$helper->log('Forwarded address detected: '.$order->getXForwardedFor());
|
288 |
+
$remoteIp = $forwarded_ips[0];
|
289 |
+
$helper->log('Take first address: '.$remoteIp);
|
290 |
+
}
|
291 |
+
}
|
292 |
|
293 |
//Double check we have CC number
|
294 |
if (empty($cc_number)) {
|
409 |
break;
|
410 |
}
|
411 |
case Mage_Paypal_Model_Config::METHOD_PAYFLOWPRO:{
|
412 |
+
$post_array["AVSCode"] = 'unknown';
|
413 |
+
$post_array["CIDResponse"] = 'unknown';
|
414 |
if(method_exists($method_instance,'getResponseData')){
|
415 |
/** @var Eye4Fraud_Connector_Model_Payflowpro $method_instance */
|
416 |
$details = $method_instance->getResponseData();
|
417 |
+
if(is_object($details)){
|
418 |
+
$post_array["AVSCode"] = $details->getData('procavs');
|
419 |
+
$post_array["CIDResponse"] = $details->getData('proccvv2');
|
420 |
+
}
|
421 |
}
|
422 |
else{
|
423 |
$helper->log('Payflow class is wrong: '.get_class($payment).'; Required method not exists', true);
|
456 |
break;
|
457 |
}
|
458 |
case Mage_Paygate_Model_Authorizenet::METHOD_CODE:{
|
459 |
+
$post_array["AVSCode"] = 'unknown';
|
460 |
+
$post_array["CIDResponse"] = 'unknown';
|
461 |
+
/** @var Eye4Fraud_Connector_Model_Authorizenet $method_instance */
|
462 |
if(method_exists($method_instance,'getResponseData')){
|
463 |
/** @var Mage_Paygate_Model_Authorizenet_Result|array $details */
|
464 |
$details = $method_instance->getResponseData();
|
516 |
else{
|
517 |
$helper->log("Prepare and queue request for order #".$post_array['OrderNumber']);
|
518 |
$this->_getHelper()->prepareRequest($post_array, $payment_method);
|
519 |
+
try{
|
520 |
+
$status = Mage::getModel('eye4fraud_connector/status');
|
521 |
+
$status->createQueued($post_array['OrderNumber'])->setOrder($order);
|
522 |
+
$status->save();
|
523 |
+
}
|
524 |
+
catch(Exception $exception){
|
525 |
+
$helper->log("Process order exception: ".$exception->getMessage(), true);
|
526 |
+
}
|
527 |
}
|
528 |
} catch (Exception $e) {
|
529 |
$this->_getHelper()->log($e->getMessage() . "\n" . $e->getTraceAsString());
|
547 |
* @param array $event
|
548 |
*/
|
549 |
public function prepareFraudStatuses($event){
|
|
|
550 |
if (!$this->_getHelper()->isEnabled()) return;
|
551 |
|
552 |
+
/** @var Mage_Sales_Model_Resource_Order_Grid_Collection $ordersCollection */
|
553 |
$ordersCollection = $event['order_grid_collection'];
|
|
|
|
|
554 |
/** @var Eye4Fraud_Connector_Model_Resource_Status_Collection $statusesCollection */
|
555 |
$statusesCollection = Mage::getResourceSingleton('eye4fraud_connector/status_collection');
|
556 |
+
$statusesCollection->setOrdersGridCollection($ordersCollection )->load();
|
557 |
+
|
558 |
+
// Update statuses in the currently loaded orders grid collection
|
559 |
+
/** @var Mage_Sales_Model_Order $order */
|
560 |
+
if($ordersCollection) foreach($ordersCollection as $order){
|
561 |
+
$item = $statusesCollection->getItemById($order->getIncrementId());
|
562 |
+
$status_text = $this->_getHelper()->__('status:'.$item->getData('status'));
|
563 |
+
if($order->getData('eye4fraud_status') != $status_text) {
|
564 |
+
$order->setData('eye4fraud_status', $status_text);
|
565 |
+
}
|
566 |
+
}
|
567 |
+
}
|
568 |
|
569 |
/**
|
570 |
* Refresh fraud status in cron job
|
571 |
*/
|
572 |
public function cronRefreshStatus(){
|
|
|
573 |
if (!$this->_getHelper()->isEnabled()) return;
|
574 |
|
575 |
+
if(!count(Mage::app()->getTranslator()->getData())) Mage::app()->getTranslator()->init('adminhtml');
|
576 |
+
|
577 |
$helper = Mage::helper('eye4fraud_connector');
|
578 |
$helper->log("Start cron job ".date("d-m-Y H:i"));
|
579 |
|
585 |
$statusesCollection->prepareCronUpdateQuery();
|
586 |
$records_count = $statusesCollection->count();
|
587 |
$helper->log("Processed records: ".json_encode($records_count));
|
588 |
+
//$helper->log("Query: ".$statusesCollection->getSelect()->assemble());
|
589 |
|
590 |
$helper->log("Cron job finished ".date("d-m-Y H:i"));
|
591 |
}
|
594 |
* Send requests manually from orders page
|
595 |
*/
|
596 |
public function sendRequestsManual(){
|
597 |
+
if (!$this->_getHelper()->isEnabled()) return;
|
598 |
+
|
599 |
$helper = Mage::helper('eye4fraud_connector');
|
600 |
$helper->log("Start from orders grid");
|
601 |
$helper->log("Send request manually");
|
app/code/local/Eye4Fraud/Connector/Model/Observer/Sales/Grid.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Created by PhpStorm.
|
5 |
+
* User: Misha
|
6 |
+
* Date: 29.01.2017
|
7 |
+
* Time: 16:55
|
8 |
+
*/
|
9 |
+
class Eye4Fraud_Connector_Model_Observer_Sales_Grid {
|
10 |
+
|
11 |
+
public function addColumnToResource(Varien_Event_Observer $observer) {
|
12 |
+
// Only needed if you use a table other than sales/order (sales_flat_order)
|
13 |
+
/** @var Mage_Sales_Model_Resource_Order $resource */
|
14 |
+
/*
|
15 |
+
$resource = $observer->getEvent()->getResource();
|
16 |
+
$resource->addVirtualGridColumn(
|
17 |
+
'customer_city',
|
18 |
+
'sales/order_address',
|
19 |
+
array('billing_address_id' => 'entity_id'),
|
20 |
+
'city'
|
21 |
+
);
|
22 |
+
**/
|
23 |
+
}}
|
app/code/local/Eye4Fraud/Connector/Model/Resource/Order/Collection.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Collection.php.
|
5 |
+
* @author Mikhail Valiushka
|
6 |
+
* @since 1.2.5
|
7 |
+
*/
|
8 |
+
class Eye4Fraud_Connector_Model_Resource_Order_Collection extends Mage_Sales_Model_Resource_Order_Collection{
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Event prefix
|
12 |
+
* @var string
|
13 |
+
*/
|
14 |
+
protected $_eventPrefix = 'eye4fraud_order_collection';
|
15 |
+
|
16 |
+
public function addFraudStatusFilter($order_increments){
|
17 |
+
$this->addFieldToSelect('entity_id');
|
18 |
+
$this->addFieldToSelect('increment_id');
|
19 |
+
$this->addFieldToSelect('store_id');
|
20 |
+
$this->addFieldToSelect('eye4fraud_status');
|
21 |
+
$this->addFieldToFilter('increment_id', array('in' => $order_increments));
|
22 |
+
}
|
23 |
+
|
24 |
+
}
|
app/code/local/Eye4Fraud/Connector/Model/Resource/Status/Collection.php
CHANGED
@@ -20,6 +20,11 @@ class Eye4Fraud_Connector_Model_Resource_Status_Collection extends Mage_Core_Mod
|
|
20 |
*/
|
21 |
protected $_cronFlag = false;
|
22 |
|
|
|
|
|
|
|
|
|
|
|
23 |
/**
|
24 |
* Resource initialization
|
25 |
*/
|
@@ -28,6 +33,18 @@ class Eye4Fraud_Connector_Model_Resource_Status_Collection extends Mage_Core_Mod
|
|
28 |
$this->_init('eye4fraud_connector/status');
|
29 |
}
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
/**
|
32 |
* Add attribute id to collection
|
33 |
*
|
@@ -89,7 +106,7 @@ class Eye4Fraud_Connector_Model_Resource_Status_Collection extends Mage_Core_Mod
|
|
89 |
}
|
90 |
|
91 |
public function notOlderThan($update_limit, $update_limit_no_order){
|
92 |
-
$this->getSelect()->where('(created_at > "'.$update_limit.'" and status!="N") or (created_at > "'.$update_limit_no_order.'" and status="N")');
|
93 |
return $this;
|
94 |
}
|
95 |
|
@@ -156,7 +173,10 @@ class Eye4Fraud_Connector_Model_Resource_Status_Collection extends Mage_Core_Mod
|
|
156 |
$is_status_final = in_array($item['status'],$final_statuses);
|
157 |
|
158 |
$update_allowed_by_date = false;
|
159 |
-
if($item->getData('status')=='
|
|
|
|
|
|
|
160 |
$update_limit_no_order = $helper->getConfig("general/update_limit_no_order");
|
161 |
$update_limit_no_order || $update_limit_no_order = 2;
|
162 |
$minDateNoOrder = time() - $update_limit_no_order*60*60;
|
@@ -169,7 +189,6 @@ class Eye4Fraud_Connector_Model_Resource_Status_Collection extends Mage_Core_Mod
|
|
169 |
$minDate = time() - $update_limit*60*60*24;
|
170 |
$created_at = strtotime($item->getData('created_at'));
|
171 |
if($created_at > $minDate) $update_allowed_by_date = true;
|
172 |
-
|
173 |
}
|
174 |
|
175 |
return (!$is_status_final and $update_allowed_by_date);
|
20 |
*/
|
21 |
protected $_cronFlag = false;
|
22 |
|
23 |
+
/**
|
24 |
+
* @var Mage_Sales_Model_Resource_Order_Grid_Collection
|
25 |
+
*/
|
26 |
+
protected $ordersGridCollection;
|
27 |
+
|
28 |
/**
|
29 |
* Resource initialization
|
30 |
*/
|
33 |
$this->_init('eye4fraud_connector/status');
|
34 |
}
|
35 |
|
36 |
+
/**
|
37 |
+
* Set Orders grid collection
|
38 |
+
* @param Mage_Sales_Model_Resource_Order_Grid_Collection $ordersGridCollection
|
39 |
+
* @return $this
|
40 |
+
*/
|
41 |
+
public function setOrdersGridCollection($ordersGridCollection){
|
42 |
+
$this->ordersGridCollection = $ordersGridCollection;
|
43 |
+
$this->statuses = array();
|
44 |
+
foreach ($this->ordersGridCollection as $order) $this->statuses[$order['increment_id']] = 0;
|
45 |
+
return $this;
|
46 |
+
}
|
47 |
+
|
48 |
/**
|
49 |
* Add attribute id to collection
|
50 |
*
|
106 |
}
|
107 |
|
108 |
public function notOlderThan($update_limit, $update_limit_no_order){
|
109 |
+
$this->getSelect()->where('(created_at > "'.$update_limit.'" and status!="N") or (created_at > "'.$update_limit_no_order.'" and status="N") or status="W"');
|
110 |
return $this;
|
111 |
}
|
112 |
|
173 |
$is_status_final = in_array($item['status'],$final_statuses);
|
174 |
|
175 |
$update_allowed_by_date = false;
|
176 |
+
if($item->getData('status')=='W'){
|
177 |
+
$update_allowed_by_date = true;
|
178 |
+
}
|
179 |
+
elseif($item->getData('status')=='N'){
|
180 |
$update_limit_no_order = $helper->getConfig("general/update_limit_no_order");
|
181 |
$update_limit_no_order || $update_limit_no_order = 2;
|
182 |
$minDateNoOrder = time() - $update_limit_no_order*60*60;
|
189 |
$minDate = time() - $update_limit*60*60*24;
|
190 |
$created_at = strtotime($item->getData('created_at'));
|
191 |
if($created_at > $minDate) $update_allowed_by_date = true;
|
|
|
192 |
}
|
193 |
|
194 |
return (!$is_status_final and $update_allowed_by_date);
|
app/code/local/Eye4Fraud/Connector/Model/Sales/Order.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Take order model and change event
|
5 |
+
* @author Mikhail Valiushka
|
6 |
+
* @since 1.2.5
|
7 |
+
*/
|
8 |
+
class Eye4Fraud_Connector_Model_Sales_Order extends Mage_Sales_Model_Order {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Skip order events
|
12 |
+
*
|
13 |
+
* @var string
|
14 |
+
*/
|
15 |
+
protected $_eventPrefix = 'ef_sales_order';
|
16 |
+
|
17 |
+
}
|
app/code/local/Eye4Fraud/Connector/Model/Status.php
CHANGED
@@ -9,6 +9,18 @@ class Eye4Fraud_Connector_Model_Status extends Mage_Core_Model_Abstract
|
|
9 |
{
|
10 |
protected $_eventPrefix = 'eye4fraud_connector_status';
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
protected function _construct(){
|
13 |
$this->_init('eye4fraud_connector/status');
|
14 |
}
|
@@ -39,9 +51,9 @@ class Eye4Fraud_Connector_Model_Status extends Mage_Core_Model_Abstract
|
|
39 |
/**
|
40 |
* A little hack to restore order_id field after model was saved
|
41 |
*/
|
42 |
-
$
|
43 |
$this->save();
|
44 |
-
$this->setData('order_id',$
|
45 |
return $this;
|
46 |
}
|
47 |
|
@@ -79,4 +91,34 @@ class Eye4Fraud_Connector_Model_Status extends Mage_Core_Model_Abstract
|
|
79 |
return parent::isObjectNew($flag);
|
80 |
}
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
9 |
{
|
10 |
protected $_eventPrefix = 'eye4fraud_connector_status';
|
11 |
|
12 |
+
/**
|
13 |
+
* Order ID
|
14 |
+
* @var int
|
15 |
+
*/
|
16 |
+
protected $order_id_saved = 0;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Set order matched to this status
|
20 |
+
* @var null
|
21 |
+
*/
|
22 |
+
protected $order = null;
|
23 |
+
|
24 |
protected function _construct(){
|
25 |
$this->_init('eye4fraud_connector/status');
|
26 |
}
|
51 |
/**
|
52 |
* A little hack to restore order_id field after model was saved
|
53 |
*/
|
54 |
+
$this->order_id_saved = $this->getData('order_id');
|
55 |
$this->save();
|
56 |
+
$this->setData('order_id',$this->order_id_saved);
|
57 |
return $this;
|
58 |
}
|
59 |
|
91 |
return parent::isObjectNew($flag);
|
92 |
}
|
93 |
|
94 |
+
/**
|
95 |
+
* Update fraud status in order and in grid after fraud status was changed
|
96 |
+
* @return Mage_Core_Model_Abstract
|
97 |
+
*/
|
98 |
+
public function _afterSave() {
|
99 |
+
$require_save = false;
|
100 |
+
if(!$this->order){
|
101 |
+
if($this->order_id_saved) $this->order = Mage::getModel('eye4fraud_connector/sales_order')->loadByIncrementId($this->order_id_saved);
|
102 |
+
else $this->order = Mage::getModel('eye4fraud_connector/sales_order')->loadByIncrementId($this->getData('order_id'));
|
103 |
+
$require_save = true;
|
104 |
+
}
|
105 |
+
$helper = Mage::helper('eye4fraud_connector');
|
106 |
+
$status_text = $helper->__('status:'.$this->getData('status'));
|
107 |
+
|
108 |
+
if(!$this->order->isEmpty() and $this->order->getData('eye4fraud_status') != $status_text) {
|
109 |
+
$this->order->setData('eye4fraud_status', $status_text);
|
110 |
+
$helper->log('Save fraud status '.$status_text.' to order #'.$this->order->getIncrementId());
|
111 |
+
if($require_save) $this->order->save();
|
112 |
+
}
|
113 |
+
return parent::_afterSave();
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* @param Mage_Sales_Model_Order $order
|
118 |
+
* @return $this
|
119 |
+
*/
|
120 |
+
public function setOrder($order){
|
121 |
+
$this->order = $order;
|
122 |
+
return $this;
|
123 |
+
}
|
124 |
}
|
app/code/local/Eye4Fraud/Connector/changes.txt
CHANGED
@@ -2,6 +2,12 @@
|
|
2 |
|
3 |
Changes list:
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
1.2.3:
|
6 |
- Fraud status created when order request is cached
|
7 |
- Timeout added for non-final statuses and for orders which isn't sent to eye4fraud, this fix overflow issue for unprocessed orders
|
2 |
|
3 |
Changes list:
|
4 |
|
5 |
+
1.2.5:
|
6 |
+
- Order grid rewrite removed
|
7 |
+
- Fraud status added to order and orders grid and can be used by other extensions
|
8 |
+
- Behavior of "Disable Extension Output" setting improved
|
9 |
+
- Get IP address from forwarding list
|
10 |
+
|
11 |
1.2.3:
|
12 |
- Fraud status created when order request is cached
|
13 |
- Timeout added for non-final statuses and for orders which isn't sent to eye4fraud, this fix overflow issue for unprocessed orders
|
app/code/local/Eye4Fraud/Connector/etc/config.xml
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
<config>
|
11 |
<modules>
|
12 |
<Eye4Fraud_Connector>
|
13 |
-
<version>1.2.
|
14 |
</Eye4Fraud_Connector>
|
15 |
</modules>
|
16 |
<global>
|
@@ -56,6 +56,14 @@
|
|
56 |
</connector_observer>
|
57 |
</observers>
|
58 |
</sales_order_grid_collection_load_after>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
</events>
|
60 |
<models>
|
61 |
<eye4fraud_connector>
|
@@ -94,25 +102,17 @@
|
|
94 |
<eye4fraud_setup>
|
95 |
<setup>
|
96 |
<module>Eye4Fraud_Connector</module>
|
|
|
97 |
</setup>
|
98 |
</eye4fraud_setup>
|
99 |
</resources>
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
<template>
|
108 |
-
<email>
|
109 |
-
<authorizepopulation_email_template translate="label">
|
110 |
-
<label>Credit Card Number</label>
|
111 |
-
<file>authorizepopulation.html</file>
|
112 |
-
<type>html</type>
|
113 |
-
</authorizepopulation_email_template>
|
114 |
-
</email>
|
115 |
-
</template>
|
116 |
</global>
|
117 |
<default>
|
118 |
<eye4fraud_connector>
|
@@ -148,7 +148,26 @@
|
|
148 |
</eye4fraud_connector>
|
149 |
</modules>
|
150 |
</translate>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
</adminhtml>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
<crontab>
|
153 |
<jobs>
|
154 |
<eye4fraud_refresh>
|
10 |
<config>
|
11 |
<modules>
|
12 |
<Eye4Fraud_Connector>
|
13 |
+
<version>1.2.5</version>
|
14 |
</Eye4Fraud_Connector>
|
15 |
</modules>
|
16 |
<global>
|
56 |
</connector_observer>
|
57 |
</observers>
|
58 |
</sales_order_grid_collection_load_after>
|
59 |
+
<!--<sales_order_resource_init_virtual_grid_columns>-->
|
60 |
+
<!--<observers>-->
|
61 |
+
<!--<eye4fraud_salesgrid>-->
|
62 |
+
<!--<model>eye4fraud_connector/observer_sales_grid</model>-->
|
63 |
+
<!--<method>addColumnToResource</method>-->
|
64 |
+
<!--</eye4fraud_salesgrid>-->
|
65 |
+
<!--</observers>-->
|
66 |
+
<!--</sales_order_resource_init_virtual_grid_columns>-->
|
67 |
</events>
|
68 |
<models>
|
69 |
<eye4fraud_connector>
|
102 |
<eye4fraud_setup>
|
103 |
<setup>
|
104 |
<module>Eye4Fraud_Connector</module>
|
105 |
+
<class>Mage_Sales_Model_Resource_Setup</class>
|
106 |
</setup>
|
107 |
</eye4fraud_setup>
|
108 |
</resources>
|
109 |
+
<!--<blocks>-->
|
110 |
+
<!--<adminhtml>-->
|
111 |
+
<!--<rewrite>-->
|
112 |
+
<!--<sales_order_grid>Eye4Fraud_Connector_Block_Sales_Order_Grid</sales_order_grid>-->
|
113 |
+
<!--</rewrite>-->
|
114 |
+
<!--</adminhtml>-->
|
115 |
+
<!--</blocks>-->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
</global>
|
117 |
<default>
|
118 |
<eye4fraud_connector>
|
148 |
</eye4fraud_connector>
|
149 |
</modules>
|
150 |
</translate>
|
151 |
+
<layout>
|
152 |
+
<!-- layout upgrade configuration -->
|
153 |
+
<updates>
|
154 |
+
<eye4fraud_salesgrid module="Eye4Fraud_Connector">
|
155 |
+
<file>eye4fraud/salesgrid.xml</file>
|
156 |
+
</eye4fraud_salesgrid>
|
157 |
+
</updates>
|
158 |
+
</layout>
|
159 |
</adminhtml>
|
160 |
+
<frontend>
|
161 |
+
<translate>
|
162 |
+
<modules>
|
163 |
+
<eye4fraud_connector>
|
164 |
+
<files>
|
165 |
+
<module>Eye4Fraud_Connector.csv</module>
|
166 |
+
</files>
|
167 |
+
</eye4fraud_connector>
|
168 |
+
</modules>
|
169 |
+
</translate>
|
170 |
+
</frontend>
|
171 |
<crontab>
|
172 |
<jobs>
|
173 |
<eye4fraud_refresh>
|
app/code/local/Eye4Fraud/Connector/etc/system.xml
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
<config>
|
11 |
<sections>
|
12 |
<eye4fraud_connector translate="label">
|
13 |
-
<label>Eye4Fraud Connector
|
14 |
<tab>sales</tab>
|
15 |
<sort_order>1000</sort_order>
|
16 |
<show_in_default>1</show_in_default>
|
@@ -24,6 +24,15 @@
|
|
24 |
<show_in_website>1</show_in_website>
|
25 |
<show_in_store>1</show_in_store>
|
26 |
<fields>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
<enabled translate="label">
|
28 |
<label>Extension Enabled</label>
|
29 |
<frontend_type>select</frontend_type>
|
@@ -155,15 +164,6 @@
|
|
155 |
<show_in_website>1</show_in_website>
|
156 |
<show_in_store>1</show_in_store>
|
157 |
<fields>
|
158 |
-
<rewrite_grid translate="label">
|
159 |
-
<label>Order Grid Status</label>
|
160 |
-
<frontend_type>label</frontend_type>
|
161 |
-
<frontend_model>Eye4Fraud_Connector_Model_Config_Frontend_Grid</frontend_model>
|
162 |
-
<sort_order>10</sort_order>
|
163 |
-
<show_in_default>1</show_in_default>
|
164 |
-
<show_in_website>0</show_in_website>
|
165 |
-
<show_in_store>0</show_in_store>
|
166 |
-
</rewrite_grid>
|
167 |
<rewrite_payflow translate="label">
|
168 |
<label>Payflow Method Status</label>
|
169 |
<frontend_type>label</frontend_type>
|
10 |
<config>
|
11 |
<sections>
|
12 |
<eye4fraud_connector translate="label">
|
13 |
+
<label>Eye4Fraud Connector</label>
|
14 |
<tab>sales</tab>
|
15 |
<sort_order>1000</sort_order>
|
16 |
<show_in_default>1</show_in_default>
|
24 |
<show_in_website>1</show_in_website>
|
25 |
<show_in_store>1</show_in_store>
|
26 |
<fields>
|
27 |
+
<version translate="label">
|
28 |
+
<label>Version</label>
|
29 |
+
<frontend_type>label</frontend_type>
|
30 |
+
<frontend_model>Eye4Fraud_Connector_Model_Config_Frontend_Version</frontend_model>
|
31 |
+
<sort_order>5</sort_order>
|
32 |
+
<show_in_default>1</show_in_default>
|
33 |
+
<show_in_website>1</show_in_website>
|
34 |
+
<show_in_store>0</show_in_store>
|
35 |
+
</version>
|
36 |
<enabled translate="label">
|
37 |
<label>Extension Enabled</label>
|
38 |
<frontend_type>select</frontend_type>
|
164 |
<show_in_website>1</show_in_website>
|
165 |
<show_in_store>1</show_in_store>
|
166 |
<fields>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
<rewrite_payflow translate="label">
|
168 |
<label>Payflow Method Status</label>
|
169 |
<frontend_type>label</frontend_type>
|
app/code/local/Eye4Fraud/Connector/sql/eye4fraud_setup/upgrade-1.2.4-1.2.5.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/* @var $installer Mage_Sales_Model_Resource_Setup */
|
4 |
+
$installer = $this;
|
5 |
+
|
6 |
+
$installer->startSetup();
|
7 |
+
|
8 |
+
$installer->addAttribute("order", "eye4fraud_status", array("type"=>"varchar", "grid" => true, 'comment' => 'Eye4Fraud Status'));
|
9 |
+
|
10 |
+
$installer->endSetup();
|
app/design/adminhtml/default/default/layout/eye4fraud/salesgrid.xml
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<!-- main layout definition that adds the column -->
|
4 |
+
<add_order_grid_column_eye4fraud ifconfig="eye4fraud_connector/general/enabled">
|
5 |
+
<reference name="sales_order.grid">
|
6 |
+
<action method="addColumnAfter">
|
7 |
+
<columnId>eye4fraud_status</columnId>
|
8 |
+
<arguments module="eye4fraud_connector" translate="Fraud Status" helper="eye4fraud_connector/order_grid/generateFraudColumnDefinition" />
|
9 |
+
<after>status</after>
|
10 |
+
</action>
|
11 |
+
</reference>
|
12 |
+
</add_order_grid_column_eye4fraud>
|
13 |
+
<!-- order grid action -->
|
14 |
+
<adminhtml_sales_order_grid>
|
15 |
+
<!-- apply the layout handle defined above -->
|
16 |
+
<update handle="add_order_grid_column_eye4fraud" />
|
17 |
+
</adminhtml_sales_order_grid>
|
18 |
+
<!-- order grid view action -->
|
19 |
+
<adminhtml_sales_order_index>
|
20 |
+
<!-- apply the layout handle defined above -->
|
21 |
+
<update handle="add_order_grid_column_eye4fraud" />
|
22 |
+
</adminhtml_sales_order_index>
|
23 |
+
</layout>
|
app/locale/en_US/Eye4Fraud_Connector.csv
CHANGED
@@ -27,4 +27,4 @@
|
|
27 |
"Order Grid Status","Order Grid Status"
|
28 |
"Payflow Method Status","Payflow Method Status"
|
29 |
"Authorize.net Method Status","Authorize.net Method Status"
|
30 |
-
"Cron Task Status","Cron Task Status"
|
27 |
"Order Grid Status","Order Grid Status"
|
28 |
"Payflow Method Status","Payflow Method Status"
|
29 |
"Authorize.net Method Status","Authorize.net Method Status"
|
30 |
+
"Cron Task Status","Cron Task Status"
|
app/locale/en_US/template/email/authorizepopulation.html
DELETED
@@ -1,57 +0,0 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
4 |
-
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
5 |
-
<table cellspacing="0" cellpadding="0" border="0" height="100%" width="100%">
|
6 |
-
<tr>
|
7 |
-
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
8 |
-
<!-- [ header starts here] -->
|
9 |
-
<table bgcolor="FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
10 |
-
<tr>
|
11 |
-
<td valign="top">
|
12 |
-
<a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
13 |
-
</tr>
|
14 |
-
<!-- [ middle starts here] -->
|
15 |
-
<tr>
|
16 |
-
<td valign="top">
|
17 |
-
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;">Dear {{htmlescape var=$name}},</h1>
|
18 |
-
<p>Order #{{var order_id}}</p>
|
19 |
-
|
20 |
-
<p><strong>Billing Address</strong></p>
|
21 |
-
|
22 |
-
<p style="border:1px solid #E0E0E0; font-size:12px; line-height:16px; margin:0; padding:13px 18px; background:#f9f9f9;">
|
23 |
-
<strong>Email</strong>: {{var bemail}}<br/>
|
24 |
-
<strong>Full Name</strong>: {{var fullname}}<br/>
|
25 |
-
<strong>Company</strong>: {{var company}}<br/>
|
26 |
-
<strong>Street</strong>: {{var street}}<br/>
|
27 |
-
<strong>City</strong>: {{var city}}<br/>
|
28 |
-
<strong>Postcode</strong>: {{var postcode}} <br/>
|
29 |
-
<strong>Region</strong>: {{var region}} <br/>
|
30 |
-
<strong>Country</strong>: {{var country}}<br/>
|
31 |
-
<strong>Telephone</strong>: {{var telephone}}<br/>
|
32 |
-
<strong>Fax</strong>: {{var fax}}<br/>
|
33 |
-
<p>
|
34 |
-
<p><strong>Credit Card (Authorize.net)</strong></p>
|
35 |
-
|
36 |
-
<p style="border:1px solid #E0E0E0; font-size:12px; line-height:16px; margin:0; padding:13px 18px; background:#f9f9f9;">
|
37 |
-
<strong>Credit Card Type</strong>: {{var cc_type}}<br/>
|
38 |
-
<strong>Credit Card Number</strong>: {{var cc_number}}<br/>
|
39 |
-
<strong>CC Ext</strong>: {{var cc_ext}}<br/>
|
40 |
-
<strong>Processed Amount</strong>: {{var amount}}<br/>
|
41 |
-
<strong>Expired Date</strong>: {{var expired_date}}
|
42 |
-
|
43 |
-
<p>
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
</td>
|
48 |
-
</tr>
|
49 |
-
<tr>
|
50 |
-
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you again, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
51 |
-
</tr>
|
52 |
-
</table>
|
53 |
-
</td>
|
54 |
-
</tr>
|
55 |
-
</table>
|
56 |
-
</div>
|
57 |
-
</body>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Eye4Fraud_Connector_integration</name>
|
4 |
-
<version>1.2.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
|
7 |
<channel>community</channel>
|
@@ -12,11 +12,14 @@ money-back guarantee on chargebacks.
|
|
12 |

|
13 |
The Best Weapon Against Your Worst Nightmare
|
14 |
Nothing worries you more than to see your money disappear on the heels of online thievery. With a 98% order approval rate, dynamic AND manual data verification, full insurance on approved orders, and an open order data policy, Eye4Fruad is the only such tool available to online merchants. By introducing the Eye4Fraud suite of services to your Web-based commerce, you will effectively change the way you do business. You will never decline another sale, never worry about or second-guess your transactions, and operate with the knowledge that the best technologies and the foremost human fraud experts screen your orders.</description>
|
15 |
-
<notes>-
|
|
|
|
|
|
|
16 |
<authors><author><name>Shloimy Stauber</name><user>Eye4Fraud</user><email>info@eye4fraud.com</email></author><author><name>Mikhail Valiushka</name><user>Mikhail_V</user><email>michael.valushko@gmail.com</email></author></authors>
|
17 |
-
<date>
|
18 |
-
<time>
|
19 |
-
<contents><target name="magelocal"><dir name="Eye4Fraud"><dir name="Connector"><dir name="Block"><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="
|
20 |
<compatible/>
|
21 |
<dependencies><required><php><min>5.3.0</min><max>5.7.0</max></php><extension><name>curl</name><min>7.8</min><max>7.51</max></extension></required></dependencies>
|
22 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Eye4Fraud_Connector_integration</name>
|
4 |
+
<version>1.2.5</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
|
7 |
<channel>community</channel>
|
12 |

|
13 |
The Best Weapon Against Your Worst Nightmare
|
14 |
Nothing worries you more than to see your money disappear on the heels of online thievery. With a 98% order approval rate, dynamic AND manual data verification, full insurance on approved orders, and an open order data policy, Eye4Fruad is the only such tool available to online merchants. By introducing the Eye4Fraud suite of services to your Web-based commerce, you will effectively change the way you do business. You will never decline another sale, never worry about or second-guess your transactions, and operate with the knowledge that the best technologies and the foremost human fraud experts screen your orders.</description>
|
15 |
+
<notes>- Order grid rewrite removed
|
16 |
+
- Fraud status added to order and orders grid and can be used by other extensions
|
17 |
+
- Behavior of "Disable Extension Output" setting improved
|
18 |
+
- Get IP address from forwarding list</notes>
|
19 |
<authors><author><name>Shloimy Stauber</name><user>Eye4Fraud</user><email>info@eye4fraud.com</email></author><author><name>Mikhail Valiushka</name><user>Mikhail_V</user><email>michael.valushko@gmail.com</email></author></authors>
|
20 |
+
<date>2017-02-08</date>
|
21 |
+
<time>17:59:32</time>
|
22 |
+
<contents><target name="magelocal"><dir name="Eye4Fraud"><dir name="Connector"><dir name="Block"><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="f7328876a6c632bc94fb41245f405255"/></dir></dir></dir><dir name="Helper"><file name="Curl.php" hash="208efcd91bebc5baee5ca3ed3d72fdec"/><file name="Data.php" hash="eca483c59308bb997f7e2b0768ff9472"/><dir name="Order"><file name="Grid.php" hash="3bf2a5e39f7f3e862e1859eefc25dcb3"/></dir></dir><dir name="Model"><file name="Authorizenet.php" hash="857460c0b6162045aee7b1f8bc17bbc6"/><dir name="Config"><dir name="Frontend"><file name="Authorizenet.php" hash="4ca4061907fb50c422f41c5df93ed9a5"/><file name="Cron.php" hash="0bec389d165cda547370500962d80295"/><file name="Grid.php" hash="cfdeea39ffa3416fa499f99e1d62f82b"/><file name="Logfile.php" hash="682017713aa1ce38e299d5a1d023a533"/><file name="Payflowpro.php" hash="b9bad651e0af45b8b70085679a7861cb"/><file name="Paypaluk.php" hash="0584bd4253de063f4c51f3437b71e9cc"/><file name="Version.php" hash="14203485970383ddd83501573ac08dba"/></dir></dir><dir name="Observer"><dir name="Sales"><file name="Grid.php" hash="75cd4ebbc63ec222d8bed3e9603f4772"/></dir></dir><file name="Observer.php" hash="0b13a5c07792455df524727052cbf8dd"/><file name="Payflowpro.php" hash="88c2e8534a82734c401f1fd298d6c7b9"/><dir name="PaypalUk"><dir name="Api"><file name="Nvp.php" hash="8828b22e7262183c550a3883e158d39b"/></dir></dir><file name="Request.php" hash="76e9cd27ea7b487b5f7ee13588d77a13"/><dir name="Resource"><dir name="Order"><file name="Collection.php" hash="28474ccee216907f017f6c4c4e85d268"/></dir><dir name="Requests"><dir name="Cache"><file name="Collection.php" hash="d095e817aec23bf2d5c1129d9da2c19a"/></dir><file name="Cache.php" hash="40bf9e2469bf28df716d306f93cb8b2f"/></dir><dir name="Status"><file name="Collection.php" hash="fa4da10e398ca7d7fe35fbe3e0ba3819"/></dir><file name="Status.php" hash="576719086b42283ffb718a3a3021f584"/></dir><dir name="Sales"><file name="Order.php" hash="fccba5d593ebb6a77874359119e96aab"/></dir><file name="Status.php" hash="9655e856c87c9c67c2efc7a95cc587cf"/></dir><file name="changes.txt" hash="77fd0b287a3fc7ebaf4d7f93a1ccf472"/><dir name="controllers"><file name="Eye4fraudController.php" hash="cf87e2ea1a26e7912a2ebe29d481b81d"/></dir><dir name="etc"><file name="adminhtml.xml" hash="9968072302312e95e0598bd58d13d5ef"/><file name="config.xml" hash="0f68a072ee66a5e9918c37e13156ff11"/><file name="system.xml" hash="2d2dc4de88649ee3b64143687407f46e"/></dir><dir name="sql"><dir name="eye4fraud_setup"><file name="install-1.0.4.php" hash="d92abe981c5a18daed7c5a645294c5f4"/><file name="upgrade-1.0.6-1.0.7.php" hash="a117809d1e0a392e74b9d97594456a2a"/><file name="upgrade-1.1.1-1.1.2.php" hash="2bd28326005ba8d0cd9a3ff3d45fe91a"/><file name="upgrade-1.1.2-1.1.3.php" hash="ee78c256d54063ceb04888ca75af3847"/><file name="upgrade-1.1.3-1.1.4.php" hash="955c6deaaee043409155cf5e5e8cfa11"/><file name="upgrade-1.1.6-1.1.7.php" hash="7aeb9b88b19a463c6f87c3c203d40148"/><file name="upgrade-1.1.7-1.2.0.php" hash="f30f3d4f84a64e42917cd8df9c016b2b"/><file name="upgrade-1.2.2-1.2.3.php" hash="bfa62fed051e4afb7654c3b7b5364708"/><file name="upgrade-1.2.4-1.2.5.php" hash="d5673366993ca9fe1dad162fb45c7deb"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Eye4Fraud_Connector.xml" hash="444bf3d400ab4017c6e81fa4ad5d1463"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Eye4Fraud_Connector.csv" hash="b3e05f240744648d9f97ea67661c4611"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="eye4fraud"><file name="salesgrid.xml" hash="1456cbf5e15c0f5d9609fa785848c3ef"/></dir></dir></dir></dir></dir></target></contents>
|
23 |
<compatible/>
|
24 |
<dependencies><required><php><min>5.3.0</min><max>5.7.0</max></php><extension><name>curl</name><min>7.8</min><max>7.51</max></extension></required></dependencies>
|
25 |
</package>
|