RequestReport

Amazonさんにレポートを作ってもらうリクエストを送信。

MWSレポート作成チュートリアルでやったこと、そのまんま。
チュートリアルの「事前準備」ができてること前提。

リクエストパラメータ作成

MarketplaceWebService_Model_RequestReportRequestオブジェクトを作成する。
$request = new MarketplaceWebService_Model_RequestReportRequest();
$request->setMarketplace(MARKETPLACE_ID);
$request->setMerchant(MERCHANT_ID);

作成するレポートの種類は、リクエストクラスのsetReportTypeメソッドで指定する。
指定する値はReportType列挙子参照。
$request->setReportType('_GET_MERCHANT_LISTINGS_DATA_');

注文レポートとかの場合は処理対象の日付範囲も指定する。
(指定しなかった場合は、リクエスト送信日がデフォルト)
$timezone = new DateTimeZone('Asia/Tokyo');
$request->setStartDate(new DateTime('-7 day', $timezone));
$request->setEndDate(new DateTime('now', $timezone));

リクエストを送信

$response = $service->requestReport($request);
$service はMarketplaceWebService_Clientオブジェクト。

レスポンスを確認

ReportProcessingStatusの値が「_SUBMITTED_」になってれば成功。
次の段階で必要なReportRequestIdの値をしっかり保持しとく。
if ($response->isSetRequestReportResult()) {
  $requestReportResult = $response->getRequestReportResult();
  if ($requestReportResult->isSetReportRequestInfo()) {
    $reportRequestInfo = $requestReportResult->getReportRequestInfo();
    if ($reportRequestInfo->isSetReportProcessingStatus()) {
      $reportProcessingStatus = $reportRequestInfo->getReportProcessingStatus();
    }
    // 省略するけど、ほんとはここで$reportProcessingStatus の値をチェック。
    if ($reportRequestInfo->isSetReportRequestId()) {
      $reportRequestId = $reportRequestInfo->getReportRequestId();
    }
  }
}

例)
<?php
require_once('.config.inc.php');

$serviceUrl = "https://mws.amazonservices.jp";
$config = array (
  'ServiceURL' => $serviceUrl,
  'ProxyHost' => null,
  'ProxyPort' => -1,
  'MaxErrorRetry' => 3,
);

$service = new MarketplaceWebService_Client(
    AWS_ACCESS_KEY_ID, 
    AWS_SECRET_ACCESS_KEY, 
    $config,
    APPLICATION_NAME,
    APPLICATION_VERSION
);

$request = new MarketplaceWebService_Model_RequestReportRequest();
$request->setMarketplace(MARKETPLACE_ID);
$request->setMerchant(MERCHANT_ID);
$request->setReportType('_GET_MERCHANT_LISTINGS_DATA_');

try {
  $response = $service->requestReport($request);
  if ($response->isSetRequestReportResult()) {
    $requestReportResult = $response->getRequestReportResult();
    print_r($requestReportResult);
  }
} catch (MarketplaceWebService_Exception $ex) {
  print_r($ex);
}
?>

次はレポートが正常に作成されたかどうかチェック(GetReportRequestList


タグ:

MWS
最終更新:2011年11月02日 09:41
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。