使用产品API从亚马逊MWS获取产品

Sal*_*yaz 0 amazon-web-services amazon-product-api amazon-mws

我已经成功地使用Amazon在Amazon发布了产品MWS Feeds API。现在,我想使用Products API列出这些产品,但是我遇到了一些错误。我跑GetMatchingProductSample.php

捕获的异常:找不到所需的参数ASINList响应状态代码:400错误代码:MissingParameter错误类型:发件人请求ID:8bb9c8d1-f48c-495c-be86-89492976b4a9 XML:SenderMissingParameterRequired参数ASINList未找到8bb9c8d1-f48c-495c-be86-89492976b4a9:Header RequestId:8bb9c8d1-f48c-495c-be86-89492976b4a9

码:

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

$serviceUrl = "https://mws-eu.amazonservices.com/Products/2011-10-01";


$config = array (
  'ServiceURL' => $serviceUrl,
  'ProxyHost' => null,
  'ProxyPort' => -1,
  'ProxyUsername' => null,
  'ProxyPassword' => null,
  'MaxErrorRetry' => 3,
);

$service = new MarketplaceWebServiceProducts_Client(
      AWS_ACCESS_KEY_ID,
      AWS_SECRET_ACCESS_KEY,
      APPLICATION_NAME,
      APPLICATION_VERSION,
      $config);
$request = new MarketplaceWebServiceProducts_Model_GetMatchingProductRequest();
$request->setSellerId(MERCHANT_ID);
// object or array of parameters
invokeGetMatchingProduct($service, $request);

function invokeGetMatchingProduct(MarketplaceWebServiceProducts_Interface $service, $request)
{
    try {
      $response = $service->GetMatchingProduct($request);

      echo ("Service Response\n");
      echo ("=============================================================================\n");

      $dom = new DOMDocument();
      $dom->loadXML($response->toXML());
      $dom->preserveWhiteSpace = false;
      $dom->formatOutput = true;
      echo $dom->saveXML();
      echo("ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n");

   } catch (MarketplaceWebServiceProducts_Exception $ex) {
      echo("Caught Exception: " . $ex->getMessage() . "\n");
      echo("Response Status Code: " . $ex->getStatusCode() . "\n");
      echo("Error Code: " . $ex->getErrorCode() . "\n");
      echo("Error Type: " . $ex->getErrorType() . "\n");
      echo("Request ID: " . $ex->getRequestId() . "\n");
      echo("XML: " . $ex->getXML() . "\n");
      echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n");
   }
}
Run Code Online (Sandbox Code Playgroud)

Key*_*lia 5

就像说的ASINList找不到

您需要在以下行之后添加这些代码行

$request->setSellerId(MERCHANT_ID);
Run Code Online (Sandbox Code Playgroud)

代码需要添加:

$request->setMarketplaceId($marketplace_id);
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType();
$asins = array("ASIN1","ASIN2","ASIN3");
$asin_list->setASIN($asins);
$request->setASINList($asin_list);
Run Code Online (Sandbox Code Playgroud)