2016-12-06 10 views
1

Amazon MWS APIを使用して特定のSKUの料金見積もりを取得しようとしています。私はサンプルファイルを持っており、読み込みと読み込みを行っていますが、実際にSKUを提出する方法を特定できません。Amazon MWS GetMyFeesEstimate APIリクエストを提出する

模擬ファイルに対してGetMyFeesEstimateSample.phpというサンプルファイルがありますが、これは応答ファイルですか?

これは私が持っているものですが、どのようにして要求に対してSellerSKUを指定できますか?

<?php 
/******************************************************************************* 
* Copyright 2009-2016 Amazon Services. All Rights Reserved. 
* Licensed under the Apache License, Version 2.0 (the "License"); 
* 
* You may not use this file except in compliance with the License. 
* You may obtain a copy of the License at: http://aws.amazon.com/apache2.0 
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
* CONDITIONS OF ANY KIND, either express or implied. See the License for the 
* specific language governing permissions and limitations under the License. 
******************************************************************************* 
* PHP Version 5 
* @category Amazon 
* @package Marketplace Web Service Products 
* @version 2011-10-01 
* Library Version: 2016-06-01 
* Generated: Fri Sep 16 11:49:32 PDT 2016 
*/ 

/** 
* Get My Fees Estimate Sample 
*/ 

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

/************************************************************************ 
* Instantiate Implementation of MarketplaceWebServiceProducts 
* 
* AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY constants 
* are defined in the .config.inc.php located in the same 
* directory as this sample 
***********************************************************************/ 
// More endpoints are listed in the MWS Developer Guide 
// North America: 
//$serviceUrl = "https://mws.amazonservices.com/Products/2011-10-01"; 
// Europe 
//$serviceUrl = "https://mws-eu.amazonservices.com/Products/2011-10-01"; 
// Japan 
//$serviceUrl = "https://mws.amazonservices.jp/Products/2011-10-01"; 
// China 
//$serviceUrl = "https://mws.amazonservices.com.cn/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); 

/************************************************************************ 
* Uncomment to try out Mock Service that simulates MarketplaceWebServiceProducts 
* responses without calling MarketplaceWebServiceProducts service. 
* 
* Responses are loaded from local XML files. You can tweak XML files to 
* experiment with various outputs during development 
* 
* XML files available under MarketplaceWebServiceProducts/Mock tree 
* 
***********************************************************************/ 
// $service = new MarketplaceWebServiceProducts_Mock(); 

/************************************************************************ 
* Setup request parameters and uncomment invoke to try out 
* sample for Get My Fees Estimate Action 
***********************************************************************/ 
// @TODO: set request. Action can be passed as MarketplaceWebServiceProducts_Model_GetMyFeesEstimate 
$request = new MarketplaceWebServiceProducts_Model_GetMyFeesEstimateRequest(); 
$request->setSellerId(MERCHANT_ID); 
// object or array of parameters 
invokeGetMyFeesEstimate($service, $request); 

