Exemplo n.º 1
0
 /**
  * Get FeedSubmiisonList full info
  * @param array $status
  * @param array $feedTypes
  * @param int $limit
  * @return array
  */
 public function getSubmissionList($status = array(), $feedTypes = array(), $limit = 20)
 {
     $request = new \MarketplaceWebService_Model_GetFeedSubmissionListRequest();
     $request->setMerchant($this->config['merchant_id']);
     $status = count($status) > 0 ? $status : $this->getPendingStatusList();
     $statusList = new \MarketplaceWebService_Model_StatusList($status);
     $request->setFeedProcessingStatusList($statusList);
     $feedTypes = count($feedTypes) > 0 ? $feedTypes : $this->getFeedTypes();
     $feedTypeList = new \MarketplaceWebService_Model_TypeList();
     foreach ($feedTypes as $feedType) {
         $feedTypeList->withType($feedType);
     }
     $request->setFeedTypeList($feedTypeList);
     $request->setMaxCount($limit);
     $response = $this->client->getFeedSubmissionList($request);
     $submissions = array();
     if ($response->isSetGetFeedSubmissionListResult()) {
         $getFeedSubmissionListResult = $response->getGetFeedSubmissionListResult();
         $feedSubmissionInfoList = $getFeedSubmissionListResult->getFeedSubmissionInfoList();
         foreach ($feedSubmissionInfoList as $feedSubmissionInfo) {
             $submissions[] = $this->getSubmission($feedSubmissionInfo->getFeedSubmissionId());
         }
         return $submissions;
     }
 }
 /**
  * @return ReportListItem[]
  */
 public function getReportList()
 {
     $returnList = array();
     //$request = new MarketplaceWebServiceProducts_Model_GetProductCategoriesForASINRequest();
     $request = new \MarketplaceWebService_Model_GetReportListRequest();
     $request->setMerchant($this->config->getMerchantId());
     $request->setMarketplace($this->config->getMarketPlaceId());
     $request->setMaxCount(100);
     $typeList = new \MarketplaceWebService_Model_TypeList();
     $typeList->setType("_GET_MERCHANT_LISTINGS_DATA_");
     $request->setReportTypeList($typeList);
     $response = $this->service->getReportList($request);
     var_dump($response);
     if ($response->isSetGetReportListResult()) {
         $getReportListResult = $response->getGetReportListResult();
         $reportInfoList = $getReportListResult->getReportInfoList();
         foreach ($reportInfoList as $reportInfo) {
             $report = new ReportListItem();
             if ($reportInfo->isSetReportId()) {
                 $report->setReportId($reportInfo->getReportId());
             }
             if ($reportInfo->isSetReportType()) {
                 $report->setReportType($reportInfo->getReportType());
             }
             if ($reportInfo->isSetReportRequestId()) {
                 $report->setReportRequestId($reportInfo->getReportRequestId());
             }
             if ($reportInfo->isSetAvailableDate()) {
                 $report->setAvailableDate($reportInfo->getAvailableDate());
             }
             if ($reportInfo->isSetAcknowledged()) {
                 $report->setAcknowledged($reportInfo->getAcknowledged());
             }
             if ($reportInfo->isSetAcknowledgedDate()) {
                 $report->setAcknowledgedDate($reportInfo->getAcknowledgedDate());
             }
             $returnList[] = $report;
         }
     }
     return $returnList;
 }
