/** * Get the merchant for an Id * @param integer $merchantId * @return array */ public function getMerchant(array $merchantIds = null) { $merchantList = array(); if ($merchantIds != null) { $iteration = 0; $arraySlice = array_slice($merchantIds, $this->_pageSize * $iteration, $this->_pageSize); while (!empty($arraySlice)) { $params = array(); $params['aMerchantIds'] = $arraySlice; $merchantApiList = $this->_apiClient->getMerchant($params)->getMerchantReturn; $merchantList = array_merge($merchantList, Oara_Utilities::soapConverter($merchantApiList, $this->_merchantConverterConfiguration)); $iteration++; $arraySlice = array_slice($merchantIds, $this->_pageSize * $iteration, $this->_pageSize); } } return $merchantList; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Publisher_Base#getTransactionList($merchantId,$dStartDate,$dEndDate) */ public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null, $merchantMap = null) { $totalTransactions = array(); //Set the webservice $publisherStatisticsServiceUrl = 'https://api.affili.net/V2.0/PublisherStatistics.svc?wsdl'; $publisherStatisticsService = new Oara_Import_Soap_Client($publisherStatisticsServiceUrl, array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE, 'soap_version' => SOAP_1_1)); $iterationNumber = self::calculeIterationNumber(count($merchantList), 100); for ($currentIteration = 0; $currentIteration < $iterationNumber; $currentIteration++) { $merchantListSlice = array_slice($merchantList, 100 * $currentIteration, 100); $merchantListAux = array(); foreach ($merchantListSlice as $merchant) { $merchantListAux[] = (string) $merchant; } //Call the function $params = array('StartDate' => strtotime($dStartDate->toString("yyyy-MM-dd")), 'EndDate' => strtotime($dEndDate->toString("yyyy-MM-dd")), 'TransactionStatus' => 'All', 'ProgramIds' => $merchantListAux); $currentPage = 1; $transactionList = self::affilinetCall('transaction', $publisherStatisticsService, $params, 0, $currentPage); while (isset($transactionList->TotalRecords) && $transactionList->TotalRecords > 0 && isset($transactionList->TransactionCollection->Transaction)) { $transactionCollection = array(); if (!is_array($transactionList->TransactionCollection->Transaction)) { $transactionCollection[] = $transactionList->TransactionCollection->Transaction; } else { $transactionCollection = $transactionList->TransactionCollection->Transaction; } $transactionList = Oara_Utilities::soapConverter($transactionCollection, $this->_transactionConverterConfiguration); foreach ($transactionList as $transaction) { //$transaction['merchantId'] = 3901; $tDate = new Zend_Date($transaction["date"], "yyyy-MM-ddTHH:mm:ss"); $transaction["date"] = $tDate->toString("yyyy-MM-dd HH:mm:ss"); if ($transaction['status'] == 'Confirmed') { $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED; } else { if ($transaction['status'] == 'Open') { $transaction['status'] = Oara_Utilities::STATUS_PENDING; } else { if ($transaction['status'] == 'Cancelled') { $transaction['status'] = Oara_Utilities::STATUS_DECLINED; } } } $totalTransactions[] = $transaction; } $currentPage++; $transactionList = self::affilinetCall('transaction', $publisherStatisticsService, $params, 0, $currentPage); } } return $totalTransactions; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Base#getTransactionList($merchantId,$dStartDate,$dEndDate) */ public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $totalTransactions = array(); $dStartDate = clone $dStartDate; $dStartDate->setHour("00"); $dStartDate->setMinute("00"); $dStartDate->setSecond("00"); $dEndDate = clone $dEndDate; $dEndDate->setHour("23"); $dEndDate->setMinute("59"); $dEndDate->setSecond("59"); foreach ($this->_campaignMap as $campaignKey => $campaignValue) { $transactionList = $this->_soapClient->getDetailedEarnings($dStartDate->getIso(), $dEndDate->getIso(), $campaignKey, $this->_exportTransactionParameters['username'], $this->_exportTransactionParameters['password']); foreach ($transactionList as $transaction) { if (in_array($transaction->programID, $merchantList)) { $transaction->merchantId = $transaction->programID; if ($transaction->status == 'confirmed') { $transaction->status = Oara_Utilities::STATUS_CONFIRMED; } else { if ($transaction->status == 'delayed') { $transaction->status = Oara_Utilities::STATUS_PENDING; } else { if ($transaction->status == 'cancelled') { $transaction->status = Oara_Utilities::STATUS_DECLINED; } else { throw new Exception('Error in the transaction status'); } } } $transactionDate = new Zend_Date($transaction->date, "yyyy-MM-ddTHH:mm:ss"); $transaction->date = $transactionDate->toString("yyyy-MM-dd HH:mm:ss"); $transaction->websiteId = $campaignKey; $totalTransactions[] = $transaction; } } } $totalTransactions = Oara_Utilities::soapConverter($totalTransactions, $this->_transactionConverterConfiguration); return $totalTransactions; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Base#getOverviewList($merchantId,$dStartDate,$dEndDate) */ public function getOverviewList($transactionList = null, $merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $totalOverview = array(); //At first, we need to be sure that there are some data. $auxStartDate = clone $dStartDate; $auxStartDate->setHour("00"); $auxStartDate->setMinute("00"); $auxStartDate->setSecond("00"); $auxEndDate = clone $dEndDate; $auxEndDate->setHour("23"); $auxEndDate->setMinute("59"); $auxEndDate->setSecond("59"); $params = array(); $params['sDateType'] = 'transaction'; if ($dStartDate != null) { $params['dStartDate'] = $auxStartDate->toString("yyyy-MM-ddTHH:mm:ss"); } if ($dEndDate != null) { $params['dEndDate'] = $auxEndDate->toString("yyyy-MM-ddTHH:mm:ss"); } if ($merchantList != null) { $params['aMerchantIds'] = $merchantList; } $params['iOffset'] = null; $params['iLimit'] = $this->_pageSize; $clickStats = $this->_apiClient->getClickStats($params); $impressionStats = $this->_apiClient->getImpressionStats($params); $transactionList = Oara_Utilities::transactionMapPerDay($transactionList); if (count($clickStats->getClickStatsReturn) > 0 || count($impressionStats->getImpressionStatsReturn) > 0 || count($transactionList) > 0) { unset($clickStats); unset($impressionStats); $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate); for ($i = 0; $i < sizeof($dateArray); $i++) { $groupMap = array(); $auxStartDate = clone $dateArray[$i]; $auxStartDate->setHour("00"); $auxStartDate->setMinute("00"); $auxStartDate->setSecond("00"); $auxEndDate = clone $dateArray[$i]; $auxEndDate->setHour("23"); $auxEndDate->setMinute("59"); $auxEndDate->setSecond("59"); $params = array(); $params['sDateType'] = 'transaction'; if ($dStartDate != null) { $params['dStartDate'] = $auxStartDate->toString("yyyy-MM-ddTHH:mm:ss"); } if ($dEndDate != null) { $params['dEndDate'] = $auxEndDate->toString("yyyy-MM-ddTHH:mm:ss"); } if ($merchantList != null) { $params['aMerchantIds'] = $merchantList; } $params['iOffset'] = null; $params['iLimit'] = $this->_pageSize; $clickStats = $this->_apiClient->getClickStats($params); if (count($clickStats->getClickStatsReturn) > 0) { $groupMap = self::groupOverview($groupMap, Oara_Utilities::soapConverter($clickStats->getClickStatsReturn, $this->_clickConverterConfiguration)); $iteration = self::calculeIterationNumber($clickStats->getClickStatsCountReturn->iRowsAvailable, $this->_pageSize); unset($clickStats); for ($j = 1; $j < $iteration; $j++) { $params['iOffset'] = $this->_pageSize * $j; $clickStats = $this->_apiClient->getClickStats($params); $groupMap = self::groupOverview($groupMap, Oara_Utilities::soapConverter($clickStats->getClickStatsReturn, $this->_clickConverterConfiguration)); unset($clickStats); gc_collect_cycles(); } } $params['iOffset'] = null; $impressionStats = $this->_apiClient->getImpressionStats($params); if (count($impressionStats->getImpressionStatsReturn) > 0) { $groupMap = self::groupOverview($groupMap, Oara_Utilities::soapConverter($impressionStats->getImpressionStatsReturn, $this->_impressionConverterConfiguration)); $iteration = self::calculeIterationNumber($impressionStats->getImpressionStatsCountReturn->iRowsAvailable, $this->_pageSize); unset($impressionStats); for ($j = 1; $j < $iteration; $j++) { $params['iOffset'] = $this->_pageSize * $j; $impressionStats = $this->_apiClient->getImpressionStats($params); $groupMap = self::groupOverview($groupMap, Oara_Utilities::soapConverter($impressionStats->getImpressionStatsReturn, $this->_impressionConverterConfiguration)); unset($impressionStats); gc_collect_cycles(); } } $transactionDateArray = array(); foreach ($transactionList as $merchantId => $data) { $transactionDateArray = array_merge($transactionDateArray, Oara_Utilities::getDayFromArray($merchantId, $transactionList, $auxStartDate)); } if (count($transactionDateArray) > 0) { $groupMap = self::groupOverview($groupMap, $transactionDateArray); } foreach ($groupMap as $merchant => $overview) { $overview['merchantId'] = $merchant; $overview['date'] = $auxStartDate->toString("yyyy-MM-dd HH:mm:ss"); if (Oara_Utilities::checkRegister($overview)) { $totalOverview[] = $overview; } } } } return $totalOverview; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Base#getTransactionList($merchantId,$dStartDate,$dEndDate) */ public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $totalTransactions = array(); $dStartDate = clone $dStartDate; $dStartDate->setHour("00"); $dStartDate->setMinute("00"); $dStartDate->setSecond("00"); $dEndDate = clone $dEndDate; $dEndDate->setHour("23"); $dEndDate->setMinute("59"); $dEndDate->setSecond("59"); //Set the webservice $publisherStatisticsServiceUrl = 'https://api.affili.net/V2.0/PublisherStatistics.svc?wsdl'; $publisherStatisticsService = new Oara_Import_Soap_Client($publisherStatisticsServiceUrl, array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE, 'soap_version' => SOAP_1_1)); $iterationNumber = self::calculeIterationNumber(count($merchantList), 100); for ($currentIteration = 0; $currentIteration < $iterationNumber; $currentIteration++) { $merchantListSlice = array_slice($merchantList, 100 * $currentIteration, 100); $merchantListAux = array(); foreach ($merchantListSlice as $merchant) { $merchantListAux[] = (string) $merchant; } //Call the function $params = array('StartDate' => strtotime($dStartDate->toString("yyyy-MM-dd")), 'EndDate' => strtotime($dEndDate->toString("yyyy-MM-dd")), 'TransactionStatus' => 'All', 'ProgramIds' => $merchantListAux, 'SubId' => '', 'ProgramTypes' => 'All', 'MaximumRecords' => '0', 'ValuationType' => 'DateOfRegistration'); $transactionList = self::affilinetCall('transaction', $publisherStatisticsService, $params); if (isset($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord) && !is_array($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord)) { $transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord = array($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord); } if (isset($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord)) { $transactionList = Oara_Utilities::soapConverter($transactionList->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecords->SalesLeadsStatisticsRecord, $this->_transactionConverterConfiguration); foreach ($transactionList as $transaction) { //$transaction['merchantId'] = 3901; if ($transaction['status'] == 'Confirmed') { $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED; } else { if ($transaction['status'] == 'Open') { $transaction['status'] = Oara_Utilities::STATUS_PENDING; } else { if ($transaction['status'] == 'Cancelled') { $transaction['status'] = Oara_Utilities::STATUS_DECLINED; } } } $totalTransactions[] = $transaction; } } } return $totalTransactions; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Base#getMerchantList() */ public function getMerchantList($merchantMap = array()) { $this->_advertisersCampaings = array(); $merchantsImport = $this->_apiClient->GetCampaigns($this->_exportMerchantParameters); if (!isset($merchantsImport->campaigns) || !isset($merchantsImport->campaigns->campaign)) { sleep(60); throw new Exception('Error advertisers not found'); } $this->merchantList = Oara_Utilities::soapConverter($merchantsImport->campaigns->campaign, $this->_merchantConverterConfiguration); foreach ($merchantsImport->campaigns->campaign as $campaing) { if (!isset($this->_advertisersCampaings[$campaing->advertiserid])) { $this->_advertisersCampaings[$campaing->advertiserid] = $campaing->campaignid; } else { $this->_advertisersCampaings[$campaing->advertiserid] .= ',' . $campaing->campaignid; } } return $this->merchantList; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Publisher_Base#getMerchantList() */ public function getMerchantList() { $merchantList = array(); foreach ($this->_campaignMap as $campaignKey => $campaignValue) { $merchants = $this->_soapClient->getProgramsWithMembershipStatus($this->_exportMerchantParameters['username'], $this->_exportMerchantParameters['password'], $campaignKey); foreach ($merchants as $merchant) { if ($merchant->programMembershipStatusName == 'Live' || $merchant->programMembershipStatusName == 'Joined') { $merchantList[$merchant->programID] = $merchant; } } } $merchantList = Oara_Utilities::soapConverter($merchantList, $this->_merchantConverterConfiguration); return $merchantList; }