Oara\Network\Publisher\LinkShare::getTransactionList PHP Method

getTransactionList() public method

public getTransactionList ( null $merchantList = null, DateTime $dStartDate = null, DateTime $dEndDate = null ) : array
$merchantList null
$dStartDate DateTime
$dEndDate DateTime
return array
    public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null)
    {
        $totalTransactions = array();
        $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
        $uniqueIdMap = array();
        foreach ($this->_siteList as $site) {
            if (empty($this->_sitesAllowed) || in_array($site->id, $this->_sitesAllowed)) {
                echo "getting Transactions for site " . $site->id . "\n\n";
                $url = "https://ran-reporting.rakutenmarketing.com/en/reports/individual-item-report/filters?start_date=" . $dStartDate->format("Y-m-d") . "&end_date=" . $dEndDate->format("Y-m-d") . "&include_summary=N" . "&network=" . $this->_nid . "&tz=GMT&date_type=transaction&token=" . urlencode($site->token);
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
                curl_setopt($ch, CURLOPT_TIMEOUT, 50);
                $result = curl_exec($ch);
                $info = curl_getinfo($ch);
                if ($info['http_code'] != 200) {
                    return $totalTransactions;
                }
                curl_close($ch);
                $url = "https://ran-reporting.rakutenmarketing.com/en/reports/signature-orders-report/filters?start_date=" . $dStartDate->format("Y-m-d") . "&end_date=" . $dEndDate->format("Y-m-d") . "&include_summary=N" . "&network=" . $this->_nid . "&tz=GMT&date_type=transaction&token=" . urlencode($site->token);
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
                curl_setopt($ch, CURLOPT_TIMEOUT, 50);
                $resultSignature = curl_exec($ch);
                $info = curl_getinfo($ch);
                if ($info['http_code'] != 200) {
                    return $totalTransactions;
                }
                curl_close($ch);
                $signatureMap = array();
                $exportData = str_getcsv($resultSignature, "\n");
                $num = count($exportData);
                for ($j = 1; $j < $num; $j++) {
                    $signatureData = str_getcsv($exportData[$j], ",");
                    $signatureMap[$signatureData[3]] = $signatureData[0];
                }
                $exportData = \str_getcsv($result, "\n");
                $num = \count($exportData);
                for ($j = 1; $j < $num; $j++) {
                    $transactionData = \str_getcsv($exportData[$j], ",");
                    if (isset($merchantIdList[$transactionData[3]]) && count($transactionData) == 10) {
                        $transaction = array();
                        $transaction['merchantId'] = (int) $transactionData[3];
                        $transactionDate = \DateTime::createFromFormat("m/d/y H:i:s", $transactionData[1] . " " . $transactionData[2]);
                        $transaction['date'] = $transactionDate->format("Y-m-d H:i:s");
                        if (isset($signatureMap[$transactionData[0]])) {
                            $transaction['custom_id'] = $signatureMap[$transactionData[0]];
                        }
                        if (!isset($uniqueIdMap[$transactionData[0]])) {
                            $uniqueIdMap[$transactionData[0]] = 1;
                        } else {
                            $uniqueIdMap[$transactionData[0]]++;
                        }
                        $transaction['unique_id'] = $transactionData[0] . '_' . $uniqueIdMap[$transactionData[0]];
                        $sales = \Oara\Utilities::parseDouble($transactionData[7]);
                        if ($sales != 0) {
                            $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                        } else {
                            if ($sales == 0) {
                                $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                            }
                        }
                        $transaction['amount'] = $sales;
                        $transaction['commission'] = \Oara\Utilities::parseDouble($transactionData[9]);
                        $totalTransactions[] = $transaction;
                    }
                }
            }
        }
        return $totalTransactions;
    }