代码之家  ›  专栏  ›  技术社区  ›  Brian Bruman

不可能仅仅通过沃尔玛API更新产品的标题?

  •  0
  • Brian Bruman  · 技术社区  · 5 年前

    WalMart Developer Documentation 有一个关于他们叫什么的章节 theItemObject 提供了一个 XSD template

    文档将我们引向XSD 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>
    

    ProductIdUpdate , additionalProductAttributes msrp , category , SkuUpdate .

    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的价格或库存数量变得非常容易,但是,从我刚刚经历的情况来看,一个噩梦就是在不被迫更新大量明显的“必需”字段的情况下更改如此简单的内容(这些字段即使在原来的列表中也没有值,而这些列表都是手工完成的)

    我看错了吗?我希望如此,但我有疑虑。也许我还没有找到另一个解决办法。请帮帮我!非常感谢。

    0 回复  |  直到 5 年前
        1
  •  0
  •   toastifer    5 年前

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

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