/**
  * {@inheritdoc}
  */
 public function processEvent(TrackingVisitEvent $trackingVisitEvent)
 {
     $code = $trackingVisitEvent->getWebEvent()->getCode();
     $campaign = $this->em->getRepository('OroCRMCampaignBundle:Campaign')->findOneBy(['code' => $code]);
     if ($campaign) {
         return [$campaign];
     }
     return [];
 }
 /**
  * {@inheritdoc}
  */
 public function processEvent(TrackingVisitEvent $trackingVisitEvent)
 {
     $targets = [];
     // identifier
     $targets[] = $trackingVisitEvent->getVisit()->getIdentifierTarget();
     $channel = $trackingVisitEvent->getVisit()->getTrackingWebsite()->getChannel();
     $eventName = $trackingVisitEvent->getEvent()->getName();
     $eventValue = $trackingVisitEvent->getWebEvent()->getValue();
     switch ($eventName) {
         case self::EVENT_CART_ITEM_ADDED:
             $targets[] = $this->em->getRepository('OroCRMMagentoBundle:Product')->findOneBy(['originId' => (int) $eventValue]);
             break;
         case self::EVENT_ORDER_PLACE_SUCCESS:
             $targets[] = $this->em->getRepository('OroCRMMagentoBundle:Order')->findOneBy(['subtotalAmount' => $eventValue, 'dataChannel' => $channel]);
             break;
         case self::EVENT_ORDER_PLACED:
             $targets[] = $this->em->getRepository('OroCRMMagentoBundle:Order')->findOneBy(['incrementId' => $eventValue, 'dataChannel' => $channel]);
             break;
         case self::EVENT_CHECKOUT_STARTED:
             $targets[] = $this->em->getRepository('OroCRMMagentoBundle:Cart')->findOneBy(['subTotal' => $eventValue, 'dataChannel' => $channel]);
             break;
         case self::EVENT_CUSTOMER_LOGOUT:
             $targets[] = $this->em->getRepository('OroCRMMagentoBundle:Customer')->findOneBy(['originId' => (int) $eventValue, 'dataChannel' => $channel]);
             break;
     }
     return $targets;
 }