数组在 GetCompetitivePricingForASINSample Amazon MWS PHP 中不起作用
Array does not work in GetCompetitivePricingForASINSample Amazon MWS PHP
我想从带有 ASINS 的文本文件中请求(1 行 1 个 AINS)。但我总是出错。该文件的 ASIN 不超过 20 个。
我收到错误
"Warning: rawurlencode() expects parameter 1 to be string, array given
in C:\xampp\htdocs\MarketplaceWebServiceProducts\Client.php on line
1405
or
Caught Exception: parameter ASINList.ASIN.1 failed a validation check:
Extraneous whitespace for input value: " " Response Status Code: 400
Error Code: InvalidRequest Error Type
$arr = file("asin.txt");
$request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest();
$request->setSellerId(MERCHANT_ID);
$request->setMarketplaceId(MARKETPLACE_ID);
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType();
$asin_list->setASIN(array($arr));
$request->setASINList($asin_list);
如果我这样写,是行不通的。
$asin_list->setASIN(array($arr[0],$arr[1]));
如果我这样写,就可以了
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType();
$asin_list->setASIN(array('0470165057' ,'3944660110'
,'3000383964' ,'3000567852'....
我如何从一个包含 1000 个 ASINS 的文件发出一个列表请求(1 个请求 20 个 ASIN)?
请帮助我。
为我的英语道歉
PS。
来自 Asin.txt 和 print_r
的结果
Array ( [0] => 3944660110 [1] => 3000383964 [2] => 3000400567 [3] =>
3000449523 [4] => 3000489169 [5] => 3000518290 [6] => 3000539069 )
asin.txt - 1 行 1 ASIN
$request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest();
$request->setSellerId(MERCHANT_ID);
$arr = file('asin.txt',FILE_IGNORE_NEW_LINES);
$arr_chunks = array_chunk($arr, 20, TRUE);
$request->setMarketplaceId(MARKETPLACE_ID);
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType();
//$asin_list->setASIN($arr_chunks[0]);
//$request->setASINList($asin_list);
If $ asin_list-> setASIN ($ arr_chunks [0]); - Works
If $ asin_list-> setASIN ($ arr_chunks [1]); - Dont Work
您可以使用 array_chunk() 将您的 1000 个 asin 分成 20 个一组,例如
$asins_chunks = array_chunk($asins_array, 20, TRUE);
我使用这段代码并且有效:
$service = new
MarketplaceWebServiceProducts_Client($this->aws_access_key,
$this->aws_secret_access_key, $this->application_name,
$this->application_version, $this->config);
$request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest();
$request->setSellerId($this->seller_id);
$request->setMarketplaceId($this->marketplace_id);
//requesting product's data for "New" products
$request->setItemCondition("New");
//excluding our price data in product api response
$request->setExcludeMe(TRUE);
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType();
//creating $iec_asins array for returning price data back
$asins = array("ASIN1","ASIN2","ASIN3");
$asin_list->setASIN($asins);
$request->setASINList($asin_list);
我想从带有 ASINS 的文本文件中请求(1 行 1 个 AINS)。但我总是出错。该文件的 ASIN 不超过 20 个。 我收到错误
"Warning: rawurlencode() expects parameter 1 to be string, array given in C:\xampp\htdocs\MarketplaceWebServiceProducts\Client.php on line 1405 or
Caught Exception: parameter ASINList.ASIN.1 failed a validation check: Extraneous whitespace for input value: " " Response Status Code: 400 Error Code: InvalidRequest Error Type
$arr = file("asin.txt");
$request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest();
$request->setSellerId(MERCHANT_ID);
$request->setMarketplaceId(MARKETPLACE_ID);
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType();
$asin_list->setASIN(array($arr));
$request->setASINList($asin_list);
如果我这样写,是行不通的。
$asin_list->setASIN(array($arr[0],$arr[1]));
如果我这样写,就可以了
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType();
$asin_list->setASIN(array('0470165057' ,'3944660110'
,'3000383964' ,'3000567852'....
我如何从一个包含 1000 个 ASINS 的文件发出一个列表请求(1 个请求 20 个 ASIN)?
请帮助我。 为我的英语道歉
PS。 来自 Asin.txt 和 print_r
的结果Array ( [0] => 3944660110 [1] => 3000383964 [2] => 3000400567 [3] => 3000449523 [4] => 3000489169 [5] => 3000518290 [6] => 3000539069 )
asin.txt - 1 行 1 ASIN
$request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest();
$request->setSellerId(MERCHANT_ID);
$arr = file('asin.txt',FILE_IGNORE_NEW_LINES);
$arr_chunks = array_chunk($arr, 20, TRUE);
$request->setMarketplaceId(MARKETPLACE_ID);
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType();
//$asin_list->setASIN($arr_chunks[0]);
//$request->setASINList($asin_list);
If $ asin_list-> setASIN ($ arr_chunks [0]); - Works
If $ asin_list-> setASIN ($ arr_chunks [1]); - Dont Work
您可以使用 array_chunk() 将您的 1000 个 asin 分成 20 个一组,例如
$asins_chunks = array_chunk($asins_array, 20, TRUE);
我使用这段代码并且有效:
$service = new
MarketplaceWebServiceProducts_Client($this->aws_access_key,
$this->aws_secret_access_key, $this->application_name,
$this->application_version, $this->config);
$request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest();
$request->setSellerId($this->seller_id);
$request->setMarketplaceId($this->marketplace_id);
//requesting product's data for "New" products
$request->setItemCondition("New");
//excluding our price data in product api response
$request->setExcludeMe(TRUE);
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType();
//creating $iec_asins array for returning price data back
$asins = array("ASIN1","ASIN2","ASIN3");
$asin_list->setASIN($asins);
$request->setASINList($asin_list);