public function process(Pap_Db_Visit $visit) { Gpf_Log::debug('Action processor processing...'); $accountContext = $this->processAccount($visit); if (!$accountContext->getDoTrackerSave()) { Gpf_Log::debug('Saving disabled because of account problems.'); return; } $this->visitorAffiliateCache->setAccountId($accountContext->getAccountId()); try { $actions = $this->loadActions($visit->getSaleParams()); } catch (Gpf_Exception $e) { Gpf_Log::debug('Action processor: ' . $e->getMessage()); return; } foreach ($actions as $action) { $context = new Pap_Contexts_Action($action, $visit); $context->debug('Saving sale/action for visit: '.$visit->toText()); $context->setDoCommissionsSave(true); $context->setAccountId($accountContext->getAccountId(), $accountContext->getAccountRecognizeMethod()); try { $this->processAction($context); } catch (Gpf_Exception $e) { $context->debug("Saving commission interrupted: ".$e->getMessage()); } } }
private function createContext(Pap_Db_Visit $visit) { $context = new Pap_Contexts_Click(); $context->setDoTrackerSave(true); $context->setVisit($visit); $context->setVisitorId($visit->getVisitorId()); $context->setDateCreated($visit->getDateVisit()); $this->accountRecognizer->recognize($context); $this->visitorAffiliateCache->setAccountId($context->getAccountId()); return $context; }
public function process(Pap_Db_Visit $visit) { $visitorId = $visit->getVisitorId(); $this->logMessage('Backward compatibility processor ('.$visitorId.') - started'); if (!$visit->isNewVisitor()) { $this->logMessage('Not new visitor ('.$visitorId.') - stopped'); return; } if ($visit->getCookies() == '') { $this->logMessage('Not old cookie ('.$visitorId.') - stopped'); return; } $this->visitorAffiliateCache->setAccountId(Gpf_Db_Account::DEFAULT_ACCOUNT_ID); $visitorAffiliates = $this->visitorAffiliateCache->getVisitorAffiliateAllRows($visitorId); $this->loadCookies($visit); if ($this->firstClickCookie !== null) { $this->logMessage('Processing first click cookie'); $visitorAffiliates->add($this->createVisitorAffiliate($this->firstClickCookie, $visit)); $visit->setNewVisitor(false); } if ($this->lastClickCookie !== null) { if ($this->firstClickCookie == null || !$this->lastClickCookie->equals($this->firstClickCookie)) { $this->logMessage('Processing last click cookie'); $visitorAffiliates->add($this->createVisitorAffiliate($this->lastClickCookie, $visit)); $visit->setNewVisitor(false); } } if ($this->saleCookie !== null) { $this->logMessage('Processing sale cookie - creating visitor affiliate'); $saleVisitorAffiliate = $this->createVisitorAffiliateFromSale($this->saleCookie, $visit); $this->addSaleToVisitorAffiliates($saleVisitorAffiliate, $visitorAffiliates); $visit->setNewVisitor(false); } $this->logMessage('Backward compatibility - finished'); }
protected function onCampaignRecognized(Pap_Common_Campaign $campaign, Pap_Contexts_Tracking $context) { parent::onCampaignRecognized($campaign, $context); $this->visitorAffiliateCache->setAccountId($context->getAccountId()); }