diff --git a/Helper/LogHelper.php b/Helper/LogHelper.php
index 553e9d02..78716920 100644
--- a/Helper/LogHelper.php
+++ b/Helper/LogHelper.php
@@ -27,7 +27,7 @@ class LogHelper
protected $_log;
public function __construct(
- LoggerInterface $logger,
+ \Signifyd\Connect\Logger\Logger $logger,
ScopeConfigInterface $scopeConfig
) {
$this->_log = $scopeConfig->getValue('signifyd/logs/log', 'store');
diff --git a/Helper/PurchaseHelper.php b/Helper/PurchaseHelper.php
index 00e000d2..a5620c58 100644
--- a/Helper/PurchaseHelper.php
+++ b/Helper/PurchaseHelper.php
@@ -109,9 +109,11 @@ protected function getIPAddress(Order $order)
* @param $ip
* @return mixed
*/
- protected function filterIp($ip)
+ protected function filterIp($ipString)
{
$matches = array();
+ $ipArray = explode(',', $ipString);
+ $ip = $ipArray[0];
// Uses format IPv4
if (preg_match('/[0-9]{1,3}(?:\.[0-9]{1,3}){3}/', $ip, $matches)) {
@@ -372,4 +374,16 @@ public function postCaseToSignifyd($caseData, $order)
return $id;
}
+
+ /**
+ * Check if case has guaranty
+ * @param $order
+ * @return bool
+ */
+ public function hasGuaranty($order)
+ {
+ $case = $this->getCase($order);
+ return ($case->getGuarantee() == 'N/A')? false : true;
+ }
+
}
diff --git a/Logger/Handler.php b/Logger/Handler.php
new file mode 100644
index 00000000..7f6b58a7
--- /dev/null
+++ b/Logger/Handler.php
@@ -0,0 +1,23 @@
+_helper->doesCaseExist($order)) {
- return;
+ // backup hold order
+ $this->holdOrder($order);
}
$orderData = $this->_helper->processOrderData($order);
@@ -74,17 +77,39 @@ public function execute(Observer $observer)
// Post case to signifyd service
$result = $this->_helper->postCaseToSignifyd($orderData, $order);
- if($order->canHold()){
- $order->hold()->getResource()->save($order);
- }
+ // Initial hold order
+ $this->holdOrder($order);
if($result){
$case->setCode($result);
$case->setMagentoStatus(CaseRetry::IN_REVIEW_STATUS)->setUpdated(strftime('%Y-%m-%d %H:%M:%S', time()));
- $case->getResource()->save($case);
+ try {
+ $case->getResource()->save($case);
+ $this->_logger->debug('Case saved. Order No:' . $order->getIncrementId());
+ } catch (\Exception $e) {
+ $this->_logger->error('Exception in: ' . __FILE__ . ', on line: ' . __LINE__);
+ $this->_logger->error('Exception:' . $e->__toString());
+ }
}
} catch (\Exception $ex) {
$this->_logger->error($ex->getMessage());
}
}
+
+ public function holdOrder($order)
+ {
+ if($order->canHold()){
+ if(in_array($order->getPayment()->getMethod(), $this->specialMethods)){
+ if(!$order->getEmailSent()){ return false; }
+ if($this->_helper->hasGuaranty($order)) { return false; }
+ }
+
+ if(!$this->_helper->hasGuaranty($order)) {
+ $this->_logger->debug('Purchase Observer Order Hold: No: ' . $order->getIncrementId());
+ $order->hold()->getResource()->save($order);
+ }
+ }
+
+ return true;
+ }
}
diff --git a/composer.json b/composer.json
index 7b5aef90..e08561c2 100644
--- a/composer.json
+++ b/composer.json
@@ -6,7 +6,7 @@
"signifyd/signifyd-php":"0.1.*"
},
"type": "magento2-module",
- "version": "2.0.4",
+ "version": "2.0.5",
"autoload": {
"files": [ "registration.php" ],
"psr-4": {
diff --git a/etc/di.xml b/etc/di.xml
index 555c6409..15c85801 100644
--- a/etc/di.xml
+++ b/etc/di.xml
@@ -9,4 +9,17 @@
+
+
+ Magento\Framework\Filesystem\Driver\File
+
+
+
+
+ SignifydLogger
+
+ - Signifyd\Connect\Logger\Handler
+
+
+
diff --git a/etc/module.xml b/etc/module.xml
index ec4bdfe1..72027f73 100644
--- a/etc/module.xml
+++ b/etc/module.xml
@@ -5,7 +5,7 @@
*/
-->
-
+