/**
  * Add product to shopping cart action
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return $this
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     $quoteItem = $observer->getEvent()->getItem();
     if (!$quoteItem->getId() && !$quoteItem->getParentItem()) {
         $productId = $quoteItem->getProductId();
         $this->eventSaver->save(\Magento\Reports\Model\Event::EVENT_PRODUCT_TO_CART, $productId);
     }
     return $this;
 }
 /**
  * Add Product to Compare Products List action
  *
  * Reset count of compared products cache
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     $productId = $observer->getEvent()->getProduct()->getId();
     $viewData = ['product_id' => $productId];
     if ($this->_customerSession->isLoggedIn()) {
         $viewData['customer_id'] = $this->_customerSession->getCustomerId();
     } else {
         $viewData['visitor_id'] = $this->_customerVisitor->getId();
     }
     $this->_productCompFactory->create()->setData($viewData)->save()->calculate();
     $this->eventSaver->save(\Magento\Reports\Model\Event::EVENT_PRODUCT_COMPARE, $productId);
 }
 /**
  * Share customer wishlist action
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     $this->eventSaver->save(\Magento\Reports\Model\Event::EVENT_WISHLIST_SHARE, $observer->getEvent()->getWishlist()->getId());
 }
 /**
  * Send Product link to friends action
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     $this->eventSaver->save(\Magento\Reports\Model\Event::EVENT_PRODUCT_SEND, $observer->getEvent()->getProduct()->getId());
 }