From 00c3f360dce31d8903f5309aabebab860f371956 Mon Sep 17 00:00:00 2001 From: Soleil Cotterell Date: Thu, 15 Jun 2023 19:44:25 -0500 Subject: [PATCH] fix: Don't cancel if refund fails --- Cron/OrderFraudStatus.php | 9 ++++++++- Order/Processor.php | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Cron/OrderFraudStatus.php b/Cron/OrderFraudStatus.php index 8ca8312..b128439 100644 --- a/Cron/OrderFraudStatus.php +++ b/Cron/OrderFraudStatus.php @@ -143,7 +143,14 @@ public function updateOrdersFromNoFraudApiResult($orders, $storeId) } if ($this->configHelper->getAutoCancel($storeId)) { if (isset($decision) && ($decision == 'fail' || $decision == "fraudulent")) { - $this->orderProcessor->handleAutoCancel($order, $decision); + // If auto-cancel fails, then update the order status to the configured status + if(!$this->orderProcessor->handleAutoCancel($order, $decision)){ + if (!empty($newStatus)) { + $this->orderProcessor->updateOrderStatusFromNoFraudResult($newStatus, $order, $response); + } else { + $order->setNofraudStatus($decision); + } + } continue; } } diff --git a/Order/Processor.php b/Order/Processor.php index c2dc4c3..f4c4c27 100644 --- a/Order/Processor.php +++ b/Order/Processor.php @@ -164,8 +164,11 @@ public function handleAutoCancel($order, $decision) $order->setState(Order::STATE_CANCELED); $order->setStatus($order->getConfig()->getStateDefaultStatus(Order::STATE_CANCELED)); $order->save(); + + return true; } } + return false; } /**