/** 
    * Get Get My Fees Estimate Action Sample 
    * Gets competitive pricing and related information for a product identified by 
    * the MarketplaceId and ASIN. 
    * 
    * @param MarketplaceWebServiceProducts_Interface $service instance of MarketplaceWebServiceProducts_Interface 
    * @param mixed $request MarketplaceWebServiceProducts_Model_GetMyFeesEstimate or array of parameters 
    */ 

    function invokeGetMyFeesEstimate(MarketplaceWebServiceProducts_Interface $service, $request) 
    { 
     try { 
     $response = $service->GetMyFeesEstimate($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"); 
    } 
} 

私はこれを見つけましたが、私はまだ何をすべきかわかりません。 AmazonサンプルにはサンプルASINまたはSKUが含まれていると思われます。 Get Fees

答えて

1

https://docs.developer.amazonservices.com/en_US/products/Products_GetMyFeesEstimate.htmlはあなたの要求の一部として、あなたがASINまたはSellerSKUすることができIdTypeを、specifiy、そのリストでFeesEstimateRequestListを提出します。次に、それにIdValueの値を与えます。必要な要素が他にもあることに注意してください。あなたのPOSTは、上記IdTypeのために定義ASINの代わりSellerSKUを持っている右ここhttps://docs.developer.amazonservices.com/en_US/products/Products_Datatypes.html#FeesEstimateRequest

これらの要素のためのFeesEstimateRequestをチェックしてください。上記のようにSellerSKUに変更すると、あなたが設定されます。

私はC# SDKを使用していますが、これにはすべて例があります。私はPHP SDKが同じだろうと思うだろうが、おそらくそれは完全である。いずれにしても、FeesEstimateRequestListをPOSTに提出する必要がありますので、MWSはあなたが探しているものを知っています。

+0

申し訳ありませんが、スクリーンショットは私の要求ではなく、Amazonのウェブサイトからです。それは私が理解するのに苦労しているビットです。どのようにフォームを作成して提出しますか?私はループで複数のリクエストを実行しています。 – Stuart

+0

私はPHPの男ではありませんが、最終的な結果はMWSへのPOSTを生成することです。コードを手渡し、AmazonのSDKを提出または使用することができます。上記のPHPコードを見ると、 "* @param mixed $ Request MarketplaceWebServiceProducts_Model_GetMyFeesEstimateまたはパラメータの配列"という行のコメントを外す必要があるように見えます。それは私にとっては少し外国だ。例については、stackoverflowを見てください。多分この1つ:http://stackoverflow.com/questions/37416063/fetch-product-from-amazon-mws-using-product-api – ScottG

2

FeesEstimateRequestElementsに関する詳細は、昨日これをプログラミングし、解決策を発見された:操作GetMyFeesEstimateについて

http://docs.developer.amazonservices.com/en_US/products/Products_Datatypes.html#FeesEstimateRequest

情報:いくつかのコメントで

http://docs.developer.amazonservices.com/en_US/products/Products_GetMyFeesEstimate.html

GetMyFeesEstimateSampleを、この作品:

<?php 

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


$serviceUrl = "https://mws.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); 


//First we set up all the list variables 
$FeesEstimateRequest = new MarketplaceWebServiceProducts_Model_FeesEstimateRequest(); 
$FeesEstimateRequest->setMarketplaceId('ATVPDKIKX0DER'); // Amazon.com marketplace id 
$FeesEstimateRequest->setIdType('SellerSKU');    // IdType values: ASIN, SellerSKU, SellerSKU in your case 
$FeesEstimateRequest->setIdValue('XXXXXXXXXX');  // The value of the id you have entered 
$FeesEstimateRequest->setIdentifier('request1');   // A identifier for the item you have requested, this is for your own use 
$FeesEstimateRequest->setIsAmazonFulfilled(FALSE);  // Fullfilled by Amazon? true if the offer is fulfilled by Amazon.  

//To set up the $PriceToEstimateFees object we need two instances of the object MarketplaceWebServiceProducts_Model_MoneyType 
//@ set up for both cases: Listing Price and Shipping Price 
//New object MoneyType, setting up the currency and amount for listing price 
$MoneyTypeListingPrice = new MarketplaceWebServiceProducts_Model_MoneyType(); 
$MoneyTypeListingPrice->setCurrencyCode('USD'); // String, the currency code of the price : USD in this example for amazon.com marketplace 
$MoneyTypeListingPrice->setAmount('0.00');  // String, the price of the item 

//New object MoneyType, setting up the currency and amount for shipping price 
$MoneyTypeShipping = new MarketplaceWebServiceProducts_Model_MoneyType(); 
$MoneyTypeShipping->setCurrencyCode('USD'); // String, the currency code of the price : USD in this example for amazon.com marketplace 
$MoneyTypeShipping->setAmount('0.00');  // String, the price of the item 

//Setting up the prices: Listing Price and Shipping Price 
$PriceToEstimateFees = new MarketplaceWebServiceProducts_Model_PriceToEstimateFees(); 
$PriceToEstimateFees->setListingPrice($MoneyTypeListingPrice); 
$PriceToEstimateFees->setShipping($MoneyTypeShipping); 

//Finally setting up the $PriceToEstimateFees object to the $FeesEstimateRequest object 
$FeesEstimateRequest->setPriceToEstimateFees($PriceToEstimateFees); // The product price that the fee estimate is based on. 

//setting up the final required parameter in the $FeesEstimateRequestList object 
$FeesEstimateRequestList = new MarketplaceWebServiceProducts_Model_FeesEstimateRequestList(); 
$FeesEstimateRequestList->setFeesEstimateRequest($FeesEstimateRequest); 

// Last step : sending the $FeesEstimateRequestList object into $request 
$request = new MarketplaceWebServiceProducts_Model_GetMyFeesEstimateRequest(); 
$request->setSellerId(MERCHANT_ID); 
$request->setFeesEstimateRequestList($FeesEstimateRequestList); 
// object or array of parameters 
invokeGetMyFeesEstimate($service, $request); 



function invokeGetMyFeesEstimate(MarketplaceWebServiceProducts_Interface $service, $request) 
    { 
    try { 
    $response = $service->GetMyFeesEstimate($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"); 
} 
} 
+0

これは助けですか? –

関連する問題