我使用亚马逊MWS API和PHP检索已处理的Feed文件的结果时遇到问题.我正在使用getFeedSubmissionResult类,确切地说.问题是,当我按照文档的指示使用API时,没有相关数据可供我可以访问的类(或者看起来如此).所以我的问题是:如何检索亚马逊发回的原始XML文件并将其存储到我的计算机上的文件中?
我一直在追溯MWS使用的代码,并试图找到他们从亚马逊拉入XML文件的位置并解析它以尝试将其保存到一个没有运气的文件中.如果有人能指导我解决这个问题,我会非常感激,如果没有,那么也许一个解决方案可能会更好.
所以这就是我一直在做的事情:
我使用了MWS样本中提供的getFeedSubmissionResultSample.php.据说,这应该给我数据,告诉我有多少项目被处理,有多少处理项目成功.但事实并非如此.所以我试着做一个响应变量的print_r:
function invokeGetFeedSubmissionResult(MarketplaceWebService_Interface $service,$request) {
try {
$response = $service->getFeedSubmissionResult($request);
echo "<br />Var dump here: <pre>";
print_r($response);
echo ("<pre>Service Response\n");
echo ("=============================================================================\n");
echo(" GetFeedSubmissionResultResponse\n");
if ($response->isSetGetFeedSubmissionResultResult()) {
$getFeedSubmissionResultResult = $response->getGetFeedSubmissionResultResult();
echo (" GetFeedSubmissionResult\n");
if ($getFeedSubmissionResultResult->isSetContentMd5()) {
echo (" ContentMd5\n");
echo (" " . $getFeedSubmissionResultResult->getContentMd5() . "\n");
}
}
if ($response->isSetResponseMetadata()) {
echo(" ResponseMetadata\n");
$responseMetadata = $response->getResponseMetadata();
if ($responseMetadata->isSetRequestId())
{
echo(" RequestId\n");
echo(" " . $responseMetadata->getRequestId() . "\n");
}
}
echo(" ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n"); …Run Code Online (Sandbox Code Playgroud) 我使用cron作业从亚马逊帐户返回订单,它在2~3周后工作正常.事实上,订单比平时多(由于圣诞节前期),看起来cron任务无法获得所有订单.
所以我决定以不同的方式安排它以避免错过一些订单.现在,cron作业每小时运行一次(而不是每两个小时运行一次),然后我应用于new DateTime('-5 hours', new DateTimeZone('UTC'));CreatedAfter请求的参数(之前,它被指定为-10小时).
我不得不手动运行cron作业以返回在亚马逊界面上可见的缺失订单,因为"未发货"并且客户信息已完全完成.
$start_date = new DateTime('2012-04-12 10:30:00', new DateTimeZone('UTC'));
$request->setCreatedAfter($start_date);
$end_date = new DateTime('2012-04-12 11:30:00', new DateTimeZone('UTC'));
$request->setCreatedBefore($end_date);
Run Code Online (Sandbox Code Playgroud)
你能告诉我为什么还缺少一些订单吗?请询问您是否有更多信息或代码.
我正在尝试将亚马逊商城的订单整合到我们的系统中.我之前和Magento一起做过,并认为这应该很容易,但不知怎的,我卡住了.
我从亚马逊下载了Java API 并开始使用这些示例.
到目前为止一切都那么好 - 我能让他们跑步.但是使用Reports API和Orders API,我开始想知道如果我只想让未发货的订单放入我们的系统中使用哪一个.
1.使用Report API执行此操作似乎非常复杂,并且涉及对MWS的大量调用.亚马逊在此记录了这一点.
2.使用Orders API似乎非常简单.我只需要创建一个ListOrdersRequest,定义我想要的订单类型,最后通过ListOrders调用获取它们.
所以我的问题是:在Orders API上选择Reports API的原因是什么?
似乎亚马逊推荐Reports API,但我真的不明白为什么这应该如此复杂.当我能直接获得订单时,为什么要获得报告?
我不知道我应该在amazon MWS PHP库的下面的字段中输入什么
define('APPLICATION_NAME', '<Your Application Name>');
define('APPLICATION_VERSION', '<Your Application Version or Build Number>');
Run Code Online (Sandbox Code Playgroud)
如果有人知道亚马逊MWS中的应用程序名称和版本,请说明应用程序名称和版本.
我正在使用 amazon mws feed api 来更新我网站的订单状态。
当我调用SubmitFeed Api 时,它已成功提交。但是,当我调用GetFeedSubmissionResult 时,它返回一个错误说明:
<Result>
<MessageID>1</MessageID>
<ResultCode>Error</ResultCode>
<ResultMessageCode>25</ResultMessageCode>
<ResultDescription>We are unable to process the XML feed because one or more items are invalid. Please re-submit the feed.</ResultDescription>
</Result>
Run Code Online (Sandbox Code Playgroud)
这是我的 xml :
<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>Maxvite Store</MerchantIdentifier>
</Header>
<MessageType>OrderFulfillment</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderFulfillment>
<AmazonOrderID>123-5454545-5454545</AmazonOrderID>
<MerchantOrderID>123456</MerchantOrderID>
<MerchantFulfillmentID>123456</MerchantFulfillmentID>
<FulfillmentDate>12-02-2013T04:23:00Z</FulfillmentDate>
<FulfillmentData>
<CarrierCode>UPS</CarrierCode>
<ShippingMethod>UPS Ground</ShippingMethod>
<ShipperTrackingNumber>123456</ShipperTrackingNumber>
</FulfillmentData>
</OrderFulfillment>
</Message>
</AmazonEnvelope>
Run Code Online (Sandbox Code Playgroud)
提前致谢
我们的亚马逊 SQS 队列没有从亚马逊 MWS 接收 AnyOfferChanged 通知的消息。
我们发送一个测试通知,并将其发送到队列并在我们收到通知时可用。
我们已经设置了两个 AWS 账户,我们使用一个 AWS 账户来注册队列目的地并创建对 AnyOfferChanged 的订阅。另一个 AWS 账户成功从我们的队列中获取测试通知。
我们可以看到商家的竞争对手已经更改了列表的价格,但没有向我们发送通知。
有没有人遇到过这个问题?
我将从亚马逊提取订单详细信息并存储在数据库中.我收到的所有数据除了FBA费用和订单佣金.
任何人都可以指导我这个获得FBA费用和委员会吗?
希望能提供一些示例 XML。我只是想指定哪个运输模板应适用于任何给定的产品。
亚马逊支持人员将我指向https://images-na.ssl-images-amazon.com/images/G/01/rainier/help/xsd/release_4_1/Override.xsd但我无法了解如何指定运输模板。
我希望有一些简单的东西可以包含在其中,_POST_PRODUCT_PRICING_DATA_例如
<shipping_template>template1</shipping_template>
但我不这么认为。
谢谢!
我是英国亚马逊(以及同一账户上的所有欧盟市场)的注册 PRO 卖家
我有我的卖家帐户 ID、开发人员 ID、开发人员身份验证令牌和私钥。
在 MWS 暂存器中,我可以发出请求并获得状态 API 的成功响应,因为我不相信它们使用任何身份验证,但任何其他请求(例如 listReports)只会返回访问被拒绝的错误消息。我知道凭据是正确的,就像我编辑它们一样,获取身份验证错误消息。我已经在支持下打开了一个案例,但经过三天的等待,我什至没有承认这个问题,更不用说解决方案了。
有谁知道我做错了什么,或者我在管理面板中的哪个位置为我自己的开发人员帐户授予正确的权限。
注意:这不是 3rd 方开发,我只想为我自己的业务构建解决方案。
TIA
亚伦
我正在使用Express JS server来执行AWS MWS API. 根据MWS文档,_GET_REMOTE_FULFILLMENT_ELIGIBILITY_返回 Excel 文件对象。
我创建了 API,node js但无法获得正确的 excel。我在下载的 Excel 文件中出现了奇怪的字符。
const getRemoveFulfillmentEligibilityDataCon = async(req,res) => {
const mwsRequestData = {
Version: '2009-01-01',
Action: 'GetReport',
'SellerId': 'MWS_SELLER_ID',
'MWSAuthToken': 'MWS_AUTH_TOKEN',
ReportId: 'XXXXXXXXXXXXXX',
};
try {
const response = await amazonMws.reports.search(mwsRequestData);
/* make the worksheet */
var ws = XLSX.utils.json_to_sheet(response.data);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws);
XLSX.writeFile(wb, "sheetjs.xlsx");
return response;
} catch (error) {
console.log('error ', error);
return …Run Code Online (Sandbox Code Playgroud) amazon-mws ×10
amazon ×2
api ×2
php ×2
amazon-sqs ×1
express ×1
java ×1
node-fetch ×1
node.js ×1