php – 尽管提交了OK,亚马逊的Marketplace Web Service库存仍没有出现在卖家中心
作者:互联网
我正在使用亚马逊的MWS提交产品库存,但它似乎并没有起作用尽管说它有.
我使用“SubmitFeed”提交我在下面粘贴的测试Feed 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>A1BJ5TNE5I3MUD</MerchantIdentifier>
</Header>
<MessageType>Product</MessageType>
<PurgeAndReplace>true</PurgeAndReplace>
<Message>
<MessageID>1</MessageID>
<OperationType>Insert</OperationType>
<Product>
<SKU>56789</SKU>
<StandardProductID>
<Type>ASIN</Type>
<Value>B0EXAMPLEG</Value>
</StandardProductID>
<ProductTaxCode>A_GEN_NOTAX</ProductTaxCode>
<DescriptionData>
<Title>Example Product Title</Title>
<Brand>Example Product Brand</Brand>
<Description>This is an example product description.</Description>
<BulletPoint>Example Bullet Point 1</BulletPoint>
<BulletPoint>Example Bullet Point 2</BulletPoint>
<MSRP currency="USD">99.99</MSRP>
<Manufacturer>Example Product Manufacturer</Manufacturer>
<ItemType>example-item-type</ItemType>
</DescriptionData>
<ProductData>
<Health>
<ProductType>
<HealthMisc>
<Ingredients>Example Ingredients</Ingredients>
<Directions>Example Directions</Directions>
</HealthMisc>
</ProductType>
</Health>
</ProductData>
</Product>
</Message>
</AmazonEnvelope>
这似乎工作正常,它返回“FeedSubmissionId”等…
<?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
<SubmitFeedResult>
<FeedSubmissionInfo>
<FeedSubmissionId>3008008200</FeedSubmissionId>
<FeedType>_POST_PRODUCT_DATA_</FeedType>
<SubmittedDate>2012-03-29T11:12:04+00:00</SubmittedDate>
<FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus>
</FeedSubmissionInfo>
</SubmitFeedResult>
<ResponseMetadata>
<RequestId>9ff22ff1-e86b-45a1-b1ce-4b873f45e90a</RequestId>
</ResponseMetadata>
</SubmitFeedResponse>
然后,我使用“GetFeedSubmissionList”检查提交提交的状态,然后返回“DONE”….
<?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
<GetFeedSubmissionListResult>
<NextToken />
<HasNext>false</HasNext>
<FeedSubmissionInfo>
<FeedSubmissionId>3008008200</FeedSubmissionId>
<FeedType>_POST_PRODUCT_DATA_</FeedType>
<SubmittedDate>2012-03-29T11:12:04+00:00</SubmittedDate>
<FeedProcessingStatus>_DONE_</FeedProcessingStatus>
<StartedProcessingDate>2012-03-29T11:12:13+00:00</StartedProcessingDate>
<CompletedProcessingDate>2012-03-29T11:12:33+00:00</CompletedProcessingDate>
</FeedSubmissionInfo>
</GetFeedSubmissionListResult>
<ResponseMetadata>
<RequestId>4afd9b3d-33c6-4c15-bbe1-51304dc1cd24</RequestId>
</ResponseMetadata>
</GetFeedSubmissionListResponse>
但是当我登录卖家中央并查看库存时,测试产品就不存在了.我似乎无法在任何地方找到它 – 所以它究竟在哪里提交?我绝对没有任何商家ID混淆 – 因为我通过相同的帐户进行了全部操作,授权开发者帐户使用卖家帐户等.
有什么东西我没做错吗?我是否需要调用另一个函数来提交数据?
这真是令人沮丧,因为亚马逊的文档非常糟糕.感谢Stackoverflow和随机博客文章,我实际上已经到了这里.
解决方法:
您需要在此Feed中更改一些内容,但这只是一个起点.
先……
<PurgeAndReplace>false</PurgeAndReplace> // unless you want to delete all other inventory
<Message>
<MessageID>1</MessageID>
<OperationType>Update</OperationType> //instead of insert
下一步…如果您知道要将SKU映射到的确切ASIN,则仅使用下一节.
<StandardProductID>
<Type>ASIN</Type>
<Value>B0EXAMPLEG</Value>
</StandardProductID>
然后……验证上传是否成功. ‘完成’不是一回事.你需要做一个GetFeedSubmissionResult,这是一个文件下载,并检查内容
<ProcessingSummary>
<MessagesProcessed>1</MessagesProcessed>
<MessagesSuccessful>1</MessagesSuccessful>
<MessagesWithError>0</MessagesWithError>
<MessagesWithWarning>0</MessagesWithWarning>
</ProcessingSummary>
最重要的……与使用XML并仅执行产品Feed时执行平面文件上传不同,它不会创建列表.
您还必须执行库存(包含数量)和价格Feed,以创建可通过卖家中心页面查看的优惠清单.
标签:php,amazon-web-services,amazon-mws 来源: https://codeday.me/bug/20190613/1233756.html