function getAmazonNewOrders($with_header_message = true)
{
    global $files;
    use_class('jng_sp_download');
    $class_jd = new jng_sp_download();
    $ready_path = SP_AMAZONEDE_DECRYPT_PATH;
    $archived_path = SP_AMAZONEDE_ARCHIVE_PATH;
    use_class('amazon/MarketplaceWebService/Client');
    //MANDATORY CLASS
    use_class('amazon/MarketplaceWebService/Model/ErrorResponse');
    //MANDATORY CLASS
    use_class('amazon/MarketplaceWebService/Model/GetReportRequest');
    //FEED USED CLASS
    use_class('amazon/MarketplaceWebService/Model/GetReportResponse');
    //FEED USED CLASS
    use_class('amazon/MarketplaceWebService/Model/GetReportListRequest');
    //FEED USED CLASS
    use_class('amazon/MarketplaceWebService/Model/GetReportListResponse');
    //FEED USED CLASS
    use_class('amazon/MarketplaceWebService/Model/TypeList');
    //TYPE LIST CLASS
    $serviceUrl = "https://mws.amazonservices.de";
    $aws_config = array('ServiceURL' => $serviceUrl, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3);
    $service = new MarketplaceWebService_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, $aws_config, APPLICATION_NAME, APPLICATION_VERSION);
    $list = new MarketplaceWebService_Model_TypeList();
    $list->setType('_GET_ORDERS_DATA_');
    $report_from_date = new DateTime('-3 months', new DateTimeZone('UTC'));
    $report_to_date = new DateTime('now', new DateTimeZone('UTC'));
    $request = new MarketplaceWebService_Model_GetReportListRequest();
    $request->setMerchant(MERCHANT_ID);
    $request->setMarketplace(MARKETPLACE_ID);
    $request->setAvailableToDate($report_to_date);
    $request->setAvailableFromDate($report_from_date);
    $request->setReportTypeList($list);
    $request->setAcknowledged(false);
    //    echo"<pre>";var_dump($request);die();
    $response = $service->getReportList($request);
    //    echo"<pre>";var_dump($response);die();
    if ($response->isSetGetReportListResult()) {
        if ($with_header_message) {
            echo "START DOWNLOADING NEW ORDERS FROM AMAZON PERIODE " . $report_from_date->format(DATE_ISO8601) . " TO " . $report_to_date->format(DATE_ISO8601) . "<br/>";
        }
        $getReportListResult = $response->getGetReportListResult();
        $reportInfoList = $getReportListResult->getReportInfoList();
        if (count($reportInfoList) > 0) {
            $download_message = ' --- NO NEW ORDERS AVAILABLE ---<br/>';
            foreach ($reportInfoList as $reportInfo) {
                if ($reportInfo->isSetReportId()) {
                    $report_id = $reportInfo->getReportId();
                    $filename = date('Ymd') . '-' . $report_id . '.XML';
                    if (!$class_jd->isAlreadyDownloaded("jng_sp_id = 4 AND SUBSTRING_INDEX(filename, '-',-1) = '{$report_id}.XML'")) {
                        $download_message = '';
                        echo "  >> DOWNLOADING REPORT_ID: {$report_id} ... ";
                        $fullpath_ready = $ready_path . $filename;
                        $handle = fopen($fullpath_ready, 'w');
                        $request_report = new MarketplaceWebService_Model_GetReportRequest();
                        $request_report->setMarketplace(MARKETPLACE_ID);
                        $request_report->setMerchant(MERCHANT_ID);
                        $request_report->setReport($handle);
                        $request_report->setReportId($report_id);
                        $response_report = $service->getReport($request_report);
                        echo "STREAMING XML {$filename} ... ";
                        $archive_path_raw = $archived_path . 'raw/' . date('Y') . '/';
                        if (!file_exists($archive_path_raw)) {
                            mkdir($archive_path_raw);
                        }
                        $fullpath_archive = $archive_path_raw . $filename;
                        $class_jd->addDownload('4', 'ORDERS', $filename, 'R');
                        $files[] = $filename;
                        fclose($handle);
                        echo "PROCESS DONE<br/>";
                    }
                }
            }
            echo $download_message;
        } else {
            echo ' --- NO NEW ORDERS AVAILABLE ---<br/>';
        }
        //LOOP MORE IF HAS NEXT NEW ORDERS
        if ($getReportListResult->isSetHasNext() && $getReportListResult->getHasNext()) {
            getAmazonNewOrders(false);
        } else {
            echo "DONE DOWNLOADING NEW ORDERS FROM AMAZON <br/>";
        }
    }
}