ReportOrderPlaced.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\NewRelicReporting\Model\Observer;
  7. use Magento\Framework\Event\Observer;
  8. use Magento\Framework\Event\ObserverInterface;
  9. use Magento\NewRelicReporting\Model\Config;
  10. /**
  11. * Class ReportOrderPlaced
  12. */
  13. class ReportOrderPlaced implements ObserverInterface
  14. {
  15. /**
  16. * @var Config
  17. */
  18. protected $config;
  19. /**
  20. * @var \Magento\NewRelicReporting\Model\OrdersFactory
  21. */
  22. protected $ordersFactory;
  23. /**
  24. * @param Config $config
  25. * @param \Magento\NewRelicReporting\Model\OrdersFactory $ordersFactory
  26. */
  27. public function __construct(
  28. Config $config,
  29. \Magento\NewRelicReporting\Model\OrdersFactory $ordersFactory
  30. ) {
  31. $this->config = $config;
  32. $this->ordersFactory = $ordersFactory;
  33. }
  34. /**
  35. * Reports orders placed to the database reporting_orders table
  36. *
  37. * @param Observer $observer
  38. * @return void
  39. */
  40. public function execute(Observer $observer)
  41. {
  42. if ($this->config->isNewRelicEnabled()) {
  43. /** @var \Magento\Sales\Model\Order $order */
  44. $order = $observer->getEvent()->getOrder();
  45. $itemCount = $order->getTotalItemCount();
  46. if (!is_numeric($itemCount) && empty($itemCount)) {
  47. $itemCount = $order->getTotalQtyOrdered();
  48. }
  49. $modelData = [
  50. 'customer_id' => $order->getCustomerId(),
  51. 'total' => $order->getGrandTotal(),
  52. 'total_base' => $order->getBaseGrandTotal(),
  53. 'item_count' => $itemCount,
  54. ];
  55. /** @var \Magento\NewRelicReporting\Model\Orders $orderModel */
  56. $orderModel = $this->ordersFactory->create();
  57. $orderModel->setData($modelData);
  58. $orderModel->save();
  59. }
  60. }
  61. }