ReportOrderPlacedToNewRelic.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. use Magento\NewRelicReporting\Model\NewRelicWrapper;
  11. /**
  12. * Class ReportOrderPlacedToNewRelic
  13. */
  14. class ReportOrderPlacedToNewRelic implements ObserverInterface
  15. {
  16. /**
  17. * @var Config
  18. */
  19. protected $config;
  20. /**
  21. * @var NewRelicWrapper
  22. */
  23. protected $newRelicWrapper;
  24. /**
  25. * @param Config $config
  26. * @param NewRelicWrapper $newRelicWrapper
  27. */
  28. public function __construct(
  29. Config $config,
  30. NewRelicWrapper $newRelicWrapper
  31. ) {
  32. $this->config = $config;
  33. $this->newRelicWrapper = $newRelicWrapper;
  34. }
  35. /**
  36. * Reports orders placed to New Relic
  37. *
  38. * @param Observer $observer
  39. * @return void
  40. */
  41. public function execute(Observer $observer)
  42. {
  43. if ($this->config->isNewRelicEnabled()) {
  44. /** @var \Magento\Sales\Model\Order $order */
  45. $order = $observer->getEvent()->getOrder();
  46. $itemCount = $order->getTotalItemCount();
  47. if (!is_numeric($itemCount) && empty($itemCount)) {
  48. $itemCount = $order->getTotalQtyOrdered();
  49. }
  50. $this->newRelicWrapper->addCustomParameter(Config::ORDER_PLACED, 1);
  51. $this->newRelicWrapper->addCustomParameter(Config::ORDER_ITEMS, $itemCount);
  52. $this->newRelicWrapper->addCustomParameter(Config::ORDER_VALUE, $order->getBaseGrandTotal());
  53. }
  54. }
  55. }