Php Amazon MWS ListOrders使用不同的货币/时区误导订单
我正在使用ListOrdersAPI从Amazon商店获取订单 我已将时区设置为欧洲/伦敦 但listorders api中缺少一些订单,这些订单使用不同的货币(欧元),可能来自不同的国家(西班牙) 所有货币为英镑的订单均按api列出。我也试着将时区改为欧洲/马德里,但这些订单仍然没有列出。 原因可能是什么?请帮忙Php Amazon MWS ListOrders使用不同的货币/时区误导订单,php,amazon-web-services,amazon-mws,Php,Amazon Web Services,Amazon Mws,我正在使用ListOrdersAPI从Amazon商店获取订单 我已将时区设置为欧洲/伦敦 但listorders api中缺少一些订单,这些订单使用不同的货币(欧元),可能来自不同的国家(西班牙) 所有货币为英镑的订单均按api列出。我也试着将时区改为欧洲/马德里,但这些订单仍然没有列出。 原因可能是什么?请帮忙 谢谢我刚刚将此方法添加到我的Amazon Orders API类中,它返回了100个订单,还提供了一个NextToken来访问接下来的100个或剩余的订单。您只需设置CreatedA
谢谢我刚刚将此方法添加到我的Amazon Orders API类中,它返回了100个订单,还提供了一个NextToken来访问接下来的100个或剩余的订单。您只需设置CreatedAfter date和MarketPlaceID,所有其他字段都不是必填字段
public function getOrderList()
{
$this->config['ServiceURL'] = "https://mws-eu.amazonservices.com/Orders/2013-09-01";
$this->serviceURL = "https://mws-eu.amazonservices.com/Orders/2013-09-01";
$service = new MarketplaceWebServiceOrders_Client($this->aws_access_key, $this->aws_secret_access_key, $this->application_name, $this->application_version, $this->config);
$request = new \MarketplaceWebServiceOrders_Model_ListOrdersRequest();
$request->setSellerId($this->seller_id);
$request->setMarketplaceId($this->marketplace_id);
$request->setCreatedAfter(date('Y-m-d\TH:i:s\Z', strtotime('-49 hours')));
//new DateTime('-7 Days', new DateTimeZone('UTC'))
try
{
$response = $service->ListOrders($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(MarketplaceWebServiceOrders_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 Orders API类中,它返回了100个订单,还提供了一个NextToken来访问接下来的100个或剩余的订单。您只需设置CreatedAfter date和MarketPlaceID,所有其他字段都不是必填字段
public function getOrderList()
{
$this->config['ServiceURL'] = "https://mws-eu.amazonservices.com/Orders/2013-09-01";
$this->serviceURL = "https://mws-eu.amazonservices.com/Orders/2013-09-01";
$service = new MarketplaceWebServiceOrders_Client($this->aws_access_key, $this->aws_secret_access_key, $this->application_name, $this->application_version, $this->config);
$request = new \MarketplaceWebServiceOrders_Model_ListOrdersRequest();
$request->setSellerId($this->seller_id);
$request->setMarketplaceId($this->marketplace_id);
$request->setCreatedAfter(date('Y-m-d\TH:i:s\Z', strtotime('-49 hours')));
//new DateTime('-7 Days', new DateTimeZone('UTC'))
try
{
$response = $service->ListOrders($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(MarketplaceWebServiceOrders_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");
}
}
如果您提交一些用于OrderAPI的代码,我可以帮助您。尽管改变时区不会有任何区别。如果要获取的订单超过100个,那么您必须使用ListOrdersByNextToken来获取接下来的100个订单,这可能就是您无法获取其他订单的原因。此外,这些订单在已获取订单列表的中间位置缺失。i、 e.在api中获取这些遗漏订单之前和之后的订单。我正在使用代码形式“ListOrdersSample.php”,我正在传递$request->setCreatedAfter($start\u time)$请求->setCreatedBefore($end_time);好的,我也不能帮你,除非你发布一些关于你的问题的代码。以下是我正在使用的代码:(我试图把它包括在``中,但结果是纯文本)
date\u default\u timezone\u set('欧洲/伦敦')$开始时间=日期('Y-m-d\TH:i:s\Z',标准时间('-49小时')$结束时间=日期('Y-m-d\TH:i:s\Z',标准时间('-62分钟')$请求->设置创建时间($start\u time)$请求->setCreatedBefore($end_time);调用存储程序($service,$request);函数invokeListOrders(MarketplaceWebServiceOrders_接口$service,$request){$response=$service->ListOrders($request);print_r($response);}
我没有答案,但我正在学习-当我提交mws订单请求时,其中一个标准是订单何时“创建”与何时“修改”。我注意到,对于一些订单,它们被认为是“创建的”,但因为它们仍然是“待定的”,它们实际上还不是真正的订单,将被发送。因此,当我运行另一个“修改”订单请求时,我丢失的订单进来了。所以我认为在这种情况下,这些订单被“修改”,不再挂起,因此是完整的订单。如果您提交一些用于订单api的代码,我可以帮助您。尽管改变时区不会有任何区别。如果要获取的订单超过100个,那么您必须使用ListOrdersByNextToken来获取接下来的100个订单,这可能就是您无法获取其他订单的原因。此外,这些订单在已获取订单列表的中间位置缺失。i、 e.在api中获取这些遗漏订单之前和之后的订单。我正在使用代码形式“ListOrdersSample.php”,我正在传递$request->setCreatedAfter($start\u time)$请求->setCreatedBefore($end_time);好的,我也不能帮你,除非你发布一些关于你的问题的代码。以下是我正在使用的代码:(我试图把它包括在``中,但结果是纯文本)date\u default\u timezone\u set('欧洲/伦敦')$开始时间=日期('Y-m-d\TH:i:s\Z',标准时间('-49小时')$结束时间=日期('Y-m-d\TH:i:s\Z',标准时间('-62分钟')$请求->设置创建时间($start\u time)$请求->setCreatedBefore($end_time);调用存储程序($service,$request);函数invokeListOrders(MarketplaceWebServiceOrders_接口$service,$request){$response=$service->ListOrders($request);print_r($response);}
我没有答案,但我正在学习-当我提交mws订单请求时,其中一个标准是订单何时“创建”与何时“修改”。我注意到,对于一些订单,它们被认为是“创建的”,但因为它们仍然是“待定的”,它们实际上还不是真正的订单,将被发送。因此,当我运行另一个“修改”订单请求时,我丢失的订单进来了。因此,我认为在这种情况下,这些订单被“修改”,不再未决,因此是完整的订单。