WalMart 开发人员文档有一个关于他们调用内容的部分,该部分 为他们网站上的每个项目调用theItemObject
提供了XSD 模板和示例 XML 请求。
文档将我们引导至MPItem的 XSD 。
这些文件指出,请求中唯一需要包含的节点是:
<wm:requiredLevel value="Required"/>
<wm:displayName>SKU</wm:displayName>
和
wm:requiredLevel value="Required"/>
<wm:displayName>Product Identifiers</wm:displayName>
所以,我创建了我的 XML 请求:
<?xml version="1.0"?>
<MPItemFeed xmlns="http://walmart.com/">
<MPItemFeedHeader>
<version>3.2</version>
</MPItemFeedHeader>
<MPItem>
<processMode>PARTIAL_UPDATE</processMode>
<sku>SAMPLESKU</sku>
<productIdentifiers>
<productIdentifier>
<productIdType>GTIN</productIdType>
<productId>0000000000000</productId>
</productIdentifier>
</productIdentifiers>
<MPProduct>
<productName>NEW TITLE NAME</productName>
</MPProduct>
</MPItem>
</MPItemFeed>
一个成功的回复,带有feedId
但是在查看提要状态请求时,我收到此错误:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:PartnerFeedResponse xmlns:ns2="http://walmart.com/">
<ns2:feedStatus>PROCESSED</ns2:feedStatus>
<ns2:feedSubmissionDate>2019-09-24T22:01:27.999Z</ns2:feedSubmissionDate>
<ns2:itemsReceived>1</ns2:itemsReceived>
<ns2:itemsFailed>1</ns2:itemsFailed>
<ns2:ingestionStatus>DATA_ERROR</ns2:ingestionStatus>
<ns2:description>'ProductIdUpdate' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>additionalProductAttributes</ns2:field>
<ns2:description>'additionalProductAttributes' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>msrp</ns2:field>
<ns2:description>'msrp' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>category</ns2:field>
<ns2:description>'category' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>SkuUpdate</ns2:field>
<ns2:description>'SkuUpdate' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
</ns2:ingestionErrors>
</ns2:itemIngestionStatus>
</ns2:itemDetails>
</ns2:PartnerFeedResponse>
一堆明显需要的字段缺少值ProductIdUpdate
—— ,,,,, 。additionalProductAttributes
msrp
category
SkuUpdate
手动填写上面列出的必填字段,然后再次发送:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:PartnerFeedResponse xmlns:ns2="http://walmart.com/">
<ns2:feedId>XXXXXXXXXXXXXXXXXXXXX</ns2:feedId>
<ns2:feedStatus>PROCESSED</ns2:feedStatus>
<ns2:feedSubmissionDate>2019-09-25T03:39:23.728Z</ns2:feedSubmissionDate>
<ns2:itemsReceived>1</ns2:itemsReceived>
<ns2:itemsSucceeded>0</ns2:itemsSucceeded>
<ns2:itemsFailed>1</ns2:itemsFailed>
<ns2:itemsProcessing>0</ns2:itemsProcessing>
<ns2:offset>0</ns2:offset>
<ns2:limit>50</ns2:limit>
<ns2:itemDetails>
<ns2:itemIngestionStatus>
<ns2:martId>0</ns2:martId>
<ns2:sku>LA2</ns2:sku>
<ns2:index>0</ns2:index>
<ns2:itemid/>
<ns2:productIdentifiers/>
<ns2:ingestionStatus>DATA_ERROR</ns2:ingestionStatus>
<ns2:ingestionErrors>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>sportsLeague</ns2:field>
<ns2:description>'sportsLeague' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>amps</ns2:field>
<ns2:description>'amps' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>isChemical</ns2:field>
<ns2:description>'isChemical' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>isAerosol</ns2:field>
<ns2:description>'isAerosol' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>keywords</ns2:field>
<ns2:description>'keywords' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>compatibleCars</ns2:field>
<ns2:description>'compatibleCars' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>lightBulbType</ns2:field>
<ns2:description>'lightBulbType' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>saeDotCompliant</ns2:field>
<ns2:description>'saeDotCompliant' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>isPowered</ns2:field>
<ns2:description>'isPowered' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
<ns2:ingestionError>
<ns2:type>DATA_ERROR</ns2:type>
<ns2:code>ERR_EXT_DATA_0801001</ns2:code>
<ns2:field>hasWarranty</ns2:field>
<ns2:description>'hasWarranty' - Attribute requires a value.</ns2:description>
</ns2:ingestionError>
</ns2:ingestionErrors>
</ns2:itemIngestionStatus>
</ns2:itemDetails>
</ns2:PartnerFeedResponse>
更多缺失的字段?有些甚至与我试图编辑其标题的产品无关。
这对于我只是更新列表标题的低级野心来说太疯狂了。他们使修改 skus 的价格或库存数量变得如此容易,但是,根据我刚刚经历的情况,改变如此简单的事情而不必被迫更新大量明显的“必需”字段(不即使在全部手工完成的原始列表中也有值)
我看错了吗?我希望如此,但我有我的怀疑。也许还有另一种我还没有找到的解决方案。请帮忙!谢谢你。