无法仅通过 WalMart API 更新产品标题?

Not possible to just update the Title on Products via the WalMart API?

每个项目的 WalMart Developer Documentation has a section regarding what they call theItemObject which provides an XSD template 和样本 XML 请求调用他们的站点。

文档将我们引导至 XSD for MPItem

这些文档指出请求中唯一需要包含的节点是:

<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>

一堆明显必填的字段缺少值 -- ProductIdUpdateadditionalProductAttributesmsrpcategorySkuUpdate.

阅读 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>

还有更多缺失字段?有些甚至与我试图编辑标题的产品无关。

这太疯狂了,因为我的野心只是更新一个列表的标题。他们让修改 SKU 的价格或库存数量变得如此容易,但是,从我刚刚经历的情况来看,更改如此简单的东西而不被迫更新过多明显的 "required" 字段(即即使在所有手工完成的原始列表中也没有值)

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

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

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

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