public function addForcedAffiliateToVisitorAffiliates(Pap_Common_VisitorAffiliateCacheCompoundContext $visitorAffiliatesCacheCompoundContext) {
     $context = $visitorAffiliatesCacheCompoundContext->getContext();
     if ($context->getTrackingMethod() != Pap_Common_Transaction::TRACKING_METHOD_FORCED_PARAMETER && 
         $context->getTrackingMethod() != Pap_Common_Transaction::TRACKING_METHOD_COUPON) {
         $context->debug('SplitCommissions - not forced affiliate');
         return;
     }
     
     $context->debug('SplitCommissions - forced affiliate');
     $context->setDateCreated(Gpf_Common_DateUtils::now());
     $this->splitCommissionsSaveVisitorAffiliate($visitorAffiliatesCacheCompoundContext);
 }
Example #2
0
    public function recognizeParameters(Pap_Common_VisitorAffiliateCacheCompoundContext $visitorAffiliateCacheCompoundContext) {
        $context = $visitorAffiliateCacheCompoundContext->getContext();
        $context->debug("Recognizing parameters from coupon started");

        $this->coupon = $this->recognizeCoupon($context);
        if ($this->coupon != null) {
            $this->recognizeAffiliate($context);
            $this->recognizeBanner($context);
            $this->recognizeCampaign($context);
            if ($this->isRecognizedParams()) {
                $this->setRecognizedParams($context);
            }
        }

        $context->debug("Recognizing parameters from Coupon ended");
        return Gpf_Plugins_Engine::PROCESS_CONTINUE;
    }
Example #3
0
 	/**
 	 * checks if lifetime referral exists and if user (affiliate) is still valid
 	 *
 	 * @param Pap_Contexts_Action $context
 	 */
 	public function checkLifetimeReferral(Pap_Common_VisitorAffiliateCacheCompoundContext $visitorAffiliateCompoundContext) {
 	    $context = $visitorAffiliateCompoundContext->getContext();
    	$context->debug(Gpf_Lang::_runtime('PLUGIN LifetimeCommissions checkLifetimeReferral started'));

    	$identifier = $this->getIdentifier($context);
 		if($identifier == null || $identifier == '') {
 			$context->debug("  Identifier (data1) is empty, stopping");
 		} else {
            $user = $this->findUserByIdentifier($context, $identifier);

            if($user != null) {
                $context->setUserObject($user);
            }
 		}

    	$context->debug(Gpf_Lang::_runtime('PLUGIN LifetimeCommissions ended'));
    	$context->debug('');
    	return Gpf_Plugins_Engine::PROCESS_CONTINUE;
 	}
    public function saveVisitorAffiliate(Pap_Common_VisitorAffiliateCacheCompoundContext $cacheCompoundContext) {
        $cacheCompoundContext->setVisitorAffiliateAlreadySaved(true);

        $context = $cacheCompoundContext->getContext();
        $cache = $cacheCompoundContext->getVisitorAffilliateCache();
        $context->debug('Saving VisitorAffiliate by SplitCommissions started');

        Pap_Features_SplitCommissions_VisitorAffiliateCheckCompatibility::getHandlerInstance()->checkCompatibility($context->getVisitorId(), $cache);

        $rows = $cache->getVisitorAffiliateAllRows($context->getVisitorId());
        $oldVisitorAffiliate = null;

        $lastClickVisitorAffiliate = null;
        $firstClickVisitorAffiliate = null;

        foreach ($rows as $row) {
            if (!$row->isValid()) {
                continue;
            }
            if ($firstClickVisitorAffiliate == null ||
            $firstClickVisitorAffiliate->getDateVisit() > $row->getDateVisit()) {
                $firstClickVisitorAffiliate = $row;
            }

            if ($lastClickVisitorAffiliate == null ||
            $lastClickVisitorAffiliate->getDateVisit() < $row->getDateVisit()) {
                $lastClickVisitorAffiliate = $row;
            }

            if ($row->isActual()) {
                $row->setActual(false);
            }
        }

        $oldVisitorAffiliate = $this->findAlreadyStoredVisitorAffiliate($rows, $firstClickVisitorAffiliate, $context);

        if ($firstClickVisitorAffiliate == null) {
            $firstVisitorAffiliate = $cache->createVisitorAffiliate($context->getVisitorId());
            Pap_Tracking_Click_SaveVisitorAffiliate::prepareVisitorAffiliate($firstVisitorAffiliate, $context);
            $rows->add($firstVisitorAffiliate);

            $visitorAffiliate = $cache->createVisitorAffiliate($context->getVisitorId());
        } else {
            $visitorAffiliate = $this->getVisitorAffiliate($firstClickVisitorAffiliate,
            $oldVisitorAffiliate, $cache, $context);

            if ($oldVisitorAffiliate == null && 
            $visitorAffiliate === $firstClickVisitorAffiliate) {
                Pap_Tracking_Click_SaveVisitorAffiliate::prepareVisitorAffiliate($visitorAffiliate, $context);
                $visitorAffiliate = $cache->createVisitorAffiliate($context->getVisitorId()); 
            }
        }

        if ($visitorAffiliate == null) {
            $context->debug('SplitCommission VisitorAffiliate no updated - not actual data');
            return;
        }

        Pap_Tracking_Click_SaveVisitorAffiliate::prepareVisitorAffiliate($visitorAffiliate, $context);

        if ($oldVisitorAffiliate == null && $firstClickVisitorAffiliate !== $visitorAffiliate) {
            $rows->add($visitorAffiliate);
        }

        $context->debug('New visitorAffiliate added/saved by SplitCommissions');
    }