Files
ltsecurityinc/app/code/JR/NetSuite/Observer/OrderPlaceAfter.php
T

90 lines
2.2 KiB
PHP
Executable File

<?php
namespace JR\NetSuite\Observer;
use Magento\Framework\Event\ObserverInterface;
use JR\NetSuite\Helper\Data;
use JR\NetSuite\Logger\Logger;
use JR\NetSuite\Model\Queue\OrderToQueue;
use Magento\Framework\Serialize\Serializer\Json;
use Magento\Framework\Serialize\SerializerInterface;
use Magento\MessageQueue\Model\Publisher;
use \Magento\Framework\MessageQueue\ConsumerInterface;
class OrderPlaceAfter implements ObserverInterface
{
/**
* @var Data
*/
protected $helper;
/**
* @var Logger
*/
protected $logger;
/**
* @var Json
*/
protected $json;
/**
* @var OrderToQueue
*/
protected $publisher;
public function __construct(
Data $helper,
Logger $logger,
Json $json,
OrderToQueue $publisher,
)
{
$this->helper = $helper;
$this->logger = $logger;
$this->json = $json;
$this->publisher = $publisher;
}
public function execute(\Magento\Framework\Event\Observer $observer)
{
if (!$this->helper->getNetSuiteIsEnabled()) {
return $this;
}
$order = $observer->getEvent()->getOrder();
$customerEmail = $order->getCustomerEmail();
$orderId = $order->getRealOrderId();
$this->logger->info('OrderPlace observer executed');
$this->logger->info('Order ID: ' . $order->getRealOrderId());
$orderStatus = $order->getState();
if ($orderStatus == 'pending') {
$this->logger->info('OrderPlace observer: Order status is pending');
return $this;
}
$collectedData = [
'order_id' => $orderId,
'customer_email' => $customerEmail,
'order_status' => $orderStatus
];
$this->publish($this->json->serialize($collectedData));
$msg = "\n".date('YmdHis')." increment id ".$order->getIncrementId(). " | entity_id ".$order->getId() ." | paymentMethodCode ".$order->getPayment()->getMethod();
return $this;
}
/**
* Publishing data
*
* @param $data
* @return void
*/
public function publish($data)
{
$this->publisher->publishData($data);
}
}