我正在尝试使用Amazon MWS API检索特定SKU的费用估算。我有示例文件,已经阅读和阅读,但是我无法弄清楚如何实际指定要提交的SKU。
我有针对模拟文件的示例文件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");
}
}
Run Code Online (Sandbox Code Playgroud)
我找到了,但是我仍然不知道该怎么办。您可能会认为Amazon Samples将包含Sample ASIN或SKU;https://docs.developer.amazonservices.com/zh_CN/products/Products_GetMyFeesEstimate.html
昨天进行了编程,并找到了解决方案,有关FeesEstimateRequestElements的更多信息:
http://docs.developer.amazonservices.com/zh_CN/products/Products_Datatypes.html#FeesEstimateRequest
有关操作GetMyFeesEstimate的信息:
http://docs.developer.amazonservices.com/zh_CN/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");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1140 次 |
| 最近记录: |