1

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—— ,,,,, 。additionalProductAttributesmsrpcategorySkuUpdate

阅读MPProduct的文档

手动填写上面列出的必填字段,然后再次发送:

<?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 的价格或库存数量变得如此容易,但是,根据我刚刚经历的情况,改变如此简单的事情而不必被迫更新大量明显的“必需”字段(不即使在全部手工完成的原始列表中也有值)

我看错了吗?我希望如此,但我有我的怀疑。也许还有另一种我还没有找到的解决方案。请帮忙!谢谢你。

4

1 回答 1

0

不,恐怕情况差不多。您需要提供所有必需的值,这些值取决于类别。您需要检查类别的 xsd。

商家对产品、价格和数量的报价会经常变化。产品本身通常不是,而且更改它们要困难得多,即使您提交的内容正确,也不能保证更改会被接受。

而且,可悲的是,沃尔玛的产品目录中充满了需要更正或改进的清单。

于 2019-09-26T16:47:19.953 回答